| Every time a post like this comes up, I make the following points: - Learning to code does not mean that everyone should work as a programmer, just like learning to read and write does not mean that everyone should end up as a professional writer (or even blogger). - For millennia, human societies have done just fine without the literacy we take for granted today. Rulers could rule without it. And commoners didn't really have time for it. Plus, no one could afford Kindles. - Before mass literacy, the ability to read and write was necessary to be a scholar or historian. Or part of the clergy. If you didn't want to be any of those things, you'd be well-justified in not spending a third of your lifespan (or whatever 12 years is to a pre-industrial-age lifespan) learning how to read and write, nevermind math. - Fast forward to today. Western societies have 95%+ literacy. I don't think I need to enumerate all the ways we benefit from everyone being able to read and write, despite the vast majority of people being bad at writing (if Facebook posts are a loose measurement). I agree with most of what the OP says but am disappointed that she still has a too narrow view about the scope of programming. Writing is, on the surface, the ability to record thoughts on a relatively permanent and highly distributable medium (compared to oral storytelling). It's a nice skill to have if you like being able to disseminate your ideas without literally having to tell it to each person, in person. But literacy's power goes deeper than that. A poet 500 years ago is able to write about love, and today, those of us who are literate can know his thoughts and perspectives, even though we don't know his (physical) voice or even his exact identity, nevermind his place in society. The OP is completely right that people underestimate how hard it is for beginners to learn how to code. I've always thought that once a novice learns how to use a for-loop, they'll have enough of the power of programming to make their lives better. I still think that way, though I'm happy if that epiphany is reached after 10 weeks. A for-loop turns out not to be that simple when you really think about what it represents, and there's a lack of easy real-life analogies for defining a stored block of code to be evaluated out of your control. But that's why programming is so much more than what the OP seems to believe. Someone who can write well can communicate their ideas to a yet-unknown human audience. Someone who can program can communicate their ideas to a machine with absolutely no brains of its own, but with limitless mechanical power. How is that not a universally beneficial skill? |
How is that not a universally beneficial skill?
This is a great point. Programming machines is certainly analogous to communicating ideas to people. That said, machines and people differ in some very meaningful ways. As a result, it's not clear that learning to communicate with machines is of comparable importance to learning to communicate with people.
For example, a small number of people can create an application that provides a service used by billions (Facebook, Google, etc). This unprecedented degree of scalability and leverage is certainly a boon to the case that programming is important. However, it's simultaneously a point against everyone learning to code.
Why? Because when a small number of people can deploy solutions to the rest of humanity, the marginal utility of other people chipping in goes down. If 1% of the population can grow food for the other 99%, it frees up all of us to do other things. It's not all that helpful to spend your time learning to grow food if you can buy perfectly good food that someone else grew. And it's not all that helpful to learn to write a for-loop if you download apps written by other people.
I wholeheartedly agree, programming is a universally beneficial skill. Nobody is worse off for knowing how to code. But there are opportunity costs as well. An hour/month/year spent learning to code is an hour/month/year spent NOT learning X, where X is any number of valuable and applicable skills and habits that might benefit our society more than mass computer literacy.