Jeff Atwood, a programmer and entrepreneur, is skeptical of anyone who claims that programming is “the new literacy.” (In case you’ve never heard anyone make this claim, google this phrase.)
If someone tells you “coding is the new literacy” because “computers are everywhere today,” ask them how fuel injection works. By teaching low-level coding, I worry that we are effectively teaching our children the art of automobile repair. A valuable skill — but if automobile manufacturers and engineers are doing their jobs correctly, one that shouldn’t be much concern for average people, who happily use their cars as tools to get things done without ever needing to worry about rebuilding the transmission or even change the oil.
There’s nothing wrong with basic exposure to computer science. But it should not come at the expense of fundamental skills such as reading, writing and mathematics — and unfortunately today our schools, with limited time, have tons of pressure on them to convey those basics better.
Atwood’s main point is that we are always using tools and machines that work magically, as far as we’re concerned. More people fly on airplanes than they used to — 80% of the US population, or so I’ve heard — but no one is clamoring for flight training to be part of an elementary education. (Though that would be very cool.)
Coding is a mechanical skill, not a linguistic one. Think about where languages come from. They arise naturally from the need people have to communicate with each other. Verbal languages come with all kinds of cultural and historical associations, and they are always changing.
Programming languages, on the other hand, are invented. They don’t evolve naturally the way spoken languages do. They are designed to tell a computer to do certain things and only those things. Teaching kids to code will make them fluent in one or two forms of programming that could easily become obsolete in a few decades. Better to teach them logic and critical thinking — both of which are important skills for a programmer.
Learning to talk to the computer is the easiest part. Computers, for better or worse, do exactly what you tell them to do, every time, in exactly the same way. The people — well . . . you’ll spend the rest of your life figuring that out. And from my perspective, the sooner you start, the better.