Code at the speed of my understanding
We are getting dramatically better at producing software whilst removing the activity through which we learned to produce good software.
The internet seems to be filled with articles about tokenmaxxing1, software factories2 and arguments that software engineers are cooked3. This piece is not about how good coding agents are or will become. I am personally more concerned that there is not much discourse about the fact that so many of us are outsourcing the thinking4, whilst also removing our primary source of on the job learning.
My favourite thing about being software engineer has been learning new things. Whenever I knew that I need to learn a new database, framework or language - I would get extremely excited! I would spend hours pouring over all the beautiful abstractions someone else had developed. It is not the reading of the documentation which was great, it was the fact work forced me to encounter abstractions, form models of them, make decisions, get them wrong and revise my understanding. I never needed to set aside time to learn, it was an unavoidable by product of doing the job.
Today that is not how we work. We are shipping 24/7, everything is about pure speed. We are optimising IDEs for management of multiple agent streams. We jump between tabs and screens pretending to make "higher order decisions"5, which is basically just means agreeing to whatever Claude or Codex have suggested. AI does implementation, humans do judgment. Sounds great, but where did our judgment come from?
Occasionally something breaks. So you may ask you agent to debug and report back to you "the smart human" what is up.
`invalidate(key)` doesn't fence pending `getOrLoad()` promises, so a pre-commit
read can resolve after eviction and call `cache.set(key, v_old)`, violating
read-after-write consistency until the TTL expires.
The words we can understand, but we can no longer map them to a mental model of the system6. Why? Because you do not know your system anymore. You are no longer the expert in how your code works. You have stopped learning at work and traded this for dopamine hits from rapid shipping using the AI slot machine7.
Research into learning makes an important distinction, performance is not the same as learning 8. We can get dramatically better at completing a task without getting better at doing it ourselves in the future.
Research into AI assisted programming is already showing this. In a recent study, developers using AI completed tasks faster, but scored worse on a subsequent test of their understanding, especially on debugging 9. The interesting part is that people who used AI to ask conceptual questions learned much more than those who delegated the work.
So yes, AI can be a tutor. But only if we use it like one. If every interaction starts with “do this for me”, we should not be surprised when we get the work done without having learnt anything.
If we stop learning, and fail to grow our expertise, where is the next set of novel ideas going to come from? Are we happy to let our own mental capabilities degrade whilst AI continues to make progress? If yes, one must ask themselves what you plan on doing with your time once that boundary is crossed from which there will be no easy way back.
I am now optimising my engineering environment for learning. I do not want to code slowly. I want to learn and code faster, but I do not want the codebase to outrun my understanding. I want to code at the speed of my understanding.
Syntax may well be cooked. But the need to think slowly and deeply enough to build a theory of how our systems work 10 are not inefficiencies I want to automate away.
I hope to share more about how I am approaching this over the coming weeks. If you share these concerns, I would love to hear from you!
References
Footnotes
-
Dave Bergmann. What Is Tokenmaxxing?. IBM, 2026. ↩
-
Factory. Factory 2.0: From coding agents to software factories. 2026. See also Inside a Software Factory, O’Reilly, 2026. ↩
-
Tim Keary. Is Software Engineering ‘Cooked’? The Future Of Development Post AI. Forbes, 2026. ↩
-
Hao-Ping Lee et al. The Impact of Generative AI on Critical Thinking: Self-Reported Reductions in Cognitive Effort and Confidence Effects From a Survey of Knowledge Workers. CHI, 2025. A survey of 319 knowledge workers covering 936 examples of GenAI use; the findings concern self-reported effort and associations, rather than a causal demonstration of declining ability. ↩
-
Bessemer Venture Partners. Inside Shopify’s AI-first engineering playbook. Interview with Farhan Thawar, 2026. ↩
-
Margaret-Anne Storey. How Generative and Agentic AI Shift Concern from Technical Debt to Cognitive Debt. 2026. ↩
-
Chantal Kapani. AI coding is addictive. Engineers are paying the price. LeadDev, 2026. Reported experience and commentary on the slot-machine analogy, rather than established evidence that AI coding causes addiction. ↩
-
Nicholas C. Soderstrom and Robert A. Bjork. Learning Versus Performance: An Integrative Review. Perspectives on Psychological Science, 2015. DOI: 10.1177/1745691615569000. ↩
-
Judy Hanwen Shen and Alex Tamkin. How AI assistance impacts the formation of coding skills. Anthropic, 2026. Research paper: How AI Impacts Skill Formation. In the study of 52 mostly junior software engineers learning an unfamiliar Python library, the AI group averaged 50% on the assessment versus 67% for the group coding by hand, with the largest gap on debugging. The AI group finished about two minutes faster on average, but the speed difference was not statistically significant. Interaction-pattern findings were exploratory associations, not causal comparisons; the assessment measured immediate understanding, not long-term retention. ↩
-
Peter Naur. Programming as Theory Building. Microprocessing and Microprogramming, 1985. ↩