Answer by Ben Werdmuller von Elgg:
It's important to understand the difference between "learning to code" and "being a coder".
- I know how to do some math. I am not a mathematician.
- I know how to drive. I am not a professional driver.
- I know how an engine works. I am not a professional mechanic.
- I can cook. I am not a professional chef.
- I can unclog a toilet and hook up a sink. I am not a plumber.
In this context, yes, I think everyone should learn to code.
Sure, you can get away without math, but you're more likely to be ripped off. You can get away without knowing how to drive yourself, but it limits your transport options. You can get away without understanding your car, but you'll spend a fortune on mechanics (and get ripped off). You can avoid learning how to cook, but you'll spend more on food, eat worse and probably get fat. If you can't do basic plumbing, you're at the mercy of the people who can.
I'll repeat that again, in the context of computing: if you can't do basic coding, you're at the mercy of the people who can.
That's meaningless in a world where computers are boxes that sit under TVs in bedrooms and maybe perform a few limited tasks and play games. But that's not the world we're living in. Computers are everywhere, and you're using them hundreds of times a day without even realizing it. More and more, the people who design those computers are getting to dictate how you live your life.
Not everyone should be a professional coder. Your skills are important, and nobody's suggesting that being an engineer is more glorious than being a teacher or an investment banker or a farmer. But being able to bend the machines all around us to your will just a little bit more? That gives you an edge. That gives you greater freedom.
Or, let's put it this way. You know the demographics of software engineers; they're getting better, but they're pretty narrow. And you also know how software design is influencing virtually every part of our lives. Software's influence is only going to get broader, deeper, and more integrated. Do you really want to give that narrow demographic the monopoly on laying the scaffolding for the 21st century?