Personal website of Martin Tournoij (“arp242”); writing about programming (CV) and various other things.

Working on GoatCounter and moreGitHub Sponsors.

Contact at or GitHub.

This page's author

Discussions: Lobsters.

Teaching kids the basics of computer programming is a good idea for the same reason that teaching things such as maths and physics are a good idea: it teaches deeper truths.

Compare it to science classes; lots of people forgot stuff like F = ma, muckery with Huygens’ pendulums, and so forth. And that’s okay because what they don’t forget are the deeper lessons: that the world operates according to deterministic natural laws, that these laws can be discovered through careful observations and experiments, and that stuff doesn’t happen ‘because magic’.

These deeper lessons may sound obvious, but for most of human history people had different ideas about that. I suspect that science and math lessons affect the daily lives of people quite a lot, even though many don’t seem to realize it. It helps teach you how to reason about the world and reality. It teaches you how to think.

The practical benefits of programming are often touted, but it seems to me that primary education shouldn’t be only about teaching marketable and “useful” knowledge. It’s about teaching kids a broad worldview, as well as exposing them to a lot of different things so they can discover what they like and are good at.

Even with just a few months of programming classes people will have a much better grasp of how a computer “thinks”, which is helpful in daily life, as many people use a computer daily.

If some discover they like programming and continue to work with it – either as a career or a hobby – then that’s great, too. But it shouldn’t be the focus. Teaching should be about teaching to think first, and teaching to work second.