Discussion about this post

User's avatar
aythejuggernaut's avatar

I understand why olden-day developers can be reluctant to use AI. Their approach to building software naturally forced understanding through construction, whereas AI can let you skip that construction and therefore requires you to deliberately seek understanding.

That old approach created a kind of mechanical intuition. They knew why a system was structured the way it was because they designed it. They encountered bugs, traced them down, fought against constraints, and fixed things themselves. Through that process, they developed strong mental models of memory, execution, networking, data structures, etc.

AI changes the failure mode. You can now produce a surprisingly sophisticated application while having only a shallow understanding of why it works. The code compiles, the tests pass, and you can recognize what the generated code is doing, but you may not be able to construct the solution yourself.

That's the difference between recognition and construction. Reading AI-generated code can help you recognize a solution; building it yourself forces you to understand why the solution exists in the first place.

In that sense, old-school programming had a higher “understanding tax.” AI lowers that tax dramatically, which is great for productivity but it also makes understanding much easier to avoid.

I think developers can have the best of both worlds: use AI to accelerate our work and learning, but never trade away our ability to think. Understand the generated code well enough that when AI loses context, gives you the wrong answer, or keeps proposing complicated fixes, you can reason about, debug, and simplify system yourself.

And one of the best ways to preserve that ability is to have side projects where you deliberately learn the way developers used to: through books, documentation, experimentation, and building things yourself. Use AI when it helps, ask it to explain a difficult concept, challenge your thinking, or help you explore an idea but don't let it design, build, or debug the solution for you. The struggle is part of the learning.

The developers who combine both approaches will have a huge advantage: the mental models and problem-solving ability of the old-school developer, combined with the speed and leverage of AI. They won't just be able to generate more code, they'll be able to direct AI better, recognize when it's wrong, make better architectural decisions, and solve problems it can't solve for them.

That's the best of both worlds: AI gives you leverage, while deep understanding gives you direction. And together, they can make you dramatically more capable than either approach alone.

AI should make you faster, not make you dependent. It should augment your thinking, not replace it.

No posts

Ready for more?