The Internet is abuzz with the news that President Obama is calling on every American to learn how to code. And while I think it's a good idea for everyone to have a basic grasp of computer technology and a basic understanding of the role computer programmers play in the world, I have some very specific thoughts about whether or not everyone knowing how to code is really a good idea.
In short, it's not.
We as humans have evolved out of the need for everyone to know how to do everything. Specialization and divison of labor is one of the greatest accomplishments of the human race. It allows each of us to focus on doing what we love doing, and allows others to do the same. Some people (like me!) love programming, but the majority of the world probably finds what we do to be tedious and boring.
Think of it this way:
I own a truck. I like my truck. But when my truck breaks, my first thought isn't "I should learn to be a mechanic." I google the problem and see if it's an easy fix, but if it's not, I take it to a mechanic.
Sometimes I get sick. When I get sick, my first thought isn't "I should learn to be a doctor." I google the problem and see if there's any information. If not, I go to a doctor.
If my plumbing breaks, or I have an electrical problem, I don't suddenly decide I need to be a plumber or electrician. I go online and see if it's an easy problem. If not, I hire someone who specializes in those things.
There are people out there who enjoy working on cars as much as I enjoy writing code. I know - I've met many of them. To them, spending a weekend in the garage trying to wedge a V8 into a Mazda RX-7 sounds fun and challenging. That's not my idea of a good weekend, though.
I love programming. I love it so much I do it all day and then go home and do it some more for fun. There's nothing like the feeling of running your code and seeing it do exactly what you want it to do, or the sense of victory you get from crawling through code for hours to find the one problem. Programming is great fun for me, and I'm blessed that I get paid to do it.
But programming is not for everyone. This idea that everyone should "know how to code" belittles both programmers (by insinuating that one can "learn to code" in a few days) and other career fields that, apparently, are not as important for every American to learn how to do.
Knowing how to code will not make the average person's life any better. Everyday people would be much better served by learning to work better with the machines that surround them. How to troubleshoot common computer problems, how to perform routine computer maintenance, how to evaluate online sources and use computers to research problems they have in other areas of their lives. All of these would be infinitely more helpful to the average person than this nebulous idea that we should all "learn to code."
To put it in car terms, people would be better off knowing the computer equivalent of how to change the oil, how to check and fill the air in the tires, change the wiper blades, and when to call a specialist. They don't need to build their own engine or learn about the intricacies of fuel injection.
In short, do what makes you happy. You should learn to code if it interests you.
Now, that having been said, if you do decide you want to learn how to program a computer, there has never been a better time. Programming is now easier to begin than ever before and, if you decide you really like it, the demand for talented computer programmers has never been greater. There are plenty of online resources for the aspiring programmer; here are some good resources to get you started.