I know a few professional developers who don’t use AI but they are becoming a rarity. The 2025 Stack Overflow Developer Survey, reports 84% are planning to use.
I’m one and I use AI to refactor code a lot faster than I can do it. Recently I used it to transform a God Class (a poorly written class that does everything) into a number of smaller classes. I’ll now always use AI if I’m starting a new project, a small utility or need a UI. Something that might have taken hours manually can now be done in minutes. And it’s great at finding bugs in code. I work with a lot of code from other programmers and AI can explain how it works and find their bugs. Plus, if I need test code written, AI can take over what is usually a tedious task.
It’s not all perfect though because AIs have been trained on older versions of some languages and insist on generating code using deprecated features. Rust for example always seems to stumble with random number generation. Most irritating though is when you point this out and AI then says- oh yes, do it this way instead. Why couldn’t it get it right first time?
Not all programming is the same
Talking with non-programmers, it seems that they believe that programming is just about writing code. They don’t know about the admin or debugging code that I have to do. Admin is just tracking bugs, storing code in a version control system like Git, tracking time spent and running tests.
Writing code is the most complicated task I do though probably less than 10% of my time is now spent on it. These days I don’t write a lot of code; it’s more like I’ll be given a bug to fix in code that I’ve never seen before. I’ll then try to replicate the bug, spend some time reading the relevant code and then fix it. Probably 85% of my time will be spent reading code and the rest is doing the fix and testing it.
Before AI, with some really challenging code it could take me hours or longer to develop. Sometimes I’d manage to get into the ‘zone’ and have greater concentration, be less distracted and breeze through complex logic. It’s great when it happens, but AI is now taking that away. Why spend all that time when with the correct prompts you can get AI to do most of the work?
And it’s having an impact on how I work. Programmers have a reputation for being lazy; it’s just a trait to find faster ways to do things. With AI that laziness is on steroids but it’s no longer my code.
AI doesn’t always get it right
One thing that scares me is running AI-generated code that I don’t understand. Sure, I can ask it to explain even if it makes me feel like a junior programmer. I’ve always worked on the principle of stepping through all the code I’ve written at least once so the customers aren’t the first ones to test it! The risk is that will be less possible. So, I believe that a lot more effort is needed to test the code; more unit tests and integrated testing.
I’ve noticed that AI can produce inconsistencies when you start a new chat. Why would you do that? Because the longer a session goes on, the more tokens it’s going to use. Every time you send a message, it rereads the entire set of messages in the same session. This depends on the AI’s context window but there will come a point when you need to start anew.
So having started the new chat you put in a paragraph or two to bring it up to speed. But if it was generating code previously, any new code it produces might not be an exact match for your earlier code. It’s a balance between token cost and consistency.
AI struggles with architecture
AI is good at writing boilerplate code but in my experience, it is a bottom-up approach rather than top-down. You see it building separate pieces and not creating something architecturally sound. Now this might just be a weakness of my prompts. I haven’t been asking for the walls to be built, just filling in the gaps in the walls.
Conclusion
I’ve always seen AI as a very bright junior programmer that needs my guidance. So here is where I see it going:
- I’m going to be doing less programming.
- I need a higher-level understanding of the application, system whatever so I can direct the AI. The architecture is my vision.
- I won’t be able to understand all the AI-generated code so it will have to generate tests for everything. I can’t emphasise this enough.
- I’ll also be using AI to test for performance and look for bottlenecks and optimisations.
So, less programming and more architecting. I wonder if they’ll give me a pay rise!