| > 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? 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. |