I actually do think people should learn to code, at least a little — just as you learn a little chemistry, biology and math in school. Learning how to program is imho easier than those things, but then I have a natural ability to program, so what do I know. 🙂
But I don’t like the way people at code.org are pitching it. And I don’t like who is doing the pitching, and who isn’t. Out of the 83 people they quote, I doubt if many of them have written code recently, and most of them have never done it, and have no idea what they’re talking about.
If I were encouraging young people to learn to play basketball, at least I would have had the experience of playing a little myself when I was younger, and having watched a lot of it recently. I’m in awe of basketball players. How fast they charge at the basket with such reckless abandon for their own safety. They fall on hard wood at high speeed. That must hurt! But they get right up and play as if nothing happened. But there are plenty of basketball players to talk about basketball. So why aren’t there very many programmers who can talk about coding? If I were a young person looking at this, I’d wonder what was up with that. They’re telling me what a wonderful career it is. Where are the people who do it, and what do they have to say?
Which brings me to the second problem I have with the way they pitch it.
Suppose I said you should learn to play basketball because you can make a lot of money doing it. I wonder how Chris Bosh would feel about that. Or if I said you should learn to create music for the same reason? I bet will.i.am would have a problem with that. You don’t learn an art to make money — you learn it because it’s fun and satisfying. Because it’s what you were meant to do. You do it because you like it so much that it’s what you want to do every day of your life. Because you want to get really good at it. To perfect your art, and achieve a greater goal. Imagine telling young people they should learn to do something because “To compete in a global market, our students need high quality STEM education including computer science skills such as coding.” Okay. I’d run away from that as fast as I can.
- I like what Bill Gates said: “Learning to write programs stretches your mind, and helps you think better, creates a way of thinking about things that I think is helpful in all domains.” It’s very true, and a good argument for students in all disciplines learning at least a little programming.
These people don’t themselves know how to do what they want you to do. So what they say makes no sense. It won’t make you rich, but it will make them rich. And if you do it, they won’t listen to you. And even worse, if you do what they want you to do, you’ll be tossed out on the street without any way to earn a living when you turn 35 or 40. Even though you’re still a perfectly good programmer.
It’s a shitty system, and it needs to be fixed. And we have to get these spokespeople who don’t know anytihng about what we do to stop speaking for us. To get out of the way. What we need to do, as programmers, is start helping young people become really good at what we do, so they can do it even if there are a lot of carpetbaggers trying to redefine it. (What’s a carpetbagger? You should study a little history too!)
To be clear, you should learn to code if:
1. You love writing and debugging and refining and documenting and supporting code.
2. You love to see the working result of your labors.
3. It excites you to empower other people (your users and other developers).
4. You have modest financial needs.
5. Don’t mind spending a lot of time working by yourself.
6. Don’t mind being misunderstood.
Primarily you should do it because you love it, because it’s fun — because it’s wonderful to create machines with your mind. Hugely empowering. Emotionally gratifying. Software is math-in-motion. It’s a miracle of the mind. And if you can do it, really well, there’s absolutely nothing like it.
I wrote a piece about programmers in 1997. “Successful programmers know how to ask questions, and they know how to ask the right question. You can’t go forward until that happens. A programmer is a rigorous scientist determined to coax the truth out of the ones and zeros. There’s the beauty.”
BTW, I also think every student should learn to be a journalist and a lawyer and an accountant too. That way you’ll be able to blog with authority. And will know when you’re getting screwed. And keep your taxes down like rich people do. 🙂