20+ resources to read or watch to become an advanced JavaScript developer

04 May 2020
javascript

Photo by freddie marriage on Unsplash

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 get better at JavaScript, you need to deeply understand its foundations, how it works under the hood. That can be a daunting task. But don’t worry, I got your back! I read and watched a lot of resources to get better at JavaScript, and I want to share that with you today.

The 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.
  • Coercion: 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 one of her posts: Understanding This, Bind, Call, and Apply in JavaScript.
  • Promises and async/await: ES2015 made JavaScript developers’ life more comfortable by bringing promises which allow 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.
  • Modules: 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.

Courses

There’s a lot of resources when it comes to learning JavaScript as you saw it 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!

Join the newsletter and read an exclusive post!

You'll get updates when I release new content, tips and tricks to improve your workflow and more! Ready to take your front-end skills to the next level? 🚀

No spams. Unsubscribe at any time.

Powered by Buttondown.

© 2020 Thomas Lombart