For better or worse I think I have become an AI-first coder. All my life, I’ve felt I’m just an OK coder but fairly good about understanding how to structure a program to achieve the desired outcome. I’ve always struggled with the details of writing enough testing and creating test cases that are relevant to the maintenance of the app. I’ve struggled with getting enough requirements before I start a task and jumping in too quickly before all the unknowns are defined.
I’ve always struggled with the kind of brain-teasing compound problems they create in Hacker Rank and those “brain teaser” style coding tests, primarily due to the amount of time those tests espouse.
Then there’s the other problem… I’m slow. It always takes me longer than everyone else to arrive at the same code decisions. I’m not sure why and if I knew how, I’d fix it.
The advent of Claude Code has radically changed the way I approach coding problems. Asking AI to write detail problem schematics, implementation options, and a testing plan before starting a Jira ticket has radically improved the code I write and the code I check in. Not because the agent produces pristine code. Hardly.
But because of method. Programming is not just the syntax of the code. Programming is solving the right problem, identifying problems in what was written and understanding the execution path through a labyrinth of classes and functions.
Most of the work that done every day isn’t really “green field” development or rather, development that produces a new app or new code that didn’t previously exist. Most of the daily work of a programmer is boring debugging of an app you didn’t write and many times, don’t maintain.
It’s six different scalable processes that fight for database contention and how that fight is resolved. It’s deciding how to best represent this data in the database so that it can be retrieved by people who need it. Programming is asking questions like “Does this code need to be its own thing, a supporting utility class or a micro service that supports this primary app using some sort of remote-call methodology?” Is the delay that adding a micro service entails going to be something the user and stakeholders are ok with?
None of these are the decisions that AI can make. And letting AI take them over makes for very unstable codebase. Giving the code a stable structure and a complete testing plan makes AI code orders of magnitude more stable than it otherwise would be in the same way that adding testing to any code base makes it more stable and less prone to regressions.
In addition, AI makes tasks like documenting your code and producing QA edge cases stupidly easy. But you have to ask it. You have the prompt in your hand. It will do what you want it to. You just have to want the right things.
I got a deeply unsettled feeling writing this post. I wasn’t sure I wanted to write it and if I wrote it I wasn’t sure I wanted to post it here. But as I was recently reminded, I DESERVE SUNSHINE. I want the light to hit my face so I’m coming out of the AI closet.
I share your concern with AI generated content. It’s every bit as insidious as the “Fake news” stuff that circulates in people that share political and sarcastic memes. I don’t participate in it and I think it deserves every bit the slop reputation it’s developed.
But code created with intention, method and testing support is something I will always try to produce. So with that desire firmly in the front windshield, I guess I’m ready to tell the world.
I’m an AI-first coder. And I’m becoming ok with that.