Roadmap for learning the JavaScript language

JavaScript versions

If you’re new to JavaScript programming, all the buzzwords in the scene can make your head spin: ES6, Node.js, TypeScript, Angular, React, Aurelia. You’re wondering how are you going to tackle all of these technologies - even counting the number of different frameworks out there seems overwhelming.

But, before you dive deeper into any framework, there is one building block that you should have under your belt. And that is the JavaScript language itself. There are many features in the language, but luckily you don't have to learn all of them - you can focus on important parts.

Here's a roadmap for learning the JavaScript language.

Know your JavaScript versions

JavaScript is a strange language in the sense that the operating environment can change from one user to another. Web pages leveraging JS can be run on an iPad Pro with the latest iOS update installed or it can be run on an old back office Dell that's still running Windows XP. As the specification has evolved, browsers have implemented the different versions of the language to a varying degree. The situation is much better than what is used to be, but the support will never be 100% uniform across browsers - there's always one vendor to implement a new language feature first.

JavaScript is also run on varying environments from servers to embedded devices. On servers, you, as the developer, have more say on which version of JavaScript will be supported, but there are still cases where you don't have complete control. Maybe you're fiddling with Raspberry PI or trying out JavaScript for Automation (JXA) - you have to use what's available on the system. And chances are it will not be the latest Chrome V8.

It is worth knowing the differences between various JavaScript versions so you know what features you've got. You'll also have the "spatial awareness" of whether a language feature is available and safe to use in all environments or if it's just incubating in one specific vendor's implementation.

This roadmap will cover important language features starting from ES3, and then advancing to ES5 and ES2015.


Start with the very basics of JavaScript - the ES3. Released in 1999, this was what JavaScript meant to most people back when the web became more prevalent. It's a strange, error-prone and lacking language - no wonder it got a bad rap among developers. Fortunately, things have moved forward, and the language is in better shape today. This version is still the perfect starting point for learning JavaScript.

All versions of JavaScript versions are backward compatible, so picking up the versions in incremental batches is a wise move.

There are some features in ES3 that are best left alone, and you should focus your efforts on the better parts. A good resource for learning the valuable parts of ES3 is Douglas Crockford's JavaScript: The Good Parts. It's an easy read and will get you up and running quickly. Take the chapter on inheritance with a grain of salt and skip over the railroad diagrams if you're not aiming to be a language specifier - otherwise, it's solid gold.

Focus your efforts on the following concepts. You should read the book for the best learning experience, but you can check the links for similar articles on the Mozilla Developer Network (MDN).

Next up after ES3 would be ES4, but the specification was never finished.


The next version took a while to complete. Released in 2009, the ES5 version aimed to fix shortcomings in security and to prevent using some of the more obscure language features. It didn't have many new language constructs but augmented the standard library in many ways.

Focus your efforts on the following concepts. At this point, the links to articles in MDN suit us well.

Go through these briefly, so you know they exist when you need to dive in deeper:

ES6 / ECMAScript 2015

ECMAScript 2015 (also known as ES6, or ES2015) released in 2015 contained a fresh new set of language features that brought the language to another level. The improvements were so vast that even the loudest critic had to reconsider JavaScript as a valid option for modern web development.

Focus your efforts on:

And after these are under your belt, continue to:

ES Next generation

At this point, you've got the language under wraps. What comes after ES6 is still in development. You should keep an eye on it, but let it finalize before diving into it deeper. One of the most anticipated features is async/await that helps yielding Promises in a more elegant way. What else is in there, we will have to wait and see.

Foundation for learning frameworks

It's important to know the foundations of JavaScript the language when learning the latest web frameworks. The language versions are backward compatible and are suitable for familiarizing in incremental steps. Not all environments support the latest version of the language. Therefore, it's good to know which features you've got.

Related articles

Node doesn't wait for your database call to finish?

Node doesn't wait for your database call to finish?

Learn how asynchronous calls work and make your app run as you intended. Get short email course on asynchronicity and two chapters from Finish Your Node App.

Get Two Book Chapters