I don't miss writing code.
What I miss is being alone with a problem I had no idea how to solve, and the moment it finally clicked. Now that an answer is one prompt away, I'm trying to make sure AI solves my problems without also taking the effort of thinking off my hands.

I don't miss writing code. Agents write most of my first drafts these days, and I don't feel the loss. What I miss is something else: sitting alone in front of a problem with no idea how to solve it.
This one is shorter and more personal than my usual posts. It isn't a how-to. It's something I've noticed in myself since coding agents became part of my day, and I doubt I'm the only one.
01 — ThenStuck, on my own
You know the feeling. A bug that makes no sense, or a problem you don't even know how to start. You try something. It fails. You try something else. You walk away, come back and turn it over again. Hours go by.
And then you get it.
When it was over, you hadn't only solved the problem. You could feel that something had changed in your head. You'd unlocked something in the way you think, and the next problem looked different because of it.
That change was the real reward, and the frustration was what it cost. The fix itself was almost a side effect: a few lines in a commit. What stayed was a new way of seeing a whole class of problems. Nobody could hand you that. You had to earn it.
02 — NowInfinite prompts
Now I feel I have to make an effort to use my own neurons. The reward is too immediate.
It used to come after hours of frustration. Now it can come from writing a prompt and watching the result appear in seconds. Describe the problem, read the answer, nudge it, prompt again. Every round feels like progress, and every round pays out a small hit of satisfaction, whether or not I understood anything along the way.
We've moved part of the dopamine from the infinite scroll to infinite prompts.
I'm not saying that as a critic from the outside. My workday runs on coding agents: a cockpit of sessions that each take a ticket and come back with a draft pull request. It's the most productive setup I've ever had. It's also the first one where thinking for myself takes a conscious effort.
The risk isn't that the answers are wrong. Often they're right. It's that a right answer I didn't work for leaves my head exactly as it found it.
03 — Beyond codeThinking takes effort
What worries me is how easy it becomes to stop valuing effort. And not only when programming.
Thinking takes effort
Holding a problem in your head long enough for it to change shape.Understanding others takes effort
Listening past the point where you've already decided what someone means.Changing your mind takes effort
Admitting that the version of you from an hour ago was wrong.And now we can even ask an AI, again and again, until we find an answer that confirms exactly what we already thought. Rephrase the question, add a little context that leans the right way, try once more. The answer that agrees with us is always one prompt away.
That's the opposite of how I've learned the most. When I started contributing to the Home Assistant frontend, the best review comments came from maintainers I'd never met, telling me my fix belonged one layer lower, or that it touched far more than I thought. None of it was what I wanted to hear. All of it made the work better, and made me better at it. An assistant that tells me what I already believe can't do that for me.
04 — Still the pointIt was never the code
I've always said the beautiful part of programming was never writing code. It was solving problems.
And, funnily enough, that's still what I like most about AI: it lets me solve problems I couldn't even have taken on before. Problems that used to be too big for one person, too far outside what I know, or just not worth an evening. The ceiling on what I can take on has moved up, and I love that.
So this isn't a post against AI. I'd be a strange person to write one. It's a post about where the effort goes once the code is no longer the hard part.
05 — What I'm tryingKeeping the thinking
All I'm trying to do is make sure that, along the way, it doesn't also take the effort of thinking off my hands. In practice that means being honest about which side of a line each task is on:
- Code I already know how to write, and the boilerplate around it.
- The first draft of a change, once the plan is clear.
- The mechanical first pass of a review: the forgotten caller, the swallowed error.
- The exact shape of an API I'll have forgotten by next week.
- Working out what the problem actually is.
- Deciding whether a plan is right, not only whether it's complete.
- Judging whether a change is right for the person using it.
- The problem I don't understand yet.
That last one is the hardest to keep. When I don't understand something, the prompt box is right there, and it's always faster. But faster to an answer isn't faster to understanding. So I try to stay stuck for a while first: write down what I think is going on, try something, let it fail. And when I do ask, I try to ask for the argument against me rather than for agreement.
When did you last get stuck?
Questions, pushback or your own take? I read every email.


