Steve Yegge on AI-assisted Programming

I wrote this post a week ago and have been thinking hard about whether I believe the premise, which is that within a few years, the norm for source code will be that it is written and modified by LLMs via prompting. For all practical purposes, all source code will be written this way, with exceptions becoming ever rarer.

Not only do I believe it, I could even see it happening in 12-18 months at the current rate of LLM progress. I think the change will have a ton of fallout, only some of it foreseeable. And one casualty might well be junior devs, in the sense that they become less marketable and it could cause various kinds of crunches across the industry.

[…]

But change is coming. There will be social and cultural upheaval in tech, just as is happening in the legal profession. It’s already begun. The models are getting smarter and smarter with each passing month, which means they are going to be eating more and more jobs until they eat the world.

All I can tell you is this: Get there early. One time Googlers were complaining at TGIF that the parking garage was filling up by midmorning, and Larry Page jokingly suggested, “Maybe you should come earlier.” At that moment he reeked of billionaire. But if you really wanted to park in the garage, you took his advice.

Get good, fast. That’s what you need to do. Get ahead of the slackers while our industry turns upside down, and you might be the one to survive.

[…]

Don’t over-index on programming language arcana. That’s becoming a detail that machines handle for us. Focus on algorithms, data structures, software design and engineering, discrete math, operating systems, compilers, databases, networks. Focus on studying real systems. Find walkthroughs online and study them. And of course ML. Gobble up everything you can.

Understand how things are built. Make sure you know how every system in a computer works. Make sure you have an understanding of how every cloud service you depend on does its job. Read the docs, and then read the design docs. You won’t have to write any of it by hand. But you need to develop a senior programmer’s sensibilities around how these things fit together and interact, for good or ill.

Learn how to use frontier models to check other LLM models' work. Sign up for multiple services (e.g. Claude and ChatGPT) and send your important prompts to at least two big models. Have them evaluate each other’s responses and study it all carefully. LLMs are better at reviewing and critiquing their own content than they are at producing it. So use a second LLM as your senior partner.

Another one of the key things that differentiates a senior developer from a junior one, in many contexts, is Operations experience. Read the O’Reilly/Google SRE book. Read it cover to cover. And find a good GitOps book, too; there seem to be quite a few to choose from. There may be no compression algorithm for experience, but fortunately a lot of that experience has been condensed and distilled. Go drink it up.

[…]

It doesn’t matter what approach you take, as long as you start making heavy use of chat in programming. Because that, friendo, is how it works now. Like it or not. And you need to survive it. Good luck to you.

The Death of the Junior Developer

Zachary Hamed @zmh