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.
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 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.
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 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:
- Advanced JavaScript from Tyler Mc Ginnis: I used many resources from him previously. That's because he has a whole course on that. It'll make you, for sure, a more proficient JavaScript developer.
- Advanced JavaScript Concepts from Andrei Neagoie: he has released many popular courses before this one. You'll find anything you need to know to become an advanced JS developer.
- JavaScript Visualized from Lydia Hallie: she wrote many posts on JavaScript concepts with remarkable visual explanations. I highly recommend it.
- JavaScript: the Hard Parts from Will Sentance. This great workshop will make the hard parts of JavaScript easier for you. To go further, you can watch the following two workshops from Will too: JavaScript: The Hard Parts of Object-Oriented JavaScript and JavaScript: The New Hard Parts
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!
Top comments (3)
I'd recommend one that covers each of the above: Eloquent JavaScript
Thanks for sharing
Thank you for this! Saving for future reference. I'm still just learning.