There are bajillions of resources on the internet for learning JavaScript. Which is awesome.

But I know too much choice can be demotivating. You may not want to spend a week sorting through all these resources before you even begin to learn.

That's why I dug deep into the internet and found the resources that are recommended the most. These are videos, books, and interactive courses that other beginners just like you have taken and recommended.

Whether you are completely new to programming or you have experience with other languages, these resources will help you get to the next level the fastest:

Interactive Courses

Interactive courses are awesome because you get to dive in and start programming without installing any software on your computer.

You also get that feeling of satisfaction as you make quick progress through the steps and see the screen light up indicating that you did something right.

Interactive courses are especially good for total beginners. Developers coming from other languages might learn more quickly with videos & books because they don't need as much repetition and practice.

FCC ... tasks you with projects in the best way I've come across — JavaScript beginner

FreeCodeCamp is a great place to start. It has a nice organization that allows you to jump around to different topics or just go straight through.

Some beginners have said they get stuck on FCC. If that happens to you then switch to another resource. A book would be ideal. Once you've read a few concepts from your book and slept on the ideas, you might be able to jump right back into the course.

One FCC gotcha: They have a section on jQuery, which I recommend skipping. jQuery is still a very popular library, but in my personal experience I see it only being used by less skilled, lower-paid developers. There are better options when you are ready to learn something new (like React).

I feel like I learned a lot practicing on problems that Code School offered — JavaScript beginner

Code School mixes videos and interactive coding. You watch a video, then practice what you learned.

Code School doesn't give you as much free content as the other resources, but I still recommend checking it out. None of the resources on this list are expensive when compared against the money you can make as a paid software engineer. If you can afford it, pick whichever resource resonates the most with you regardless of the price.

The best part is that you can actually see your progress. I remember hardly being able to solve any level 6 problem, but now I can usually write a solution for those in a couple minutes — JavaScript beginner

Codewars is really fun, but it is not a good place to start. They won't let you start the course until you can answer a mini JavaScript question.

I suggest reading a book and doing a course (or part of a course) before checking out Codewars.

One of the best features: after you solve a puzzle you get to see all the other ways it could be solved. There are always other solutions that you can learn from.

Video Series

Videos are a great way to learn "passively." Hit play, sit back, and absorb that knowledge.

The only Javascript course I’ve found that starts out with es6 instead of teaching the old ways and then adding es6 as an addendum — JavaScript beginner

The quote above brings up a good point - many courses will teach "ES5" which is an older version of JavaScript. That is perfectly fine because the newer versions of JavaScript are exactly the same except with new features added.

Most people learn ES5 and then look up the new features and learn them afterwards. That's a solid way to go, but you might want to check out this course and learn everything at once instead.

It won't teach you everything, but it will give you what you need to understand JavaScript at a foundational level and make any other course you take make more sense — JavaScript beginner

This is a paid course, but it goes on sale all the time. Watch out for sales and coupon codes.

If you learn best from videos, this may be the place to start.

Books

Books are essential to learning a new language because they tend to be more all-encompassing than interactive or video courses.

Books pair well courses - the course will give you muscle memory and practice, and the book will fill in the gaps.

Many developers rave about this book and say it's great for beginners. Others say it teaches way too much too fast. I recommend you read this book in tandem while doing a course.

Some complain that this book starts a bit slow. If you're bored, skip to Chapter 5 and remember to go back if you get lost.

This book is free and open source. You can purchase a physical copy, but you might want to read online as well so you can edit and run the code samples. Tweaking the examples to see what happens is a great way to reinforce what you are learning.

I only read javascript for web dev and I can honestly say it was a wonderful book for learning JS from scratch. I say go for it — JavaScript beginner

This is the only book on this list that is a traditional, paid, paperback (or ebook). If you want to lay back on the couch while learning JS then this may be the way to go. It gets recommended almost as much as Eloquent JavaScript.

This is not actually a book - it is on the web only. I listed it here because it is text-only (no videos or interactivity).

Get used to this site because as you'll see below, MDN is the go-to resource for the JavaScript language and browser APIs.

This resource also teaches HTML and CSS, which you'll need to learn before you can move on to bigger and better things.

This book is free and open source. You can read online or download the pdf/epub.

This book reads a bit like a reference, with one section on each concept. There are some nice exercises validating your understanding as you go through - you'll want to use the online version to interact with these.

In order to understand it, you should already know object-oriented programming.

Free to read online, or buy the offline version. This book is written by Dr. Axel Rauschmayer, who is a great resource for learning about new JavaScript language features as they come out (and before they come out).

I've heard mixed reviews of Javascript the good parts. Ex. Outdated and some flaws in his opinionated approach — JavaScript beginner

This book gets recommended a lot - but keep in mind that it was written in 2008. The author is a well known expert in the JavaScript community named Douglas Crockford.

I would recommend that you get this book, but perhaps make it the 2nd or 3rd book you read, not the first. It doesn't teach you about JavaScript in general so much as it teaches you a particular style of writing and common pitfalls to avoid.

Reference

MDN is definitely my gold standard of reliable and up-to-date internet resource on web dev — A web developer

Mozilla Developer Network (MDN) is the best reference for JavaScript.

I myself use MDN several times a week. It's the best when you want a thorough and accurate description of how a particular feature works.

When I google a JavaScript question, I often add "mdn" so that I'll see what MDN has to offer first.

For instance instead of searching for "arrow functions", try "mdn arrow functions".

Community

It's dangerous to go alone!

Talking about JavaScript with other people (both on-line and off) is fun. It also levels up your skills without you even realizing it.

It's great to chat with people that are at your level, above it, or below it. Either way you'll learn.

Reddit

Reddit could be the most useful resource on this list. There many many subreddits which help for learning JavaScript and web development.

The best part - unlike these other resources which are mostly read-only, on reddit you can post a question! From what I've seen, most questions get answered. Just don't paste in a massive chunk of code and ask "why doesn't this work"?

Here are the subreddits that I think you would find the most useful, in order of usefulness:

IRC

There are people chatting about JavaScript, live on IRC, 24 hours a day. They are often willing to answer your questions! Watching other people ask questions and discuss them can also be enlightening.

You can chat right now by going to webchat.freenode.net . Choose a nickname and enter ##javascript as the channel.

In-Person Meetups

Computer work can be isolating, so get that in-person touch whenever you can. I just google for "JavaScript meetups". Google probably creepily knows your location already and will give you exactly what you want. 👀

It's Worth It

I'm a JavaScript developer, and I have the best job in the world. My job is low stress, high pay, and I work 4 days a week from anywhere in the world.

JavaScript skills are in demand. That means employers are out there actively seeking employees and they can't find enough people.

You don't need a degree. You just need the skills and an example of your work. So get started!

And Then Learn React

Usually I write about intermediate/advanced topics in web development like Webpack and React. I suggest learning React right after you learn HTML/CSS/JavaScript.