Derek Sivers

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 2020.

Learn plain JavaScript

First, it’s important to learn plain JavaScript.

Don’t depend on a 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 JavaScript 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.

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 books and articles. Learning sticks better when coming through different senses.

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 React! 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: