Derek Sivers

Programmer, writer, avid student of life. I make useful things, and share what I learn.

Articles → How to learn JavaScript

Since I’ve mentioned that I recently learned JavaScript, people have asked me how and what I recommend. So here’s my experience and best advice for 2016.

Learn plain JavaScript

First, it’s important to learn plain JavaScript.

Don’t depend on jQuery, CoffeeScript, or any other library of shortcuts. JavaScript will be around for many years, while libraries and frameworks come and go every year.

How to begin

Don’t just learn from little bits of tutorials, tips, or tricks online. Instead, you want a real foundation and solid understanding. Then all your future learning will be so much faster.

Start with the book: “Head First HTML5 Programming”.

It’s a great introduction with a fun teaching style, which is important to get you familiar with something so new. Just read through it quickly in a couple days, before your deeper learning begins. (You must get the paper book or PDF, because the detailed pictures are necessary.)

Do Free Code Camp.

Someone who had 600 JavaScript learners said Free Code Camp had the best results. Do it at the same time as you’re reading the books. Learning sticks better when coming through different senses.

Now get deep

Simultaneously begin the huge but awesome book: “Professional JavaScript for Web Developers, 3rd Edition - by Nicholas Zakas”.

It’s the ultimate tutorial. It takes the time to explain everything thoroughly, and covers everything. By the time you’re done with this one book, you’ll know as much as most people who call themselves JavaScript programmers.

Make it stick

I highly recommend you write down every new thing you learn, ideally into a flashcard program, like this. It’s a lot to digest, so you’ll have to remind yourself of what you’ve learned, or you’ll immediately forget.

Reinforce it

Afterwards, if you want to solidify what you’ve learned, quickly read through a few more books like these:

These books will go faster, now that you’re fluent. Play around with the examples. There will be no huge surprises. You’re just enhancing what you know.

Avoid the shortcuts

When solving a problem, everyone will point you to some pre-made solution. “Use jQuery! Use Backbone! Use this library and save yourself some typing!”

But no! Not yet! Do it the hard way. Solve everything yourself with plain JavaScript. It’s the best way to learn.

What next?

If you had a web app in mind, start building it now. (OK, you can use shortcuts.)

If you had an iPhone or Android app in mind, learn React Native.

If you want a good-paying job, you can get hired almost anywhere. Since you know the real JavaScript foundations more than most people, you’re very valuable. You can quickly learn whatever framework they’re using.

Any other suggestions? What worked for you?

Please share any other suggestions or experiences, here: