Derek Sivers

Should you learn programming? Yes.


When I was 14 years old, my guitar teacher told me something important:

“You need to learn to sing. Because if you don’t, you’re always going to be at the mercy of some asshole singer.”

His point was about self-reliance. If you ever have any ideas, whether for songs or apps, you need to have some basic skills to turn those ideas into reality.

One of the most common things I hear from aspiring entrepreneurs is, “I have this idea for an app or site. But I’m not technical, so I need to find someone who can make it for me.”

I point them to my advice about how to hire a programmer, but most programmers are already busy and expensive.

Imagine if someone said, “I have this idea for a song. But I’m not musical, so I need to find someone who will write, perform, and record it for me.”

You’d probably advise them to just learn enough guitar or piano so they can play their song.

It’s like learning to drive or make dinner. You only need to learn enough so you’re not helpless.

So, yes, you should learn some programming. Basic HTML, CSS, and JavaScript are enough to start.

I recommend Head First HTML and CSS first, then Head First HTML5 Programming. Those are very fun, visual books where you need to see the detailed illustrations, so get the paper book or PDF.

If you prefer a course and community, use Free Code Camp. Ideally, do those books and this course at the same time, to really reinforce what you’re learning.

You could go through those books or courses in a few weeks, and you’d already know as much as half of the people that call themselves web developers.

It’s a really amazing feeling. The mystery is lifted. You’ll look at all websites in a new way. You’ll understand what’s going on behind the scenes. You’ll know how to do it yourself. It’s really empowering. (It’s definitely been the most rewarding thing I’ve ever learned.)

For an inspiring example see Jennifer Dewalt, who learned to code by building 180 websites in 180 days, with no previous experience.

Next, read my advice on learning JavaScript.