We Should Still Teach Kids to Code
As a person whose day job revolves around coding education, LLMs certainly give me pause, if not a bit of existential dread. Is there a point to teaching kids to code when an increasing fraction of the code we write can be generated by a language model?
For the purposes of this post, let’s work under the hypothesis that GPT-5, GPT-6, and so on actually lead to a drastic reduction in the demand for professional programmers. Let’s assume that with these tools, anyone with an internet connection can chat their way into a functional program that meets their needs. Is this situation likely? I have no way to guess, but from my understanding this is the primary source of dread that today’s AI
bubble revolution is causing.
So, if the idea of “learn to code, get a job” no longer holds true, why teach coding at all? Besides some practical considerations of “what happens when there’s a bug”, “keep a human in the loop”, there are good reasons to code that aren’t practical/material/useful. My contention is that GPT-5-domination or not, these are already the primary reasons we should be teaching kids to code.
Coding as an Instrument
Most students learning to play the guitar, xylophone, or triangle aren’t doing so with the expectation that they’ll end up in the New York Philharmonic. There are plenty of abstract cognitive benefits that studies have found, but 9/10 students should tell you that the real reason they go to music lessons is because playing music is fun.
Learning the guitar/xylophone/triangle isn’t easy. Reading music, remembering fingerings, and developing a sense of rhythm all take lots of dedicated practice. There’s a steep learning curve, and you’ll likely sound bad for years. That being said, things are fun along the way, and improving steadily is exciting in its own right.
Learning to code isn’t easy either, but the learning curve isn’t quite the same as the guitar. With a few hours of exposition and the acquisition of a few simple skills (calling functions, using variables, loops, etc.), an entire computational universe opens up to the learner. With the right curriculum and environment, the student can quickly use these skills to make programs that express their creativity.
I Did That?
The greatest joy in programming is the feeling of surprise when the code you wrote exceeds your expectations: “This worked?” “I did that?”. If a new programmer is really on the right track, the immediate followup to “I did that?” is “Well wait till you see what I do next”. One can very quickly, out of seemingly nowhere, discover a large jump in their capabilities. The ensuing sense of empowerment seems to universally lead to a sense of joy, pride, and satisfaction that’s hard to replicate elsewhere.
Importantly for our discussion here, thoughts of career opportunity and monetary reward are absent from the most exciting parts of the learning experience. That’s not to say that career opportunities and monetary reward aren’t important, but those aren’t the only reasons it’s worthwhile to try programming. When encouraging students to learn to code, let’s focus on the intrinsic joy they’ll discover on their journey, as that joy isn’t going anywhere.