Castles In The Air
It’s Still Just as Rewarding
Finally there is the delight of working in such a tractable medium. The programmer, like the poet, works only slightly removed from pure thought-stuff. He builds his castles in the air, from air, creating by exertion of the imagination. Few media of creation are so flexible, so easy to polish and rework, so readily capable of realizing grand conceptual structures.
— Fred Brooks, The Mythical Man Month, 1975
We were assigned The Mythical Man Month in college. Up until then, I knew I wanted to write code, but I couldn’t really tell you why. I came across the paragraph above, and suddenly I knew.
Programming was how I could express myself. I wasn’t an artist. When I sing, dogs howl. When I draw, friends say, “Very nice. What is it?” I didn’t connect particularly well with people, even though I wanted to. And yet, when I wrote my first program, I discovered a medium which let me convert thought into action. All the ideas that were bottled up behind a wall of frustration suddenly had an outlet. And Brooks’ explanation told me why: it was my way of creating things.
I’ve probably written code just about every day for the last 50 years. And, to my continued surprise, I still love doing it.
It’s not the editing, or the tooling, or the language. The thrill comes from planning something in the abstract and seeing it slowly become real. Then there’s the joy of seeing people use it; it just feels good to be able to contribute.
So when I started seeing what LLMs could do, my heart sank. Were they going to take away the joy I found in programming? Would they have all the fun, leaving me to debug things when they messed up?
It’s Still Programming
I was expecting to hate using Claude. I just knew it would dehumanize the process, draining away all the fun stuff, turning what was once creative into a mechanical slog.
I was wrong. Coding with AI is fun. In fact, to me it feels like I’m having more fun than I’ve had in a while. So I took some notes over the last month to work out why. In no particular order:
AI takes away the boring drudgery. Got an abandoned project from 6 years ago that no longer builds? Hey Claude, bring this up to date with modern tooling and updated libraries, and make sure the tests all pass. Five minutes later I’m playing with code that I’d assumed would never run again.
Over the last few weeks, I’ve had a bunch of fun playing with a project I started in 2016 that helped me draw animated diagrams for talks and articles. I was never happy with it. I lost interest, and as the years passed, technology moved on and it stopped building with modern tools. Claude took 30 minutes to get it back running. Since then, the two of us have rewritten it three times, using different approaches and tooling. That’s not something I’d do anymore on my own.
(Oh, the project is picjs.)AI shortens the feedback loop: dramatically. If I want to try an idea, I can iterate with an AI in minutes. If it doesn’t pan out, I can throw it away with no regrets.
AI can eliminate unnecessary project abandonment. In the past, I’d sometimes get to a point in a project where I felt things were just too messed up to continue. I’d spend a couple of iterations refactoring, trying to get things back on track, and then I’d just throw away the last n commits and try again. Now, I’m finding AI can help me unblock the issues I’m having. When it does, I know I need to be strict to stop it just hacking solutions, but that’s way less effort than rolling back a week.
AI broadens my reach. Back when I started, you could know something about just about everything in software. Now, the topics are so deep, and they change so fast, that it’s difficult to be an expert in even one.
But with my AI, I can explore areas that would otherwise take me a week to break into. I can work out if there’s something there for me, and then drop back to a lower level and learn the basics.AI is the ultimate rubber duck. I’ve dialed back Claude’s enthusiasm for explaining everything. Instead, I can bounce ideas and problems off it. Often it comes back with something that triggers a brand new direction.
Programmers are the layer that imposes structure on messy reality. Often we do that with code. Sometimes we do it by changing the way people think about what they’re doing. And sometimes we end up changing reality to be just a little less messy.
And it doesn’t matter what tools we use to do that; Rust vs Go, React vs Vue, AI vs hand coding. In the end, it’s all just programming.
And it’s what we do.




