Coding Agents and Software Development
I had two teachers who left me with advice about software development that’s stuck with me to this day.
The Planner
The first was my high school Computing teacher, who taught me the importance of sitting down and writing notes, making a plan, before just jumping into writing code.
I find it funny to think of this when I read articles giving advice about using coding agents like Claude Code and Codex, and the importance of getting it to make a plan first to get it to write code successfully.
The Low Level Programmer
The second teacher was the lecturer who taught the Low Level Programming class at university, who made clear that software is just data moving from one place to another, possibly being changed along the way.
I find it funny to think of his class now. The assignment I remember most was to take the assembly output of some C code, and show what the higher level C language was doing in the lower level assembly.
Can you imagine a university lecturer in a few years time, teaching students to study the lower level JavaScript code that was generated by the higher level English prompt?
At Which Level of Abstraction Are Agents
I started writing code in 2002, using REALBasic on Mac OS 9. I started writing code more seriously in 2006, using Java on Windows XP.
I’ve always used what I was introduced to as “higher level abstractions”. Never punch cards, or assembly, or even C, really. But I can’t help but feel agents are another level up again.
Instead of writing in a programming language, I can describe to an agent, in plain English, what I want to happen. That was unthinkable a few years ago. But it’s possible with coding agents. Design your software feature in natural language (with your agent’s help of course), and give that requirement to your agent, and something happens under the hood at a lower level of abstraction. Like the developers who wrote assembly code in the 1980s, that lower level of abstraction just happens to be where I’ve made my career so far.
A Conundrum
I hate the fact that all these LLMs are trained on stolen data.
I hate how much energy is used to train these models.
I hate that computer hardware like RAM is getting so much more expensive because it’s being bought in bulk for data centres to power LLMs.
Morally, I think this is terrible technology, and I don’t want it to be a part of my career, or even the world in general, frankly.
And there are other reasons to be skeptical about LLMs. The business model is a big question for all of these companies. They don’t make a profit, even when they charge people £200 a month. But I can’t see that being anything other than a short term problem as economies of scale, and the progress of time, bring costs down.
Another problem often raised is: what happens to the next generation of software developers? If having an agent is like having a junior developer, and you’re the senior developer, where do the new senior developers come from? I suspect the answer to that is: where did the new assembly developers come from?
Then there’s a question of how much time is saved using LLMs. One year ago, I tried asking Claude and ChatGPT (Claude Code and Codex didn't even exist yet) to write code for me and I got absolute garbage back. If I was relying on those older models, in chatbots, sure, I’d spend way more time fixing their mistakes than I'd save from having them generate code. But the version of Codex I used last week can write working code faster than I can. Claude Code isn't Claude. Codex isn't ChatGPT. If you base your assumptions on experiments with the chatbot, which can't see your codebase, can't run and debug and fix the code it writes, then you don't have a full understanding of what these tools can do. These are now very powerful tools. Not intelligences, and I've avoided using the term "artificial intelligence" on purpose. But tools for software development, yes. And I suspect they will quickly become very important tools.
What Now?
I am enormously conflicted about using LLMs. I have several issues that I can’t reconcile. I also just don’t want to be reliant on another American Big Tech company.
But I’m no longer sure where my chosen career path is going.
If you liked this article, please consider buying me a coffee to support my writing.