Thoughts on Programming in the AI Age

I’ve spent a long time thinking and processing my thoughts. There is a lot going on, good and bad. The job of “Software Developer” or “Software Engineer” or “Computer Programmer” has changed in a very fundamental way, in a way nobody saw coming, nobody could be prepared for – and the future end-state is not clear. The change has been so sudden and drastic that it has left a lot of developer/engineer/programmers, in a state of shock.

A switch is happening, a profound shift that is changing everything about how we do our job. The tools have changed. Our teams have changed. IDEs, frameworks and languages, even Scrum and Kanban – things that used to seem so important have become irrelevant and obsolete! Its not surprising that a lot of developer/engineer/programmers are finding the changes difficult to adapt to. I’m trying to adapt. Even though it has its exciting moments, it is also challenging to keep up with all the changes, and the hype.

My wife has a story about how her grandfather studied to be a railway engineer on a steam locomotive just as the trains all switched to diesel engines. In software we’re at a point similar to that. Imagine being a mechanic. You have a garage full of tools, lifts and jacks, you’ve learned which filters work on which cars and which years. One day a robot is brought in. You heard a lot of great stuff about robots so you give it a try. You tell it to do an oil change, and it does it. it does it fast. Then you give it a brake job. It does it, and it does it faster than you think you could have done it! This is pretty exciting, you think. No more boring oil changes or brake jobs! No more swapping and balancing tires. The robot can do it! You start giving the robot bigger jobs, and it usually gets it 80-90% of the way done. You have to tighten a few bolts, do bits that the robot missed. The robot doesn’t learn though, you just have to ask it to do the same thing different ways or give it more detailed instructions. Soon other people in the garage, like your boss are sending cars to you to check out before giving them back to customers. After a while you realize you’re not using the tools you spent years learning and accumulating anymore, you’re just talking to a robot and checking its work. One day you find you have spent the entire day sitting alone in an office typing into a textbox and watching a progressbar move… and you wonder if you’re a mechanic anymore?

I think it is like that for Programming. We don’t use our skills and knowledge the same way we used to. We don’t even use the same tools anymore. When working with AI you don’t need an IDE, just a textbox like Claude Code that you type commands into. You don’t even need to know a programming language anymore. DHH was bragging that he’s got his robots using Rust for his backends now instead of the Ruby on Rails framework that he invented! You can even feed your robot the JIRA case number, or Intercom conversation and it can get off and running! Its a very new concept. A new way of working. And I doubt we’re done changing.

But this isn’t what programming was like. This isn’t how we learned to do it. We’re using skills we built, but not the ones we focused on.

Also, I find it interesting that right now AI is building applications the way a human programmer would: using the same programming languages and frameworks a human would use. Is the future for AI software still going to be React + Rails + Postgres on Kubernetes? Is there going to be something different, something AI native? Can something AI native exist, or can AI only build on what humans have built with before?

These things very exciting to think about! But also a little sad to think “the age of man” has ended.

I don’t want you to think the programming profession is obsolete, though. To my mind, a simple fact remains: even AI generated software still needs professional people involved. Many, even most of the jobs can be done by AI, but to do it well we still need a professional involved at some point along the way. Your project still needs someone who knows what the AI should be building, and guiding the construction and production. I’ve had several non-programming friends build some very cool and impressive software using AI! But they would get stuck at certain points because they weren’t programmers, and solving the problems the AI left them with (like finding hosting, or creating an entire backend) required someone with knowledge and experience. Even in very technical shops with hundreds of engineers, the AI still needed supervision and guidance – AI isn’t perfect. Maybe it isn’t perfect yet (if it isn’t now I’m skeptical it will be in the future).. but it is not perfect now.


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *