Re: Feeling sad about AI
I was going to avoid comment on this post by Andy Balaam because I don't have anything new to add with respect to my views on the topic. You can already piece together everything I'm about to say from my earlier blog posts.
Four days have passed and I still feel compelled to respond, so I will, at least to the parts that drive me crazy.
For people watching to learn: don't listen to people who say this skill is obsolete. Let me be clear here: even if the highly optimistic predictions about AI are true, we are going to need a lot of code, and the people who understand how it works are going to be very, very useful.
Second, the knowledge of how code actually works is going to remain useful. Did we stop understanding machine code when we wrote compilers? No! People have jobs writing compilers, and their understanding of machine code and pipelines and caches and locality and loads of stuff I don't understand is way deeper than anyone had when compilers were invented!
No disrespect meant here, but this approaches the issue from the engineer's perspective (what is it possible to do) rather than the economist's perspective (what should we do to maximize profit or utility). It means literally nothing to talk about what AI can do if you're not going to go any further.
The main cost saving from AI-assisted coding is tasks like "create three different versions of this existing function to handle additional scenarios" or "complete the rest of this function body with careful attention to all the edge cases". You know, offloading the time-consuming crap that nobody wants to do. Crap that is painful and makes your job miserable. It can be completed by a cheap model. GPT 5.6 Luna has way more power than you need for that type of work.
The big picture work where you come up with a plan and then wait for a frontier model to one-shot it is far more questionable from a profitability perspective or an enjoyment perspective. First, it eats a lot of expensive tokens. Second, it eats a lot of expensive developer time. Rather than writing code, you're writing prompts. There's no obvious winner there. Why not do the planning yourself, write out a skeleton of the code, and let a cheap model fill in the details? You can incorporate your knowledge of the best algorithms, gotchas, etc. along the way.
Here's an out-of-the-box strategy. How about writing the code for the parts you enjoy doing, and let your AI assistant do the parts you don't want to do? I'll let you in on a secret. You'll almost certainly be more productive in terms of creating business value this way than if you avoid writing code at all costs, with the added bonus that programming will be more fun, because you don't have to do the crap work that you had to do in 2019.
I suspect that one of the goals of the US frontier AI labs was to scare programmers away from the profession. Once they had successfully convinced 80% of programmers to stay away, companies would have no choice but to contract out their programming to them, and the labs would be in a position to extract a significant share of their revenue the way Apple and Google are able to tax phone app developers.
I call BS on the idea that the best strategy is to let AI write all the code. It's not logical and it's not consistent with my experience. You should know how to program, you should be doing a good chunk of the programming by hand, you should be offloading the stuff you don't want to do to an LLM, and you should be having fun programming. Too many people are under the impression that they don't have permission to write code by hand or that they don't have permission to ignore the AI hype. I encourage you to ask forgiveness for using AI too little rather than asking the AI hype artists for permission to use AI less.
Update I saw this comment on HN and thought it fit pretty well with this post: "I'm beginning to worry that software engineering doesn't matter. I write code that i think about a lot, understanding every line. It's not perfect, but I try to make sure my code is maintainable and well structured. I work much slower then my colleagues who produce unmaintainable slop at an alarming rate." A programmer like this can work at least as fast as those colleagues if they use an LLM to fill in the time-consuming, unimportant details, particularly if using AI code completion. You have the same control over maintainability and structure as you do when writing everything by hand. The idea that you have to use an LLM for all programming is nothing more than marketing, and it should be resisted until you see evidence to the contrary. Doing otherwise just means you're a sucker.