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.
Stephen Girolami, VP of Engineering, AfterCollege says
Our Marketing Intern is teaching herself programming using http://www.codecademy.com/. +1 for code academy. Even Bloomberg recently announced one of his 2012 new years resolutions was to learn programming using Code Academy.
ttorres says
Good for Mayor Bloomberg and your marketing intern! I’ve heard great things about Code Academy.
Susan Barrett-Kelly says
OK…I’m inspired. Thanks for the listing of resources. Otherwise, I’d have no idea where to begin.
ttorres says
Good to hear it, Susan! My goal is not to just spread knowledge, but to help build know-how. Knowledge is useful, but if you can’t apply it, it doesn’t do you much good. I’d love to hear how your coding adventures go.
Carlton Smith says
I learned to code for all the reasons you mention…and yes, it is at times very frustrating but at the same time rewarding.
Peter O'Connor says
Having migrated from coding to product management myself, I think your analysis is spot on, especially about removing the magic. Regrettably time pressure seldom makes ‘code it yourself’ a viable option.
Will Fredregil says
Teresa –
Great article! As someone who started out as a programmer, and then over time let go of those programming skills as my duties became more managerial in nature, I often had ideas that I couldn’t bring to life due to my waning development skills. So I am diving back in – and it really does feel great!
Lastly, think about the Winklevoss brothers…what if they had just coded up that initial Harvard Connections site rather than outsourcing it to Mr. Zuckerberg….
Jimar Garcia says
Very nice article–I started my career as a software developer, moved onto consulting, and into product management. Being able to code and having professional development experience really does help in the ways you mention above.
In addition to your list, you can be more effective in developing realistic specifications if you know what it takes to build it. You can short-circuit many discussions and lost time when you know something is just way to complex. Also, you can challenge your development team (call BS) when you need to play that card too.
Cheers!
ttorres says
Jimar, I absolutely agree. Having technical skills means you can help turn a “we can’t do this” into “can we do it this way?”. It helps to be able to participate in the discussions of what is possible.
Sharon Bautista says
For any Chicago-based women who want to learn how to code, check out the Chicago Women Developers Meetup group. Their offerings are pretty fantastic.
http://www.meetup.com/WomanDevelopers/
Ryan Spahn says
Congrats on launching and coding your product!
I started my first web start-up in 2007 and I had zero coding skills. It took a very long time to get the product released. Since then I have gained invaluable coding skills, yet I have not forgotten the struggles I had in 2007. Those struggles have prompted and inspired CodePupil
We actually pitched this concept (which will be compared to Codecademy) at StartUp Weekend in April 2011, as those who attend these events have ideas, but most lack the skill to make their product a reality.
Well good luck with your product and ventures! Though I do not see a link to your product or did I miss it?
cheers,
ryan
ttorres says
Hi Ryan,
You didn’t miss the link. It’s a limited release. But I’ll be blogging about it in a week or two. So more details will be coming out soon. Want to get the kinks out before releasing to the world.
Best of luck with your project. It sounds great!
Teresa
Diane says
Good article, thanks for the resources.
Not too long ago, I saw a posting for a product manager position (for a SaaS company that I forget) that instruct you to forgo the resume and instead provide a custom iOS application illustrating your work.
Like several others, my career evolved from engineer (CS & EE) to product manager. Even just being out of engineering for 5 years, technology has lapped me. And for all the points you mentioned, it’s time for a refresher course.
Ana says
Hi Teresa,
I am a Product Manager with no technical skills and have always felt there was something missing in my array of knowledge. Your article came in handy as I started to look for Basic coding courses myself. Great and interesting article
truman says
Typo:
“Stach Overflow” should be “Stack Overflow”
ttorres says
Thanks, fixed.