Learning to Code After Vibe Coding

A reading note on Steve Krouse's argument that learning to code still matters in the age of LLMs, because code remains a medium for mathematics, thinking, debugging, and creative expression.

Steve Krouse’s Learning to code is still worthwhile asks a question that has become harder to answer casually. In the age of LLMs and vibe coding, is there still a point to learning how to code?

I think the better question is slightly different. The point is not whether people will keep typing every line by hand. The point is whether we still need to learn the grammar of thinking with computers.

Krouse’s answer is yes. Coding is harder to defend if we reduce it to a quick career ladder. But that is also where its educational value becomes clearer. Mathematics, literature, and science are not worth learning only because they guarantee a job. Code belongs in the same family. It is a medium for thinking and expression.

The Career Argument Is Too Narrow

The old promise that learning to code automatically leads to a stable high-income job is weaker now. Knowing how to write a few lines of JavaScript is no longer enough. AI can generate that kind of code quickly, and more people can produce similar artifacts with less friction.

That does not make coding education irrelevant. It means we need a better question. Is coding merely a job skill, or is it a tool for thought?

We do not learn mathematics only because everyone should become a mathematician. We do not read literature only because everyone should become a novelist. Coding works the same way. It trains us to break problems down, write rules, test hypotheses, and interpret failure.

Code Is an Environment for Touching Mathematics

One of the strongest parts of Krouse’s essay is the connection to Seymour Papert and LOGO. Papert wanted children to learn mathematics by exploring a world, not by memorizing a textbook. LOGO’s turtle mattered because it turned abstract ideas like angle, repetition, and direction into visible motion.

In that sense, code is not just a support tool for learning mathematics. It is an environment where mathematics can be touched. Coordinates, angles, loops, conditions, and functions leave the textbook and become behavior on a screen. When the rule is wrong, the result is visibly strange.

Good learning needs action and feedback. Code shortens the feedback loop. While learning to program, people also learn meta-skills: debugging, decomposition, composition, logic, and abstraction.

AI Can Write Code, but Debugging Still Needs Language

Vibe coding lowers the cost of generating a first draft. But the easier the first draft becomes, the more important review becomes. Even if AI writes the code, a human still has to describe the goal, read the result, and narrow down what went wrong.

Someone who does not know how to code can still ask AI to build a program. Someone who understands code asks better questions. They define inputs and outputs, notice edge cases, and divide a vague request into testable units. That is not the same as typing every line by hand, but it is the ability to understand how code thinks.

This is why the loop described in Research, Learning, and Coding Prompts Should Be Designed as Loops matters. The work does not end with one prompt. It continues through generation, execution, observation, revision, and another run. Learning to code is one of the best ways to internalize that loop.

Code Is a Creative Medium

Krouse frames coding as an activity where the creativity of writing, the precision of mathematics, and the feedback of games meet. That framing is useful because it treats code as a creative medium, not as a pile of commands.

Writing turns thought into sentences. Music turns feeling into sound. Code turns imagination into a working system. A button, an automation script, a visualization, a game, a web app, or a data tool can all be a thought made executable.

LLMs lower the entry barrier to this medium. But a lower barrier does not remove the need for judgment. Better writing tools do not remove the need for taste in sentences. Better cameras do not remove the need for framing and selection. Code works the same way.

As an LLM Wiki Node

If I were turning this reading note into an LLM Wiki entry, the central node would be code literacy. Learning to code is not memorizing syntax. It is learning the basic language needed to work with AI on executable systems.

Node Question Connected ability
Code literacy Can I read the logic of code even when I am not writing every line? structure, review, responsibility
Mathland Can mathematics be learned as an environment rather than an explanation? exploration, visualization, immediate feedback
Debugging How do I narrow failure down? hypothesis, observation, rerun
Code as a creative medium Can I turn imagination into an executable system? expression, automation, interface
AI pair programming How do I direct and review AI-generated results? prompting, testing, signing for the work

This connects directly to Spec-Driven Production Development in the Age of Vibe Coding. Production code needs specifications, tests, review, and security. Learning code needs smaller versions of the same loop: purpose, experiment, observation, and revision. Both treat coding as a verifiable loop, not as a one-shot trick.

Conclusion

The reason to learn coding in the age of vibe coding has shifted. The value is less about being able to type every line yourself and more about being able to design and review executable thought.

The better AI becomes at writing code, the more fundamental the human questions become. What should be built? What structure is good? How do we know the result is correct? What should we suspect when it fails? To answer those questions, we still need to understand the language of code.

Learning to code remains worthwhile. Not because the old labor-market promise is unchanged, but because code is one of the most practical literacies connecting reading, writing, thinking, and making in the AI era.

Reference

Comments

댓글

GitHub 계정으로 의견을 남길 수 있습니다. 댓글은 GitHub Discussions에 저장됩니다.