Vanilla JavaScript vaut-il la peine d'être appris? Absolument.

Le but de cet article est de souligner l'importance des principes fondamentaux de JavaScript pour chaque développeur front-end. Je vais vous dire pourquoi vous devriez avoir une bonne connaissance du JavaScript pur (Vanilla). Cela signifie JavaScript sans aucun framework ou bibliothèque supplémentaire.

Je mentionnerai également quelques ressources qui m'ont aidé à apprendre ces bases.

Une autre raison derrière cet article est que de nombreux développeurs Web en herbe ont tendance à ignorer l'apprentissage des concepts JavaScript de base tels que le levage, les fermetures ou les prototypes. Ils vont directement aux frameworks les plus chauds tels que React ou Angular 2. Je vais vous montrer pourquoi cette approche n'est pas la plus pratique.

Tout le monde veut des développeurs connaissant $ {addTheHotFramework}…

Alors, y a-t-il une raison pour laquelle vous devriez vous donner la peine d'apprendre Vanilla JavaScript?

Il est difficile de devenir un développeur fort sans connaître le cœur du langage lui-même. Tout comme vous devez comprendre les principes fondamentaux du droit avant de pouvoir vous lancer dans un domaine particulier du droit. Cette comparaison est purement accidentelle. ?

Je comprends que la majorité des futurs développeurs Web souhaitent être embauchés le plus tôt possible. Je voulais cela aussi.

Il semble beaucoup plus facile de faire un cours intensif sur les bases de JavaScript, de plonger dans un cadre sophistiqué, de créer une liste de tâches (laisser un chiot mourir), de la télécharger sur GitHub, puis de commencer à chercher un emploi.

… Mais investir du temps dans Vanilla JavaScript sera payant à long terme

Ne vous méprenez pas ici. Je n'ai aucun préjugé contre les frameworks JavaScript. C'est exactement le contraire. Beaucoup d'entre eux vous aident à écrire un code plus lisible et maintenable. Ils vous permettent d'écrire plus de code abstrait qui est souvent plus facile à déboguer.

Mais l'écosystème JavaScript évolue assez rapidement. De nouveaux cadres sont en cours de création. De nouvelles fonctionnalités sont ajoutées aux fonctionnalités existantes. Et plus important encore, bon nombre des frameworks les plus populaires d'aujourd'hui seront éventuellement remplacés, tels que Angular 1.

Dans de telles circonstances, pensez-vous toujours que la connaissance d'un framework JavaScript particulier soit suffisante pour un développeur Web?

Ou est-il préférable de comprendre comment le langage sur lequel toutes ces bibliothèques et frameworks sont basés fonctionne sous le capot?

Si vous possédez une solide connaissance des fondamentaux de JavaScript,la seule chose avec laquelle vous devez vous familiariser lorsque vous commencez à travailler avec un nouveau framework est sa syntaxe . Les règles de base seront les mêmes puisque sous toutes les couches d'abstractions. C'est toujours juste du vieux JavaScript.

Si vos connaissances sont limitées à un seul framework JavaScript, vous aurez du mal à en apprendre un nouveau. Différents frameworks sont souvent basés sur un ensemble différent de principes JavaScript. Sur le long terme, vous passerez plus de temps à essayer de comprendre divers frameworks et à déboguer le code que vous y écrivez.

Tous les frameworks et bibliothèques JavaScript sont inévitablement basés sur son noyau Vanilla.

Cela devrait convaincre quiconque que la connaissance d'un pur JavaScript est indispensable à long terme. C'est une condition préalable pour tout développeur à succès, en particulier pour un développeur travaillant principalement dans l'écosystème JavaScript.

Expérience personnelle

Il n'y a pas longtemps, j'ai repensé à mon parcours d'avocat à développeur Web. Cela fait déjà 18 mois que j'ai écrit ma première fonction JavaScript, et mon 10e mois en tant que développeur front-end professionnel.

Je me souviens encore à quel point il était difficile pour moi de découvrir la bonne façon d'apprendre JavaScript, car je n'avais aucune expérience en programmation. J'ai essayé (et j'essaie toujours) de nombreuses façons différentes de devenir un apprenant efficace. Certains d'entre eux étaient plus gratifiants, certains moins.

Plus important encore, je ne saurais trop insister sur l'utilité pour moi de mettre l'accent sur l'apprentissage de JavaScript pur dès le début. Les cadres sont venus plus tard.

En ce moment, je travaille avec une pile React-Redux. Même ainsi, je rencontre souvent un problème que je peux résoudre grâce à ma connaissance de Vanilla JavaScript. Ces bogues seraient beaucoup plus difficiles à résoudre avec seulement la connaissance d'un cadre particulier.

L'apprentissage de React ou Angular 2 ne vous apprendra pas que les objets sont passés par référence ou comment les fermetures fonctionnent. Essayer de comprendre ces concepts sous les abstractions apportées par le framework est beaucoup plus difficile. Cela rend les concepts JavaScript simples plus difficiles à comprendre.

De plus, si vous travaillez avec JSX (React, Vue, Inferno) ou TypeScript (Angular 2), vous avez une autre couche d'abstraction en plus.

Si vous voulez comprendre comment ces frameworks fonctionnent sous le capot, vous devez d'abord savoir comment JavaScript lui-même fonctionne.

Vous pouvez tester vos connaissances en JavaScript pur en lisant le code source de votre framework préféré.Non seulement cela vous donnera une image de la façon dont cela fonctionne sous le capot, mais cela vous en apprendra également beaucoup sur sa logique, que vous pouvez utiliser dans votre propre code. Vous verrez que les fonctions du framework qui semblent faire beaucoup de magie dans votre application ne sont que des compositions de concepts JavaScript de base.

Donnez-moi quelque chose dont je peux apprendre

La question que vous vous posez peut-être maintenant est «Quelles sont les bonnes ressources qui peuvent m'aider à acquérir une connaissance décente de Vanilla JavaScript?

Il existe des tonnes de cours et de livres sur JavaScript et ses frameworks. Pourtant, peu d'entre eux visent à vous enseigner Vanilla JavaScript de manière complète. La plupart d'entre eux se spécialisent dans une technologie JavaScript particulière.

Mais il y en a encore de bons…

Eloquent JavaScript vous apprendra non seulement les bases de JavaScript, mais également les bases de la programmation en général. Si vous êtes déjà un développeur avancé, ce livre vous fournira une nouvelle perspective sur JavaScript et ses principes fondamentaux.

Une autre excellente ressource est la série de livres You Don't Know JavaScript (YDKJS) de Kyle Simpson. Kyle sait vraiment enseigner. Ses explications sur les concepts JavaScript avancés sont adaptées aux débutants et il les couvre en profondeur. Les simples titres des livres vous donneront une idée de ce que vous allez apprendre. «Up & Going», «Scope & Closures», «this & Object Prototypes», «Types & Grammar», «Async & Performance», «ES6 & Beyond». Il existe également un nouveau 7e livre sur la programmation fonctionnelle en JavaScript.

L'un des avantages de Eloquent JavaScript et YDKJS est que vous pouvez les obtenir gratuitement (consultez les liens fournis). Mais si vous les trouvez vraiment utiles, n'oubliez pas de soutenir les auteurs en les achetant.

Si vous êtes plutôt un stagiaire vidéo, vous pouvez regarder les cours en ligne de Kyle. Je suppose que la meilleure chose que vous puissiez faire est de les regarder comme compagnon de ses livres puisque les sujets sont les mêmes. Cependant, ces cours sont rémunérés.

Un autre cours vidéo que je trouve utile est Javascript: Understanding the Weird Parts par Anthony Alicea. Il explique ce qui se passe sous le capot de JavaScript de manière accessible. Il couvre des concepts avancés tels que l'héritage prototypique, la programmation fonctionnelle et les chaînes de portée.

Apprenez maintenant à Vanilla JavaScript

Si vous investissez votre temps précieux dans l'apprentissage de Vanilla JavaScript, vous ne le regretterez pas. Non seulement il contient le mot vanille , mais il aura un impact bénéfique sur les compétences en programmation.

Pour moi, le meilleur compromis est que l'apprentissage de JavaScript pur vous apportera beaucoup plus à long terme que d'investir du temps dans un cadre particulier. Les cadres ne sont que des raccourcis. Sous le capot, tout est JavaScript.

Vous verrez par vous-même dans une situation où un framework que vous utilisez a un comportement inattendu. Dans ce cas, vous serez obligé d'étudier ce bogue en parcourant le code source. Ai-je mentionné que bien que de nombreux frameworks manquent de documentation décente, ils ont un code assez complexe? Mais bon, du gâteau, non? Vous avez sûrement déjà passé beaucoup de temps à apprendre Vanilla JavaScript. Ou pas encore?

Devriez-vous vous rappeler une seule chose de ce post:

Gardez toujours à l'esprit que la connaissance de Vanilla JavaScript vous aidera à devenir un développeur bien meilleur. Période.

Si vous avez aimé cet article, appliquez-lui quelques applaudissements. Je l'apprécierais beaucoup.

Cet article a été initialement publié sur mon blog.

On se voit sur Twitter?

David Kopal (@coding_lawyer) | Twitter

Les derniers Tweets de David Kopal (@coding_lawyer). développeur front-end @ataccama | ancien avocat | blogueur… twitter.com