Coding Atrophy and Generative AI

This post is about my opinion on code atrophy in a post-LLM software development world.

Coding Atrophy and Generative AI

Coding atrophy existed long before LLMs. A dev could go on a holiday, sabbatical, boomerang back after a career change, have a long illness, or anything else that took coding away from them for some period. Usually, it doesn't take long until fingers find the right keys to return to form and be as sharp as ever. However, this isn't the case with (most) generative AI usage, and this post explores my opinions on code atrophy vs GenAI.

FYI I've already written an opinion piece on what I feel generative AI means for those passionate about coding as a craft in The 2026 Passionate Coder. Note, just like in The 2026 Passionate Coder, this will only focus on the coding portion of software development; not the stakeholder management, organising, architecting, testing, discussions, etc.

Professionally and personally, I've used various forms of generative AI:

  1. Simply not using it
  2. Being assisted when I want assistance
  3. Writing specs, giving code feedback, properly reviewing every commit
  4. Fully vibe coding

I'm a little hesitant to lean in 100% to generative AI. While I think I could go hard in it, I worry about losing my material skill (and maybe have psychosis whisper in), the same coding skills I've honed over the many years of software development. If given a choice in the above options in personal projects, I'd be just after point 2 - maybe at ~2.4. To keep an open mind (and to ignore GenAI issues) I do see where it can be useful after Claude Opus 4.5 released, even for someone who prefers to be hands-on with the code.

But for me, prolonged use becomes insidious. It's easy to become lazy and hand over thinking to the machine in looking for the next hit of cognitive offload when coding becomes even a smidge difficult. Why type your search and read half a short blog post to understand the problem when the same keystrokes give you the (possible) answer right there and then. It's like the evil advisor Gríma Wormtongue from The Lord of the Rings - whispering sycophancy and laying out the path of least cognitive resistance.

Gríma Wormtongue whispering to king Théoden.

Both vibe coded projects and only reviewing code after in-depth specs doesn't engage my brain; as it's the act of writing and genuinely forming the work by hand that gives the strong mental models. Not just "I know how this works" but to also say "I know how to extend this". Similar to reading a physical book vs an audiobook. When reading a physical book more of our brain is engaged as we're not just creating the concept in our heads (which audiobooks do too), but we're also using our spatial memory by having a physical item we need to hold and have our eyes scan over. More brain parts engaged leads to more retention and recall.

I worry that professionally and personally, the coding activities I enjoy will pour through my fingers like fine sand until all that's left in my palm is managing swarms of agents. Of course, similar can be said for many skills during history as technology continues to evolve, but that doesn't take away from how those individuals felt either - even if it was "for the better". Maybe we'll eventually see coding on the Red List of Endangered Crafts if LLMs continue to improve thus removing "engineer" from "engineer + GenAI = great" equation.

Humans in general love the easy way out. I'm not calling you a lazy person, but in general we have tendencies toward the path of least resistance. Whether that comes up as avoidance in difficult situations, food delivery, watching something easy after work, etc. The same applies to generative AI, and not just for coding. The cognitive offloading is so convenient, especially when what we're being told sounds true and real. But to bring it back to coding, I sometimes feel the wind leaves my sails when wanting to explore a project for fun while knowing in the back of my mind, Opus can nail 80% within an hour compared to my entire weekend if done by hand. I don't want to leave learning behind, but man... It's sometimes hard to overcome the loss of enthusiasm. In my post Making a Living Dex: Part 3 - Preservation and Generation Five, where I try to catch one of every Pokémon, I mention that I have the ability to hack in (programmatically generate) whichever Pokémon I wanted, but don't as that's a hollow victory and that's how it feels when using GenAI for a fun learning project.

Though on the topic of lazy, as time goes on and let's say an LLM gives me a command to run, and I want a tiny change, or a boolean to flip in a config file... I sometimes just ask it to do it rather than doing it myself. It's "sticky" to stay in the conversation window and command from there even for the most simple of tasks. I'm not sure how I feel about that.

A New York Times piece talks on making the effort to sharpen yourself. What 370,000 College Essays Tell Us About A.I.’s Effects on Creativity, explains even if you do the final result, when the acts leading up to it (in the piece: brainstorming) are offloaded, we erode our own creativity and thinking. Three studies are cited and point to this same direction: GenAI makes us sound better, but creatively it's lipstick on a pig and all the lipstick colours for all the people are the same as our ideas homogenise into uncreative sludge. I'm the type to see coding as creative - as a way to express ourselves. It might be hard to believe from the outside as software seems to deterministic, mathematical, and cold, but there are so many different elegant solutions to every problem and those are delightful when nailed perfectly. The point here it's rather easy to lose creativity when handing over coding to GenAI. Though on the other hand, I'm not sure that matters for (most) businesses.

For pure speculation, I wonder if a lack of learning goes hand in hand with a reduction in creativity. With blinders, we don't as easily push our own knowledge frontiers. Maybe the initial solutions GenAI presents are new to us, but over time we get used to those solutions and become comfortable clopping down the same homogenised roads and never heading off for fresh, unknown pastures.

Let's go up a level of abstraction. If we accept code atrophy, we can reason we'd atrophy at a codebase level too. If the entirety of the code is agent driven, you better be damn sure that the agent can debug production issues at speed too. Each time a developer looks at the LLM written code, it's as if they're looking at it for the first time. Playing the playing Devil's advocate: "isn't this the same if another human developer wrote the code before you?" and yes, but only at the very start. If I'm expected to extend and maintain a codebase, I'd expect to be familiar with it.

So what can be done to limit coding atrophy? For me at the time of writing this post:

  1. Personal projects away from generative AI. Or at most, assistance when wanted but make sure the learning happens rather than blindly accepting.
  2. Do the readings on the problem. Whether that's online or via a book. You'll come out with context and learning wider than just your problem space. A good sign here is if generative AI is taking too long or going in circles on a problem, then it's your time to properly step in.
  3. Read, but not just for problems. These can be for your curiosity or if you want to improve yourself. Again, whether this is online or books, simply expanding your knowledge frontier is a win.
  4. If you have an experienced developer nearby, have them rip apart your code
  5. Go out of your way to read code from someone experienced simply as a learning exercise to get new perspective and ideas.
  6. Be cognisant of the work you give generative AI. Are you getting in the habit of being at total mercy of the LLM? Maybe that's a time to at least make sure your mental model matches to the code produced.

I think this 30 second section from Ghost in the Shell: Stand Alone Complex 2nd GIG episode five, titled IN: Those Who Have the Motive – INDUCTANCE, sums up most of what I've said. I watched this as a teen and this short clip as stuck with me ever since. To set the scene: a future where cybernetic brains can have all the information you need instantly but our main villain, Gouda, instead likes to scrapbook to be able to rattle off ideas from the top of his head.

0:00
/0:29

Gouda from Ghost in the Shell: Stand Alone Complex 2nd GIG explaining that he scrapbooks to rattle off creative ideas from the top of his head - contradictory in a world of cyberised brains and instant information.

In the end, I feel resistant to hand in my decades of coding knowledge. It got me to where I am today, introduced me to like-minded friends, and gave me another fun hobby. I miss the joy of hand building every day, and perhaps I'll increasingly be seen as "old in my ways" if the SDLC moves further from human code and more toward unmanaged agentic supervising. Or maybe the needle only moves just a little bit and coding as a skill continues to be in demand. Time will tell. All I know is I love the whole game too much to give it all up, so I'll continue to work with the tools I'm given to not be left behind.