In a recent Guardian article
, Ben Tarnoff claims that the tech industry’s push to teach coding is driven mainly by the capitalist class trying to cut programmer wages. He makes some leaps to get there, and the logic doesn’t quite hold up.
To be fair, I would at least agree with Tarnoff that most of the arguments thrown around for teaching kids how to code revolve around economic success. Appeals to kids and parents about the value of programming usually cite the median US programmer salary of $80K, which is almost three times the country’s median income. The economic argument is powerful, and will likely hold true for the near term future. The demise of programming as a profession in the US has been predicted for decades, but the economic value of the profession has only grown over time. The one caveat is there are currently more winner-take-all effects. Entry-level salaries at companies like Google or Facebook are 2-3x those at most other firms.
However, Tarnoff goes further than overfocusing on economic arguments for teaching programming:
Contrary to public perception, the economy doesn’t actually need that many more programmers. As a result, teaching millions of kids to code won’t make them all middle-class. Rather, it will proletarianize the profession by flooding the market and forcing wages down – and that’s precisely the point.
He would be right, if every kid in a coding class was on track to being a professional programmer, but that’s not the case. Substituing writing for programming makes the issue clear:
Contrary to public perception, the economy doesn’t need that many more writers. As a result, teaching millions of kids to write won’t make them all middle-class. Rather, it will proletarianize the profession by flooding the market and forcing wages down – and that’s precisely the point.
Granted, writing and programming are two very different skillsets - someone could live a functional life knowing how to write but not code. The error comes from assuming that we’re teaching programming as a vocational goal. We teach kids to write without expecting them all to become professional writers and we should have similar expectations when teaching them to program computers.
As my old colleague Raghu Betina has eloquently expressed in a TEDx talk
, programming as a skill today shares many similarities to writing as a skill several centuries ago. Literacy used to be the domain of an elite caste, which meant that most people were not able to participate in the forces that were shaping society at the time. Widespread literacy became key to creating a more equal, democratic society. In a world that’s still getting eaten by software
, programmers are now the elite scribes that shape society, often without input from the rest of us. Kids need to learn how to program, not to get good jobs, but to fully participate in the decisions required of a democratic society.
Code is infused into every aspect of our lives, from the way our food is grown and processed, to the vehicles we use for transportation and the ways we communicate with everyone in our lives. If kids grow up without a basic understanding of what programming is
, then they'll find it opaque, magical and difficult to reason about. If they're not able to work with code, even at the level of building toy projects, our kids will become cut off from the larger world of creation
and be relegated to consumption
. Even once they grow up and forget the technical aspects of coding, being able to communicate intelligently with professional developers will be critical to career success whether our kids become lawyers, doctors or teachers. In fact, understanding how code solves problems at a high level will allow non-programmers to design new tasks for programmers and grow the job market. Programming jobs only get created by people with some base level of computational literacy. And abstracting even further, we need our citizens to be computational literate so that future policy makers and even future voters will be able to make informed decisions about how a society that runs on code (example: artificial intelligence, autonomous transportation) should function. Tarnoff touches on these ideas towards the end of the article, but I think they're the focus of why kids should be introduced to programming fundamentals at an early age.
I don't think teaching kids how to code is a conspiracy to flood the market with programmers and drive down wages. It's about introducing kids to a new way of thinking and interacting with the world that will practically enrich their lives regardless of the ultimate career paths they choose.