Every week someone asks a version of the same question. If a model can produce working code from a sentence, why would anyone spend years learning to write it by hand?

It is a fair question, and the honest answer is not a defence of the old way. Something did change. Pretending otherwise is how you end up teaching people skills the market has already stopped paying for.

A control-room console at night, one gauge picked out by a brass lamp while the rest fall into shadow

The calculator did not end mathematics

It moved the work.

Before the calculator, a large part of doing mathematics was executing it — long division on paper, log tables, the mechanical grind of arithmetic. The calculator took that away completely and nobody mourns it.

What it could not take away was knowing which numbers mattered. Which quantity to divide by which. Whether the figure on the display was plausible or off by a factor of a thousand. What the answer meant once you had it. The calculator made execution free and left judgement exactly where it was.

That is the shape of what is happening to programming right now. Writing code has become the cheap part. Reading it, judging it, and knowing what to ask for have not.

What actually got cheaper

Be specific about this, because vagueness here is how people end up anxious for no reason.

Cheaper: boilerplate, scaffolding, syntax you half-remember, the API surface of a library you used once, translating between languages, writing the tedious test you were going to skip, the first draft of anything.

That is a genuinely large amount of work, and it is gone. If your value was that you could remember syntax faster than the person next to you, that value has evaporated. This is the part people are right to feel unsettled by.

Not cheaper: everything downstream of the code existing.

A single large gauge seen close through its curved glass, needle at rest

Three things that do not get easier

You have to read what it wrote. Code you cannot read is code you cannot trust, and code you cannot trust has to be rewritten by someone who can — usually at the worst possible moment. The ability to open an unfamiliar file and understand what it does was always valuable. It is now the whole job. Generating a thousand lines you do not understand is not productivity; it is debt with a delayed invoice.

It answers the question you asked, not the one you meant. This is not a flaw that better models will fix, because it is not a modelling problem. When you ask for something, you carry a mass of unstated context: what this system is for, who uses it, what happens on the day it is wrong, what the business will tolerate. None of that is in your sentence. The model answers the sentence. The gap between the sentence and the intent is where the expensive mistakes live, and closing it means knowing enough to notice the gap is there.

When it breaks, it does not know it broke. A model has no relationship with the consequences of its output. It does not get the call. It does not watch the number go the wrong way. It cannot tell you that the thing it wrote yesterday, which was correct, is now the reason something is failing — because it has no notion of “now”, or of “failing”, or of the thing being yours. Someone has to hold that. Holding it requires understanding the system, and understanding the system requires being able to read it.

An empty operator's chair pulled up to a console of glowing green dials

The scarce skill moved

Here is the part that matters for anyone deciding what to learn.

Anyone can ask for code now. That is the actual change — the barrier to producing code has collapsed. Which means producing it is no longer where the scarcity is, and scarcity is what gets paid.

Few people can tell whether the answer is any good. Fewer can say why not. Fewer still can state the problem clearly enough that a good answer is even possible — and stating the problem well turns out to be most of the work, exactly as it always was.

If you are starting now, this is not discouraging. It is a much better deal than the one before it. You get to skip an enormous amount of mechanical practice that used to stand between you and doing anything interesting. But you do not get to skip understanding, and the temptation to try is the single biggest trap in front of a beginner in 2026. Working code you cannot explain feels like progress and is not.

The short version

AI made writing code easy. It made understanding code valuable.

Learn to program, not because a machine cannot write it, but because someone has to be able to read it, judge it, and answer for it. That someone is either you or a person you are paying.

What’s the last thing you shipped that you couldn’t explain?