Beaucoup de développeurs font l’erreur de choisir Udemy comme plateforme d’apprentissage pour JavaScript et Node.js. La plateforme possède un modèle économique très peu recommandable et déjà plusieurs scandales ont éclaté au travers du temps 😔.
Il est important de comprendre, que quand votre objectif est de réussir à trouver un emploi dans les prochains mois, il est plutôt problématique de se baser sur du contenu ayant une qualité très variable, peu ou pas à jour depuis des années et quelquefois à la limite de l’éthique 😮 (ce qui ne veut pas non plus dire qu’il n’y a pas du bon contenu j’entends bien).
Un exemple plutôt flagrant des mauvaises formations est bien souvent des croyances du genre “Une fonction async / une promesse génère un thread en arrière-fond 💩” (phrase que j’ai moi-même entendue dans un cours d’un formateur réputé “expérimenté”). Beaucoup ont pour habitude de diminuer les impacts de ses fausses croyances.. Néanmoins elles ont des impacts réels en production.
Je vous recommande plutôt d’investir sur un compte Frontend Masters qui vous permettra d’avoir accès à un ensemble de cours à jour avec des experts qui sont reconnus et qualifiés dans leurs domaines respectifs (c’est d’autant plus nécessaire si vous visez le front et le back).
Les étudiants auront d’ailleurs bien souvent le droit à six mois gratuits.
Quelques-uns de leur cours sur Javascript (je vous invite à regarder vous-même le catalogue des nombreuses autres formations disponibles) :
- EN https://frontendmasters.com/courses/getting-started-javascript-v2/
- EN https://frontendmasters.com/courses/javascript-hard-parts-v2/
- EN https://frontendmasters.com/courses/functional-js-fundamentals/
Quand il est question d'articles de qualité sur JavaScript, je vous recommande très fortement le blog d’Axel Rauschmayer.
Warning
Attention néanmoins il est tout de même nécessaire d’avoir bien souvent établi une fondation avant de pouvoir apprécier ces articles.
Voici une liste d’articles de son blog que je vous recommande de lire:
- EN [Débutant] Categorizing values in JavaScript
- EN [Débutant] Type coercion in JavaScript
- EN [Débutant] Remainder operator vs. modulo operator (with JavaScript code)
- EN [Débutant] Synchronous and asynchronous sequential execution of functions
- EN [Débutant] How do JavaScript’s global variables really work?
- EN [Débutant] ES2018: Rest/Spread Properties
- EN [Débutant] Three ways of understanding Promises
- EN [Débutant] A different way of understanding this in JavaScript
- EN [Débutant] undefined vs. null revisited
- EN [Intermédiaire] Iterables and iterators in ECMAScript 6
- EN [Intermédiaire] JavaScript Promise combinators: .all(), .race(), .allSettled()
- EN [Intermédiaire] ES6 Generators in depth
Bien d’autres articles sont disponibles (ce n’est qu’un faible échantillon de son blog).
J’ai tout récemment ré-exploré le blog de Jake et franchement je ne me souvenais plus qu’il avait écrit autant de pépites sur JavaScript 😲.
- EN [A savoir] Don't use functions as callbacks unless they're designed for it
- EN [A savoir] Event listeners and garbage collection
- EN [A savoir] await vs return vs return await
- EN [A savoir] Promises: resolve is not the opposite of reject
- EN [Intermédiaire] JavaScript: What is the meaning of this?
- EN [Intermédiaire] Arrays, symbols, and realms
- EN [Intermédiaire] Async iterators and generators
- EN [Intermédiaire] Iterators gonna iterate
- EN [Avancé] Streaming template literals
Note
Je vous recommande de lire ces articles plus orientés front-end si le sujet vous intéresse aussi.
Aussi un excellent développeur et vulgarisateur de concepts et fonctionnalités autour du Web (JavaScript et plus). Je vous recommande donc fortement d’aller lire son blog surma.dev!
- EN [A savoir] My most useful RegExp trick
- EN [Intermédiaire] Deep-copying in JavaScript
- EN [Avancé] Streams for reactive programming
- EN [Débutant] JavaScript Promises: An introduction
- EN [Débutant] JavaScript Visualized: the JavaScript Engine
- EN [Débutant] JavaScript Visualized: Promises & Async/Await
- EN [Débutant] JavaScript Visualized: Prototypal Inheritance
- EN [Débutant] JavaScript Visualized: Generators and Iterators
- EN [Débutant] JavaScript Visualized: Hoisting
- EN [Débutant] 13 useful JavaScript array tips and tricks you should know
- FR [Débutant] Les propriétés et descripteurs de propriétés en JavaScript
- FR [Débutant] 19 JAVASCRIPT NUGGETS!
- FR [Débutant] Natively Format JavaScript Dates and Times
- EN [A savoir] Javascript and the next decade of data programming
- EN [A savoir] JS classes are not “just syntactic sugar”
- EN [A savoir] 10 Awesome Github Repos Every Web Developer Should Know
- EN [A savoir] Sometimes undefined is defined
- EN [A savoir] +-0, NaN and Object.is in JavaScript
- EN [A savoir] JSON.stringify takes toJSON methods into consideration
- EN [A savoir] What is the difference between parseInt() and Number()?
- EN [A savoir] 3 Ways to Clone Objects in JavaScript
- EN [A savoir] When "Zoë" !== "Zoë". Or why you need to normalize Unicode strings
- EN [A savoir] Property order is predictable in JavaScript objects since ES2015
- EN [A savoir] Quick tip: reusable Array search predicates
- EN [A savoir] Javascript and the next decade of data programming
- EN [A savoir] Thoughts On JavaScript Classes
- EN [A savoir] When You Should Prefer Map Over Object In JavaScript
- EN [Intermédiaire] A Smarter JavaScript Mapper: array.flatMap()
- EN [Intermédiaire] What I Talk About When I Talk About Sorting: Untangling Array#sort
- EN [Intermédiaire] This in JavaScript
- EN [Intermédiaire] The global
Reflect
object, its use cases and things to watch out for - EN [Intermédiaire] Metaprogramming in ES6: Symbols and why they're awesome
- EN [Intermédiaire] Localized Number Parsing
- EN [Intermédiaire] Sorting JavaScript Arrays By Nested Properties
- EN [Advanced] JavaScript's Promise Leaks Memory
- EN [Advanced] A cartoon intro to ArrayBuffers and SharedArrayBuffers
- EN [Advanced] JavaScript async iteratorrs
Note
Si vous êtes à la recherche d'articles débutant sur JavaScript, je vous recommande de jeter un œil aux articles de Samantha Ming.
J’ai toujours beaucoup apprécié Christophe PORTENEUVE en tant qu’orateur 😍. Je vous recommande donc quelques-uns de ces talks:
- FR [Débutant] ES6+ maintenant!
- FR [Débutant] Deep dive dans async/await
- FR [Débutant] Alors, quoi de neuf en ES2022 ?
- EN [Débutant] Writing Modern Async JavaScript (par Christophe Porteneuve)
- EN [Intermédiaire] Christophe Porteneuve - Fun and Games With ES Proxies
Les autres talks
- FR [Débutant] L'asynchrone en JS sans le cringe - Christophe Porteneuve
- EN [Débutant] Apprentissage de la programmation fonctionnelle avec JavaScript
- EN [Débutant] Immutable data structures for functional JS
- EN [Débutant] Wes Bos - Async + Await
- EN [Débutant] !!Con 2019- Tail Call Optimization: The Musical!!
- EN [À savoir] Navigating Numbers in JavaScript by Meggan Turner
- EN [Intermédiaire] Learn JavaScript Generators in practice - processing data on-demand with real-world examples - Erick Wendel
- FR [Intermédiaire] Les bases des fonctions generators (de moi et tonygo_)
- EN [Intermédiaire] Fast by default: algorithmic performance optimization in practice
- EN [Avancé] Shared Memory & Parallel Programming with JavaScript
Important
Les épisodes du podcast OpenHive.js sont aussi assez intéressants à suivre (avec des interlocuteurs d’une très grande expertise à chaque fois).
⬅️ JavaScript: 💪 Mettez-vous au défi régulièrement ➡️ JavaScript: 🔧 Engine & VM JavaScript (V8 etc)