I Wrote My First Code at School
By college, I had written a GUI for DOS that ran in just 47 kilobytes of code. Since then I've written countless programs, applications and websites. So after decades of writing software, it's been interesting to watch programming change almost beyond recognition.
Today, AI can write code for you. Give an LLM a description of what you want, and within minutes it can produce a working application, website or program. You don't necessarily need to know how to write a loop, structure a database or build a user interface. You can simply describe what you want and let the AI do the heavy lifting. This has a name now: vibe coding — prompting an AI to generate an app and accepting what comes out, often without reading or fully understanding the code underneath it.
To be honest, I didn't particularly like that at first. I watched junior programmers using AI to produce code faster than I could write it myself. It was frustrating. If someone could describe an application in a few sentences and have AI generate it, what exactly was the value of spending decades learning how to program?
Eventually I realised I was asking the wrong question. The answer wasn't to compete with AI at writing code. It was to learn how to use AI as a programmer. I think that distinction is going to matter more, not less, as vibe coding gets better at producing things that merely look finished.
Anyone Can Build Something. That Doesn’t Mean They Can Build Something Good.
The barrier to creating software has fallen enormously, and that's a fantastic thing. Someone with an idea and no programming background can now create something that would previously have required a developer. We're seeing an explosion of applications, websites and small software projects as a result of vibe coding alone.
But there's a difference between getting something working and engineering something properly. AI is exceptionally good at producing code. It is not a substitute for decades of experience in understanding why that code should be written in the first place.
A generated application might work perfectly when you first launch it. What happens when you have 10,000 users? What happens when the database gets large? What happens when someone discovers a security vulnerability? What happens when the third-party API it relies on changes? What happens when the original developer who prompted the AI has no idea why a particular piece of code exists? And what happens when the AI confidently generates a solution that looks perfectly reasonable but is fundamentally wrong?
These are engineering problems, not typing problems.
It’s a Bit Like DIY
When I was a kid, DIY became increasingly popular. Every dad suddenly became a handyman, carpenter and craftsman simply because he owned a jigsaw and a Black & Decker Workmate. My own father was no exception.
He could build things. But the finished products were, shall we say, characterful. The units were a little rough around the edges. The design wasn't always quite right. And the doors had an irritating habit of never quite lining up with the magnetic catches.
Then there was my friend's father. He was a professional tradesman and fitter with many years of experience. His kitchen was showroom standard.
The difference wasn't that my father didn't have the right tools. He did. The difference was experience. The professional knew which materials to use, how to measure correctly, what would fail, what wouldn't work, where the stresses would occur and how all the individual pieces needed to fit together. The tools simply made him more effective.
And that, I believe, is where we are with AI and software development. Vibe coding hands everyone the jigsaw. It doesn't hand anyone the twenty years of knowing what the jigsaw is for.
AI Hasn’t Killed Programming. It Has Changed What Being a Programmer Means.
The modern programmer doesn't necessarily need to spend all day manually writing every line of code. Instead, they can use AI to generate code, explore solutions, create prototypes, write tests, explain unfamiliar systems and automate much of the repetitive work — the same shift I wrote about recently when it comes to companies deciding whether they need their own coding model at all, rather than simply giving a capable one good access to their codebase. That piece was about the model's side of the equation. This one is about the person driving it.
That doesn't make programming less valuable. In many ways, it makes experience more valuable. If two people have access to exactly the same AI, but one has twenty years of software development experience and the other has twenty minutes of experience writing prompts, they don't suddenly become equally capable.
They have the same tool. They don’t have the same knowledge.
The experienced programmer knows when the AI has misunderstood the problem. They know when a solution is unnecessarily complicated. They know when the architecture is going to cause problems six months from now. They know what questions need asking before a single line of code is written. Most importantly, they know what good looks like. That's something you can't simply install with an AI subscription, however fluent your vibe coding gets.
So, Is My Career Dead?
No. But it has changed. And I suspect that's going to be the case for most programmers.
I no longer see AI as something competing with me. I see it as another tool in my toolbox. A very powerful tool. The difference is that I have spent decades learning how to use the rest of the toolbox.
So if you ask an AI to build you an application — pure vibe coding, no experience in the loop — you may well get something that works. If you ask an experienced programmer who knows how to use AI, you should get something that works for the right reasons. And there is a world of difference between the two.
I don’t think the future belongs to people who can code without AI. Nor does it belong to people who can prompt an AI without understanding code. I think it belongs to programmers who understand both.
In other words, I'm not giving up programming. I'm just adding a very powerful new tool to the toolbox. And if you're looking for someone to build your software, that's the difference between hiring someone with a jigsaw, and hiring the craftsman who knows which blade to put in it.