Many developers make the mistake of choosing Udemy as their learning platform for JavaScript and Node.js. The platform has a very unreliable business model and already several scandals have broken out through time 😔.
It's important to understand, that when your goal is to succeed in finding a job in the next few months, it's rather problematic to rely on content with highly variable quality, little or not updated for years and sometimes even unethical 😮 (which doesn't mean there isn't good content either).
A rather blatant example of bad training is very often beliefs like "An async function/promise generates a thread in the background 💩 " (a sentence I myself heard in a course from a reputedly "experienced" trainer). Many are used to diminish the impact of these false beliefs.. Yet they have real impacts in production.
Instead, I recommend investing in a Frontend Masters account that will give you access to a set of up-to-date courses with experts who are recognized and qualified in their respective fields (this is all the more necessary if you are aiming for both front and backend).
Some of their courses on Javascript (I invite you to look for yourself at the catalog of the many other courses available) :
- https://frontendmasters.com/courses/getting-started-javascript-v2/
- https://frontendmasters.com/courses/javascript-hard-parts-v2/
- https://frontendmasters.com/courses/functional-js-fundamentals/
When it comes to quality articles on JavaScript, I highly recommend the Axel Rauschmayer Blog.
⚠️ Be careful though, it is often necessary to have established a foundation before being able to appreciate these items.⚠️
Here is a list of articles from his blog that I recommend you read:
- [Beginner] Categorizing values in JavaScript
- [Beginner] Type coercion in JavaScript
- [Beginner] Remainder operator vs. modulo operator (with JavaScript code)
- [Beginner] Synchronous and asynchronous sequential execution of functions
- [Beginner] How do JavaScript’s global variables really work?
- [Beginner] ES2018: Rest/Spread Properties
- [Beginner] Three ways of understanding Promises
- [Beginner] A different way of understanding this in JavaScript
- [Beginner] undefined vs. null revisited
- [Intermediate] Iterables and iterators in ECMAScript 6
- [Intermediate] JavaScript Promise combinators: .all(), .race(), .allSettled()
- [Intermediate] ES6 Generators in depth
Many other articles are available (this is only a small sample of his blog).
I just recently re-explored Jake's blog and frankly I didn't remember him writing so many gems about JavaScript 😲.
- [To know] Don't use functions as callbacks unless they're designed for it
- [To know] Event listeners and garbage collection
- [To know] await vs return vs return await
- [To know] Promises: resolve is not the opposite of reject
- [Intermediate] JavaScript: What is the meaning of this?
- [Intermediate] Arrays, symbols, and realms
- [Intermediate] Async iterators and generators
- [Intermediate] Iterators gonna iterate
- [Advanced] Streaming template literals
👀 I recommend you to read these more front-end oriented articles if you are also interested in the subject.
Also an excellent developer and popularizer of concepts and features around the Web (JavaScript and more). I therefore strongly recommend that you read his blog!
- [To know] My most useful RegExp trick
- [Intermediate] Deep-copying in JavaScript
- [Advanced] Streams for reactive programming
- [Beginner] JavaScript Promises: An introduction
- [Beginner] JavaScript Visualized: the JavaScript Engine
- [Beginner] JavaScript Visualized: Promises & Async/Await
- [Beginner] JavaScript Visualized: Prototypal Inheritance
- [Beginner] JavaScript Visualized: Generators and Iterators
- [Beginner] JavaScript Visualized: Hoisting
- [To know] Javascript and the next decade of data programming
- [To know] JS classes are not “just syntactic sugar”
- [To know] 10 Awesome Github Repos Every Web Developer Should Know
- [To know] Sometimes undefined is defined
- [To know] +-0, NaN and Object.is in JavaScript
- [To know] JSON.stringify takes toJSON methods into consideration
- [To know] What is the difference between parseInt() and Number()?
- [To know] 3 Ways to Clone Objects in JavaScript
- [To know] When "Zoë" !== "Zoë". Or why you need to normalize Unicode strings
- [To know] Property order is predictable in JavaScript objects since ES2015
- [To know] Quick tip: reusable Array search predicates
- [To know] Javascript and the next decade of data programming
- [Intermediate] What I Talk About When I Talk About Sorting: Untangling Array#sort
- [Intermediate] This in JavaScript
- [Intermediate] The global
Reflect
object, its use cases and things to watch out for - [Intermediate] Metaprogramming in ES6: Symbols and why they're awesome
- [Intermediate] Localized Number Parsing
- [Intermediate] Sorting JavaScript Arrays By Nested Properties
- [Advanced] JavaScript's Promise Leaks Memory
- [Advanced] A cartoon intro to ArrayBuffers and SharedArrayBuffers
- [Advanced] JavaScript async iteratorrs
👀 If you are looking for beginner articles on JavaScript, I recommend you to take a look at the articles of Samantha Ming.
- [Beginner] Learning Functional Programming with JavaScript
- [Beginner] Immutable data structures for functional JS
- [Beginner] Wes Bos - Async + Await
- [Beginner] !!Con 2019- Tail Call Optimization: The Musical!!
- [To know] Navigating Numbers in JavaScript by Meggan Turner
- [Intermediate] Learn JavaScript Generators in practice - processing data on-demand with real-world examples - Erick Wendel
- [Intermediate] Fast by default: algorithmic performance optimization in practice
- [Advanced] Shared Memory & Parallel Programming with JavaScript
The episodes of the EN OpenHive.js podcast are also quite interesting to follow (with interlocutors of great expertise each time).
⬅️ 💪 Challenge yourself regularly | ➡️ 🔧 Engine & VM JavaScript (V8 etc)