Should You Learn To Code?

I'm launching a product today. I forgot how exciting it is to launch something that I made, from concept to launch. In this case, I didn't just define the product, I also wrote a good amount of the code. I haven't written code in five years, and boy did it feel good to dive back in. I hit a bunch of snags along the way. I'm learning a new language, a new environment, and a lot has changed on the web in five years. But I don't care. Nothing feels better than being able to say, "I made this."

I often hear product managers and designers ask, "should I learn to code?" I don't think you have to write code to be a good product manager or designer today. But I think in the future this might change. I also think that regardless of whether or not you need it, everyone should learn the basics. Here's why:

It demystifies technology. When you grasp how things work, they stop feeling like magic. Sure magic is fun, but it's also the unknown. The unknown is scary. So many people are afraid of technology because they don't know how it works. Looking under the hood can change that. It doesn't take much to get started and a little bit of knowledge goes a long way. It will change the way you view the world.

It opens your world to new possibilities. When you know how some things work, you start to wonder how other things work. Then you start to wonder why certain things don't work. And that's when you start to think like a maker. Why doesn't it work this way? It could, if it only did this, this, and this. And then before you know it, you are off to making that thing you wanted.

Making things is empowering. There really is nothing more gratifying than being able to look at something and say, "I made that." When you know you can make things, it's reassuring. You know that if you absolutely have to, you can always "roll your own." Most of the time you won't need to. Other times you might want to, but decide it's not worth the effort. And occasionally, you'll get the itch and actually build something. But every time, you'll be empowered knowing that you could make that if you absolutely needed to.

You gain credibility. This is particularly true if you work in the internet / software industry, but I think it's true for everyone. If you work with engineers and they know you can write code, suddenly you are in the secret club. If you work with business people who can't code and you can, suddenly you are viewed as an engineer, but one they can talk to.

It might just be the arithmetic of tomorrow. We grew up with reading, writing, and arithmetic as our elementary school basics. Reading and writing are clearly critical skills. And no, I'm not going to argue that we don't need arithmetic, but with computers  and calculators, we don't see "must be able to add, subtract, multiple, and divide" on job descriptions these days. But I suspect it won't be long before job descriptions ask for basic coding skills, even for non-engineering jobs.

It's fun. It really is. I know I'm nerdy. But most people I know like it. I went to college in Silicon Valley and we were required to take an engineering class as part of our general requirements. Almost everyone I knew took a programming class of some sort. It was the late 90s, everyone was getting rich. Coding was the cool thing to do. But here's my point. Everyone liked it, even the English majors. In fact, one English major I know, went on to be an early member of LinkedIn's team. Yeah, i think he's glad he learned to code.

So if you ask me, "Should I learn to code?", my answer will always be yes. If you are a startup founder and you are responsible for the business side, I'd still say learn the basics. If you need a technical cofounder, I'd say stop looking, and start learning. If you are a designer, start with HTML and CSS, then move on to Javascript. Build your own UIs. If you are a product manager, start small, but build a product from beginning to end. It will be slow going, but you'll learn A LOT about the process. Your engineers will respect you and you'll have a whole new appreciation for their work, especially for why it's impossible to give accurate estimates.

So stop reading and get coding. Here are a few resources to get you started:

  • Code Year - Sign up for Code Year to start receiving a new interactive programming lesson every Monday. You'll be building apps and websites before you know it!
  • Code Academy - Codecademy is the easiest way to learn how to code. It's interactive, fun, and you can do it with your friends.
  • Khan Academy - Watch. Practice. Learn almost anything for free.
  • Stack Overflow - When you run into problems and you will, ask for help. Or search for your question here. Odds are someone else has had the same problem and has already figured it out.

On that last note, programming can sometimes feel like two steps forward and one step back. It can get frustrating, but don't give up. Ask for help. With sites like Stack Overflow, everyone has someone they can turn to for help. Don't try to do it on your own. Learn from those who have been there before.

Now go build something. Then leave a comment and tell me how it went. Or if you already code, share  what it's done for you. Add your own reasons for why everyone should learn to code.