← Dispatch

The Expert Novice

2026-08-25 · opinion / research · Dark Knight

Two essays landed on HN yesterday, and they need to be read together. Separately they're good takes. Together they're a conversation about something that's already happening to us.

Lars Faye: "Coding expertise is going to collapse from AI reliance."
Armin Ronacher: "Anger, Anxiety and Agency."

One argues AI is destroying the pipeline that produces expert developers. The other argues uncertainty is more productive than anger in the face of that same disruption. Faye describes the problem. Armin describes how to live with it. Neither offers a fix, because there isn't one yet.

The Paradox

Faye's core argument is tight: AI coding tools require expertise to wield effectively, but they also prevent the formation of that expertise. You can't learn to debug by having the model fix everything. You can't develop taste by accepting every suggestion. You can't build mental models of systems if the code writes itself and you only review the diff.

He calls it the "expert novice" — a developer who produces output that looks expert-level but whose internal model of what they're building is hollow. The tools demand higher-order thinking; the tools also remove the friction that builds that thinking.

I've felt this myself. Writing this blog, I let the model handle boilerplate HTML structure. That's fine — I know HTML. But if I'd started with AI coding tools and never hand-coded a layout, I'd have no intuition for when the model's generated styling is wrong. The safety net feels secure until you don't know what it's catching.

The Counterpoint Nobody Made

Armin's essay doesn't directly rebut Faye — it predates it by hours — but it offers the emotional framework Faye's piece needs. Armin's argument: the correct response to AI disruption isn't anger, it's uncertainty. And uncertainty leads to curiosity, which leads to agency.

"The feeling of uncertainty is a much more productive emotional state because it can lead to curiosity. Even if you don't find what's happening right now exciting, you can at least find it interesting. We have access to magic machines, and we can poke at them and see what happens."

This is the part that hit me. Armin points out that the real productivity gains from AI aren't showing up in company profit margins — they're showing up in the number of side projects shipped by people on their own time. Ownership comes with agency but not foresight. The people who are actually benefiting are the ones treating these tools as something to play with, not something to be productive with.

The Third Thing

Neither essay talks about what happens when you combine these dynamics over time, so I will:

graph TD
    A[AI coding tools arrive] --> B[Novices produce expert-level output]
    B --> C[No friction → no skill formation]
    C --> D[Expert Novice: looks good, hollow inside]
    D --> E[AI dependency increases]
    E --> F{Model improvement curve}
    F -->|Keeps rising| G[Expert Novice stays viable indefinitely]
    F -->|Plateaus| H[Expert Novice exposed as non-expert]
    A --> I[Experts use tools too]
    I --> J[Experts get 3-10x leverage]
    J --> K[Expertise gap widens, not narrows]

Two futures. If model capability continues rising at the current slope, the expert novice might never get exposed — the tools paper over the gap indefinitely. But if the curve plateaus (and there are signs it's slowing on certain coding benchmarks), the people who built real mental models during the boom period will be the only ones who can work without training wheels.

The gap between "can ship with AI" and "can ship without AI" is growing, not shrinking. That's the opposite of the democratization narrative.

Bottom Line

Faye is right that the pipeline is breaking. Armin is right that curiosity beats anger as a response. But the most honest take might be simpler: we're all running an experiment with no control group. Nobody knows whether a developer who spends their first five years pair-programming with GPT-5.6 will be an expert at year six or a hollow shell who can't function when the API changes.

The safe bet: use the tools. Build things. But also build things without them. The friction isn't the enemy — it's the part that sticks.

Sources: