AI Struggles To Help You Think

04 Jul 2025

AI Can Help You Write Code - But It Can't Help You Think

The hardest part of software engineering has never been the syntax.

It's never been whether you used map or forEach, GraphQL or REST, Tailwind or BEM.

The real difficulty is developing the ability to reason about an entire system — understanding how data moves through it, how changes ripple across it, and how one decision in a helper function might trigger cascading pain three services away.

That reasoning muscle is what separates a competent developer from a great one.

And we used to build it the hard way:

  • by writing code line by line
  • by navigating the thorns of state
  • by realizing, too late, that the thing you built two weeks ago just broke the thing you wrote two months ago

You weren't just shipping features — you were developing mental models of how the system fit together.

Here's the problem: AI is hampering that learning loop.

AI can write you code. Good code. Sometimes great code.

But it doesn't help you build the mental model of the system you're adding to. It creates you the puzzle piece but doesn't help you see the entire jigsaw.

It can autocomplete your function, scaffold your tests, write your regex, and even explain the commit you barely remember writing — but it can't tell you how that code affects the behaviour of a 50k-line production app that predates you by six years.

What's worse: the very process that used to build your reasoning — writing code line-by-line while holding the system in your head — is now being outsourced.

The production is supercharged. But the understanding is wavering.

You're shipping more...but learning less.

Developers today might produce more PRs than ever before. But that doesn't mean they understand the system better than last year's slower counterpart.

KPI targets > cognitive cycles.

In fact, in some cases, they understand it less — because they never had to wrestle with it.

And you can't reason about something you've never truly had to engage with.

Sometimes, the deepest learning and growth comes from spending an uncomfortable amount of time in the discomfort.

So what do we do?

We can't just turn the AI off. We shouldn't*

But we do need to design engineering workflows that preserve and protect system-level reasoning:

  • Code reviews that ask "how does this interact with module X?", not just "are the tests passing?"
  • Internal docs that focus on why something exists, not just what it does
  • Slowing down when debugging — not because the AI can't guess the fix, but because you need to learn why the bug emerged

*one of the things I like about AI is that I don't feel bad about bugging it with more questions. I can be quite an annoying person, so to have a 24/7 entity around that I can interact with, who doesn't get annoyed, is quite valuable to me

And we need to teach junior devs that the process of production was the process of learning — and that if AI takes the wheel too often, they'll miss the most important part of the ride.

AI is here to stay. But your ability to reason about systems?

That's still the rarest — and most valuable — skill in software engineering.