I’ve seen software developers complaining that AI coding assistants have taken the fun out of programming. Their argument is simple: AI automates the most enjoyable part of programming: actually writing the code.
But after using AI coding assistants for months… I don’t feel that way at all. I still enjoy building software just as much as I did before, when I don’t get annoyed with the stupid AI assistant that is.
Which made me wonder: why? Why do others feel like AI has ruined coding, while I don’t?
I think it’s all about what your core motivation is. What got you into writing software in the first place? I see three broad motivations..
Programming as Craftmanship
Craftmen enjoy the art of their work. In the software world, these guys and gals enjoy writing elegant code, determining the perfect level of abstraction, choosing the clearest variable and function names, and solving implementation puzzles. And that’s exactly where AI assistants take over. To make matters worse, AI writes slop, which is offensive to a craftsman who values the art of code. Imagine getting replaced by something that does your job, but poorly. That’s got to hurt.
Programming as Engineering
The next group are the engineers. Engineers enjoy solving problems, designing systems and making trade-offs. To them, code is just a means to an end. AI removes a lot of the mechanical work, and some of the low-level decision making. There are plenty of interesting challenges and decisions to keep an engineer engaged. For now, at least. I’ve heard people say that they built an entire app with just one prompt, but I don’t know how big of an app that is.
I partially fall into this category, but I think I actually belong to the 3rd category.
Programming as Creation
I’ve been interested in building stuff since I was a child. Not just software, anything, from woodworking to electronics to software. My Dad got me hooked when he showed me an electronics circuit, and explained that this was the foundation of computers. I loved playing computer games, and the idea of building my own computer and games sounded really captured my imagination
So my motivation and end goal has always been to create. To turn an idea into reality, whether that be software, or a machine, or something else
With software, coding has just been the vehicle by which I achieved that goal, NOT the reason why I enjoy it. This is no different from me using CAD software for electronics or object design, or power tools with woodworking.
Through that lens, AI coding assistants are simply a power tool that I can use to achieve my goals. Just like Linus Torvalds said.
I have to qualify this, though, so you know where I’m coming from. Most of my software work has been solo, or with a very high level of autonomy. So, I typically do everything from deciding what to build, designing the architecture, and making high-level decisions all the way through to low-level code structure, variable/function names, and writing the actual code.
If you think about it, that’s like being the building owner, architect, head contractor, and builders/sub-contractors for building a house.
AI relieves me of a lot of the low-level work, in the same way that hiring a builder would relieve you of having to drill every hole, cut every plank, and drive every single nail. That doesn’t detract from the enjoyment I get out of creating/building.
AI is basically like a team-mate, and a very affordable one at that, albeit a bit forgetful and dopey.
I suppose that at some point it may get so easy that writing software gets boring. But not right now.
Mind you, I’m not someone who blindly trusts the code that the AI writes. I read the code, and often find mistakes that need to be corrected. It makes me feel a bit like a micro-manager. Ah well, I’m still figuring out how best to use AI coding assistants.
What about You?
How about you? What’s your experience with AI and coding? Do you enjoy it? Hate it? Something in-between? Have you found a good way of using AI? Let us know in the comments section below.