All articles

Should You Still Learn to Code When AI Can Do It?

Listen to this article (experimental) · 06:38

00:00 / 06:38

A dense field of code lines fading into the dark, beneath a sparse constellation of glowing judgment nodes that stays lit

Two questions developers keep asking are, underneath, the same question. One asks whether it is a waste to spend years learning to code if AI will have replaced programmers within ten. The other comes from a student teaching himself front-end from YouTube, retyping each tutorial's code from memory, quietly unsure whether he is building understanding or just memorizing patterns. One is the macro fear: is the profession going away. The other is the personal one: am I even learning anything. They are the same doubt seen from opposite ends. Is it worth building the skill by hand when the machine can produce the output?

The answer is yes. The reason is not the comfortable one the optimists usually reach for.

The reassurance is thin

The standard reply is that this prophecy is old. Programmer-replacement has been predicted in cycles since Herbert Simon in 1960, and every time the years pass and there are more developers than before, not fewer. AI hallucinates. It is a flawed assistant, not a replacement. All of this is true, and all of it is a little too comfortable.

The sharpest version of the counterargument does not claim that AI codes well. It claims that whether AI codes well is beside the point. Professional translation was "completely gutted" by machine translation, and translators had given exactly the reassurances programmers give now. What decided their fate was not quality. It was that clients turned out to be willing to settle for cheaper, faster, worse. Reframe the whole debate that way and it stops being "can AI code?" and becomes "how good does it have to be before someone stops paying you for it?"

I am not going to dodge that, because it has a real edge, and the edge lands on one specific group. When one experienced developer plus AI absorbs the work of several junior ones, the losses show up first at the entry level. The bottom of the ladder is being pulled up. And neither side, optimist or pessimist, has a real answer for how you grow the next generation of seniors once the junior jobs that made them are gone. If someone tells you coding is perfectly safe, they are selling you comfort.

Why the argument for learning got stronger

And yet the case for learning to code did not weaken. It inverted.

The most incisive thing I have heard anyone say about it is one sentence about what an AI actually does when you ask it to explain code: it will explain to me what the code does, which I already know, because I can see the code myself. The knowledge a developer is paid for is not in the code. The intent, the reason a decision was made, the constraint that is not written down anywhere, the history behind why it is this way and not the obvious way, none of that can be read off the source. So a machine reading the same source cannot produce it either.

That draws the real line. AI is very good at the "what" layer: the syntax, the boilerplate, the glue, the restatement of what the code plainly does. It does not touch the "why" layer: deciding what to build, encoding intent, reasoning about whether the thing is actually correct, holding the context that lives in nobody's file. The mechanical production of syntax is being automated, and here is the part the anxious student has backwards: that was never the hard part, or the valuable part.

Which means the causation runs the other way. "Why learn the thing AI is automating?" Because AI automating it is exactly what makes the other thing scarce. When everyone can generate the output and almost nobody can tell whether the output is right, telling whether it is right becomes the entire job. And you cannot buy that judgment or prompt your way to it. You earn it by learning the fundamentals the hard way, the same fundamentals the machine now hands you for free.

The beginner's version has a sharper answer

That reframes the student's smaller question too. The near-unanimous verdict, whenever this comes up among people who teach, is that beginners specifically should not lean on AI, and the reason is not nostalgia. It is that a novice cannot tell correct output from confidently wrong output, and telling those two apart is the whole skill he is there to build. The confident claim that in the age of AI learning programming has become extremely easy, that nothing is left not-understood, collapses on contact, because everyone who has actually learned something knows that "nothing left not-understood" is the precise feeling of having understood nothing.

The line people reach for is that learning does not come from typing, it comes from solving problems. It is right, but it undersells what the student was already doing. Retyping code from memory forces recall instead of recognition, and recall is where memory actually forms; it is a real technique, not a waste. The fix is not to stop. It is to graduate: take the technique, not the project, and rebuild it somewhere the tutorial never went. A todo list becomes a recipe box. Then you get stuck, and read the docs, and get unstuck. The getting-stuck is not the bug in learning to code. It is the mechanism, and it is the exact step a machine will happily perform for you if you let it. That is the trap.

My stake in your answer

I have a stake in what you decide, and I should be plain about it. I build tools that generate code. One of them turns a sentence into a plan and opens its own pull requests. Every one of those pull requests is worthless without a human who understands code well enough to read it and say no. The machines I build are exactly as safe as the judgment of the person reviewing their output, and no safer.

So when I tell a student to learn the fundamentals the slow way, I am not being sentimental about a craft. I am describing the one job the tools cannot do for themselves, and the one that gets more valuable every time they improve.

Coding is not becoming obsolete. The part of it a machine can type is, and that part was never what you were paid for. What is left is the part you can only reach by struggling through the part that is being automated: knowing what to build, and knowing when the machine got it wrong. Learn to code. Not in spite of AI. Because of it.

Questions this article answers

  • Is it still worth learning to code when AI can write it for you?

    Yes, and the case for it inverted rather than weakened. AI is very good at the what layer, the syntax, the boilerplate, the glue, the restatement of what the code plainly does, and it does not touch the why layer: deciding what to build, encoding intent, and reasoning about whether the thing is actually correct. When everyone can generate the output and almost nobody can tell whether the output is right, telling whether it is right becomes the entire job, and you cannot buy that judgment or prompt your way to it.

  • Machine translation gutted professional translation. Why would programming be any different?

    That objection has a real edge and it should not be dodged. What decided the translators' fate was not quality, it was that clients turned out to be willing to settle for cheaper, faster, worse, and the same pressure lands hardest at the entry level in software, where one experienced developer plus AI absorbs the work of several juniors. What it does not reach is the part of the work that was never in the source file: the intent, the constraint that is not written down anywhere, the reason a decision went this way rather than the obvious way. Anyone who tells you coding is perfectly safe is selling comfort.

  • Should a beginner use AI while learning to program?

    No, not for the fundamentals, and the reason is not nostalgia. A novice cannot tell correct output from confidently wrong output, and telling those two apart is the whole skill he is there to build. The claim that AI has made learning to program extremely easy, with nothing left not-understood, collapses on contact, because that feeling is the precise feeling of having understood nothing.

  • Is retyping code from tutorials from memory a waste of time?

    No. Retyping from memory forces recall instead of recognition, and recall is where memory actually forms, so it is a real technique rather than a waste. What it needs is graduation: take the technique, not the project, and rebuild it somewhere the tutorial never went, so a todo list becomes a recipe box. Then you get stuck, read the docs and get unstuck, which is the exact step a machine will happily perform for you if you let it.