AI is transforming coding into conversations. What this means for the future of software development

Forwarded this email? Subscribe here for more

19-Year-Old Codes AI System in 2 Weeks: What It Means for Developers

When AI Accelerates the Impossible

Let me start with a personal story. My son just finished his first year at Virginia Tech, where he studies computer science. He knows some basic programming concepts, a little bit about the cloud, and general knowledge about AI. He wanted to spend his summer learning through a project. So, I gave him a project that combines AI for ads with serverless cloud architecture. The goal is to build an ad placement system based on the demographics of the recognized traffic passing in front of a camera. 

I thought it would take him the whole summer to finish the project. It took him only two weeks to finish the entire project!

The system would use a local AI model running or Raspberry Pi to recognize faces and demographics. It downloads the ads inventory from our cloud repository and displays the ads based on preset rules. The system also has a dashboard to report audience demographics, impressions, etc.

I spent only a few minutes guiding him occasionally. You probably guessed it. He used ChatGPT to organize and write the necessary code. 

A 19-year-old college student could build a relatively complex system in less than two weeks. What would the future of programming and software engineering look like?

Programming is changing forever, for sure. But what will it look like? More importantly, what do developers, especially those early in their careers, need to learn, or sometimes unlearn, to fit and compete in this new world of AI-powered software development? 

The Shifting Landscape: Abstraction and Democratization in Coding

Let’s be clear. Software developers will remain in high demand in the foreseeable future, with no signs of job elimination or reduction in their numbers. In a signal of confidence, Stack Overflow’s recent survey of ~65k coders globally revealed that ~62% of respondents are currently using AI tools in their development processes, and ~68% of respondents do not view AI as an existential threat to their job.

However, two significant changes will occur (1) more abstraction and (2) more democratization. 

I’ve been in the developer tooling and solution space for more than 15 years now. The typical pattern is that each generation of developer tools provides higher abstraction so developers can do more in less time and with much less cognitive overhead. I remember the first time I experienced the auto-complete feature in Microsoft Visual Studio around two decades ago. I still remember how fast we could write code, at least 2 to 4 times faster than before. Also, the emergence of libraries and tools to abstract networks, storage, multi-threading, etc., has significantly boosted productivity. AI is yet another abstraction layer on top of what we have. 

AI Coding Tools: The New Frontier of Developer Productivity

AI coding has transcended from a distant aspiration to a tangible reality. In recent years, there has been a surge in the development of artificial intelligence (AI)-driven coding tools, encompassing co-pilots, agents, and foundation models. A market map below illustrates the landscape of these tools. In fact, the State of the Cloud 2024 report by Bessemer Venture Partners highlighted how $3.9 billion in VC dollars have been funneled into this area just in 2023

Source: Greylock, “Code Smarter, Not Harder” (5/22/24)

But what is the difference between this and all the previous generations of developer tools abstracting software development? Well, there are two main differences:

  1. It eliminates the need to write code most of the time. It became so abstract to the extent that you don’t need to write code to create a program. I never coded in Python, and when I tried to write one last year with the help of ChatGPT, I could write an end-to-end system in Python in less than a week. Andrej Karpathy has provocatively claimed that “the hottest new programming language is English,” as programming is starting to look more like conversational prompting than traditional coding in this age of AI.
  2. The universal programming knowledge is embedded in code assistance models. Most previous tools were domain- or technology-specific. Suppose you think of the new LLM models as a compression of all human knowledge in coding and programming. This will make it easier for you to appreciate than other abstracted hard-coded automation tools. You have infinite possibilities within your hands as a developer. 

Bridging the Gap: Classical Programming in an AI-Driven World

As I mentioned, software developers will continue to be in high demand. But would the definition of software developer be the same given such radical changes? This brings us to the democratization. A developer will be anyone who understands basic architectural concepts and can talk to an LLM model. Coding assistants enable anyone to create applications without the limitations of the current no-code/low-code tools and all the power of available programming languages and frameworks.

What should you do if you are a software developer using “conventional” automation tools or a college student still studying “old computer science methods”

  1. Stay calm and keep coding. While the landscape changes quickly, don’t expect your job to change radically in the next few months. In September 2024 (the time of this article), millions of organizations were still reluctant to use AI. In my opinion, classical programming is not likely to become obsolete in the foreseeable future. The perceived reliability of AI developer tools is not yet considered at the level required for enterprise-grade applications. Moreover, enterprise requirements for AI-generated code transcend quality concerns and encompass a range of considerations, including privacy, security, compliance, scalability, and copyright. It doesn’t mean that you stay put. You will become a dinosaur very quickly (even fresh graduates). Keep reading to learn how to prepare yourself for such a tectonic shift. 
  2. Learn how to connect and build on abstract concepts. Back to my son’s story. His knowledge of basic distributed software architecture helped him finish his project quickly by asking ChatGPT the right questions and fixing his issues. You must be good at this abstraction level to understand architectural tradeoffs and connect them with the future business plans impacting your choices. 
  3. New coding assistance models are created every few weeks. The decision to use one model versus the other will be critical very quickly. So, you must understand how these new tools work and which works best for the job!

Source: Greylock, “Code Smarter, Not Harder” (5/22/24)

  1. Don’t ignore the fundamentals. In my early career, great developers understood how computers worked and how these impacted their design and implementation decisions. You still need to understand the fundamentals to judge the quality of the models you are using, and you could improve them. 
  2. You are not building systems anymore. You are building solutions to real-world problems. Those mental cycles that generative AI gives you back should go into thinking deeper about building the right solutions people want. For example, if you are a UI engineer, you must know and implement the best UX practices from the get-go. This will be the human touch that AI won’t be able to provide as creatively as you can any time soon. 

The Human Edge: Creativity and Judgment in the Age of AI

Software development is a multifaceted endeavor involving both scientific and artistic elements. This complex process encompasses judgment-based decisions spanning creativity, design, systems, and delivery, resulting in an outcome that often transcends the individual components.In the ever-evolving landscape of developer tooling, paradigms shift, and the potential impact on job security is undeniable. Despite these changes, developers have remained remarkably resilient, with heightened demand for their expertise. Instead of rendering human developers obsolete, AI can act as a catalyst to enhance their impact. So, Confidently and Strategically Embrace Artificial Intelligence