I don’t think I’ve ever had so much fun in my programming career as I do now.

Which is strange, because a few weeks ago I was in a very different place. I was watching - in horror - as the machine on my desk was taking over my craft. Like most people I guess, I derive quite a lot of my identity from that craft; hence the horror. (Let’s ignore for now whether that’s a good thing or not.)

I just watched it melt away. Like a block of ice in the sun; inexorable. In that moment it felt like I was witnessing an emerging god: an uncontrollable force in the sky asserts its influence over all it touches, and every day, it touches more. It was dreadful. And then the realization dawned upon me: I will never learn another programming language. My aspirations to learn Golang properly. To switch to a career as a Rust programmer. Gone.

But here’s the thing. It’s never been easier to learn a new programming language. These AIs are infinitely patient. Infinitely knowledgeable. You can ask them to explain something ten times. Explain it to me like I’m five. Explain it to me like I’m ten. They will. And they’ll do it well.

Hell, in the past year I taught myself electronics. I had never soldered anything and now I’m regularly ordering PCBs that I’ve designed. Never in my wildest dreams could I have predicted that even two years ago.

So it’s easier than ever to learn something new.

And for more and more things every day, it’s just not necessary anymore.

That hurts on a level I didn’t know existed.

It feels like grief because it is

Denial. “It can’t do everything, right?” “It cannot do this part!” “Look, it’s making a mistake! Hah! This cannot be trusted! It can’t do it all.” And then, two weeks later, a new model comes out, or an update to the harness. Or you just get smarter with your instructions, and poof, no mistakes anymore. So that argument fails you.

Anger. I don’t know if I had anger myself - I think personally I skipped straight to depression - but I definitely felt it from others. When I showed this tool to people, some of them were truly approaching anger. And if the situation would have been less public, I’m sure they would have been mad at the messenger. I’ve met people who swore they would never code with AI. Went as far as publishing that on LinkedIn. As a public statement. To me that looks somewhere between an almost Amish kind of quaint and watching someone defy a rhino.

Bargaining. How do I stay relevant? If I do this, if I do that. But I was failing. I was failing to see how I was going to stay relevant. I had nothing to bargain with. So I skipped this.

Depression. And I was depressed. Or at least rather shaken and down, for about two weeks. The subject of this was 50% about my craft, and the other 50% was about all crafts. If my work, which is just dealing with letters on a screen, goes away; then I honestly don’t see how anyone else’s work with letters on a screen will stay. Or numbers for that matter. I can’t oversee where this is going, but I can see that it’s going, and there’s no stopping it. Who can compete if the other guy has such a giant leg up?

Acceptance. Okay, this is it then. So now what.

The other side

So if someone builds a brick-laying machine, what we’ve done in history is always: we’ve gone up a level. You become the brick-laying-machine-manager.

Maybe not as fun. Maybe more fun. I don’t know. Personally, I never wanted to be a manager, in IT at least. I think that at least subconsciously I’ve always tried to stay away from that. Mentoring is one thing. Managing, like being responsible for non-deterministic entities like humans? Hell no!

And now I’m constantly responsible for non-deterministic entities. Many of them at the same time. And it’s actually great.

I’ve truly never had more fun programming than now. I don’t sleep enough just because it’s so fun. I build software on a daily basis that I could only have dreamed of doing with weeks of work previously. I’ve taken old projects, half-baked ideas from years ago, and just told the AI: hey, look at this idea I had. Here’s a server. Go give it life! It asks a few questions. I let it rattle for a while, and ten minutes later, it is there, and it is good. It’s better than I could have made it. And then I tell it: that is great, but now make it better. And it makes it even better! It adds security. It plugs holes. It adds a thousand tests if I ask it to.

Before, I got hired to optimize a CI/CD pipeline. Now I just tell it: make one. And it does. Just pick the language.

The replicator

It’s like a 3D printer. Which, if you squint, it really is just a Star Trek replicator, isn’t it? At least the 10 year old me definitely thinks so. There’s this magical space in my house, and I can just cast a spell to fill it with an object. One moment there’s nothing and the next it’s just there.

This is what successful agentic programming feels like. First there is nothing. You have an idea. You press a few buttons, and the idea materializes. And I have a lot more disk-space for bytes than I have house-space for PLA. I feel like a - hopefully benevolent - god, pushing creation into the void to fill it with wonderful things.

The app that I’m dictating this blog on did not exist last week. I had the idea on the bikeride back from bringing my kids to school. I needed a dictation app, and not one of the many in the Play Store, I wanted it to do exactly what I want. But I’ve never done Android development in my life. I’ve had ambitions to, of course, but I never got to it. But now; mhwahah! I have my magical replicator! So, it took 5 minutes to explain. I told it to fetch some best practices for Android app creation, and once I was satisfied with that effort, I plugged my phone into my laptop and told it to make me the app and also a markdown on what everything is in the file tree; to at least fool myself into thinking that I was finally learning Android development. And poof, ten minutes later, I was using that app to ask questions about that markdown!

Made for this

And maybe, just maybe, I was made to do this more than actual programming. I’m pretty good at exactly the level of idea-having and directing that is now required to get these things moving. And I’ve got a few decades of doing IT to draw upon to verify that it keeps making sense. So I keep upgrading the system; now I’m making the AI look at my own sessions and find corrections, and correct the instructions for next time. And this works really well!

I don’t know what’s beyond the horizon. Maybe it’s scary AGI. Maybe it’s nice AGI. (Pretty please…) Maybe there’s no AGI and it’s all just a millennium bug.

But I do know that right now, on the other side of grief, it is better. Yes, the stages are real. But acceptance isn’t the end. It’s where the fun starts.