Over 20 Resources to Advance Your JavaScript Skills

javascriptMay 04, 2020

JavaScript has never been more used than today. It’s a real asset to get good at it. When discovering JavaScript, you first learn variables, if statements, loops, arrays, objects, functions! Maybe you even know what is this and how to use async/await. But that’s just the tip of the iceberg. There’s more to JavaScript you need to learn.

To better understand JavaScript, you need to deeply understand its foundations and how it works under the hood. That can be a daunting task. But don’t worry, I got your back! I read and watched many resources to get better at JavaScript, and I want to share that with you today.

Topics to learn

To level-up your JavaScript skills, you’ll need to know:

What is JavaScript

Multi-paradigm, dynamically typed, single-threaded, ECMAScript specification. You need to know what makes JS JS. Kyle Simpson explained it in the first chapter of You Don’t Know JS Yet.

How the JavaScript engine works

To run code, you need an engine to run it. Lydia Hallie explained it well in this post about the JavaScript engine. You’ll realize how typing JavaScript can make it more performant for v8.

The dreaded event loop

Did you know that JavaScript executes synchronously? But then how can you make API calls and still not block the page? Introducing the event loop and browser APIs. There are two excellent videos on that: In The Loop from Jake Archibald and What the heck is the event loop anyway from Philip Roberts.

Execution context, hoisting, scopes and closures

You need to know what JavaScript actually does when running a program. For that Tyler Mc Ginnis got your back with an awesome post on execution context, hoisting, scopes and closures.


What actually happens when JavaScript interprets "1" == 1? Hint: coercion. Alexey Samoshkin wrote a guide on JavaScript coercion that’s really interesting!

Prototypes in JavaScript

This is a JavaScript pillar that you can’t escape, so you better learn what it means. I found two useful posts on that: Prototypes in JavaScript from Rupesh Mishra and A Beginner’s Guide to JavaScript’s Prototype from Tyler McGinnis. Hopefully, with these articles, the prototype chain, __proto__ and objects won’t be scary anymore.

This, call, apply and bind

Ah, this. With a misunderstanding of this, you can often get common errors like Cannot read property 'name' of undefined or greet is not a function in your programs. Tania Rascia broke down these concepts for you in her post Understanding This, Bind, Call, and Apply in JavaScript.

Promises and async/await

ES2015 made JavaScript developers’ lives more comfortable by bringing promises that allowed you to write simpler asynchronous code. Learn what they mean by reading What is a Promise? from Eric Elliott or JavaScript Promises for Dummies on Scotch.io. You can also watch a great talk from Wes Bos on Async/Await.


What are ECMAScript modules? Common JS? A module bundler? Find the answers in yet another post from Tyler Mc Ginnis on JavaScript Modules. I also highly recommend that you check out this course on Webpack 4 fundamentals from Sean Larkin.

Functional programming

We already know that JavaScript is a multi-paradigm language. One paradigm supported in JavaScript is functional programming since functions are first-class citizens. Andrea Bertoli made an excellent post on the basics of functional programming. You’ll see the power of composition.


There are many resources for learning JavaScript, as you saw above, and it may be overwhelming. Don’t worry. If you prefer to get a single course, I got your back too:

When you have to learn new concepts, you need to space your learning in time, read or watch different resources and practice a lot. Using this strategy allows you to truly master a topic. That’s why I recommended various posts and courses. Don’t wait and start to get better at JavaScript!

Share this article on Twitter