Pourquoi apprendre Node.js, à propos des perspectives de backend JavaScript ?

Cet article traite des perspectives du développeur Node.js sur le marché du travail, ainsi que de la pertinence du backend JavaScript. Vous apprendrez pourquoi il est utile d'étudier Node.js, quel est l'avenir de cette technologie, combien sont payés les programmeurs ayant la spécialisation correspondante. Des experts renommés du secteur partagent leurs points de vue sur le backend JS.

Une brève théorie : qu'est-ce que Node.js et où cette technologie est-elle utilisée ?


Node.js est un environnement permettant d'exécuter du code JavaScript en dehors du navigateur. Cette plateforme vous permet d'écrire du code côté serveur pour des pages et des applications web dynamiques, ainsi que pour des programmes en ligne de commande. Node.js met en œuvre le paradigme JavaScript pour tous. Il s'agit d'utiliser un seul langage de programmation pour développer des applications web au lieu d'utiliser différents langages pour travailler sur le front-end et le back-end.

En langage courant, les programmeurs utilisent le mot argotique "nœud". Par exemple, "nous écrivons le backend en node".

Node.js n'est pas un langage de programmation distinct, mais une plateforme permettant d'utiliser JavaScript du côté serveur. En parlant de langage, le front-end et le back-end utilisent tous deux le même JavaScript. La seule différence réside dans l'ensemble des API utilisées par les frontenders et les backenders.

Le JavaScript du navigateur utilise des API Web qui permettent d'accéder au DOM et à l'interface utilisateur des pages et des applications Web. Le JavaScript côté serveur utilise des API qui permettent d'accéder au système de fichiers de l'application, aux demandes http et aux threads.

En d'autres termes, Node.js est une technologie permettant d'utiliser JS en backend. Vous pouvez lire les caractéristiques et les perspectives de développement du langage JavaScript dans l'article correspondant, et ici nous allons parler d'une des technologies de ce langage.

À lire : Qu'est-ce que le framework react Native?

Un regard sur l'histoire : de 2009 à 2019


La plateforme Node.js a été introduite en 2009. Il a été créé par l'ingénieur Ryan Dahl et a été sponsorisé par Joyent. L'entreprise est connue pour son soutien aux projets open-source, notamment Node.js, Illumos et SmartOS.

Ryan Dahl a utilisé le moteur V8 pour créer Node.js. La plate-forme est mise en œuvre avec un modèle d'E/S non bloquant de bas niveau, qui est construit sur un modèle piloté par les événements.

Fin 2014, l'ingénieur Fyodor Indutny, qui faisait partie de l'équipe centrale de développement de la plateforme, a créé un fork populaire de Node.js - io.js. Le fork est né du mécontentement des développeurs à l'égard des politiques de Joyent.

La plateforme io.js a dépassé Node.js en termes de performances. Mais les créateurs du fork ont décidé dès 2015 de se réunir avec Node.js pour influencer le développement de la plateforme principale. Actuellement, le développement est officiellement géré par la Node.js Foundation.

Portée : Où Node.js est utilisé


Comme indiqué ci-dessus, Node.js est utilisé pour le développement du backend JavaScript. Alors que dans le navigateur, JavaScript est totalement dominant et qu'aucun concurrent de ce langage dans le frontend n'est même visible à l'horizon, la situation est différente dans le développement du backend. Ici, JS est en concurrence avec PHP, Python et d'autres langages.

Le choix de JavaScript côté serveur pour le backend offre au projet un certain nombre d'avantages :

  • Efficacité accrue du développement grâce à l'utilisation du même langage pour le front-end et le back-end et à la possibilité de réutiliser le code ;
  • la possibilité d'utiliser npm, le plus grand gestionnaire de paquets ;
  • Il est plus facile de trouver des exécutables par rapport à d'autres piles, car JavaScript fait partie des langages de programmation les plus populaires.
  • Node.js est bien adapté au développement de RTA - des applications web qui répondent aux actions des utilisateurs en temps réel. Par exemple, il peut s'agir d'un éditeur en ligne comme Google Docs, qui permet à plusieurs utilisateurs de travailler simultanément sur un même document.
  • Node.js peut facilement gérer un grand nombre de demandes en même temps et assurer la vitesse de l'application. Par conséquent, le JavaScript côté serveur est souvent utilisé pour créer des applications Web à page unique (SPA), dans lesquelles le rendu est effectué côté client. Node.js est utilisé en back-end par Netflix, Uber, eBay, Groupon, Yahoo et d'autres organisations et projets bien connus.


Node.js vs PHP et Python


Nous avons parlé des notations PHP dans l'article de présentation de ce langage. Et dans cette section, comparons la popularité de Node.js avec PHP et Python, qui sont souvent utilisés dans le backend.

Node.js est inférieur à PHP en termes de popularité. Il suffit de rappeler que les systèmes de gestion de contenu les plus populaires sont écrits en PHP, notamment WordPress, Joomla ! et Drupal. Seul WordPress gère environ un tiers de tous les sites sur Internet.

L'infrastructure de PHP est plutôt supérieure à celle de Node.js. Par exemple, les développeurs PHP peuvent choisir entre plusieurs framework de travail web décents.

Python est considéré comme l'un des meilleurs langages pour apprendre la programmation. Mais la principale différence entre Python et Node.js réside dans les applications. Python est plus polyvalent : il est utilisé aussi bien dans le développement web que dans la science des données, l'apprentissage automatique et d'autres domaines. Node.js est plus susceptible d'être utilisé pour le développement web. Grâce à Electron, cette technologie est également utilisée pour le développement d'applications de bureau.

Néanmoins, l'infrastructure Node.js est mature, et les développeurs disposent d'outils pratiques et de qualité. Par exemple, le gestionnaire de paquets npm et le cadre Electron pour la création d'applications de bureau ont été mentionnés plus haut. Il convient également de mentionner les framework Express et Nest.js pour le développement d'applications web. 

 

Accédez au métier très demandé de programmeur Node.js


Au cours de la formation, vous acquerrez des connaissances fondamentales : apprenez à programmer en JavaScript, utilisez des outils modernes pour créer des applications backend, notamment Express.js, Koa, PostgreSQL. Les premiers cours de la profession sont disponibles gratuitement. Inscrivez-vous et commencez à apprendre !

Salaire des développeurs Node.js : quels sont les salaires et y a-t-il des postes vacants ?


La demande de développeurs Node.js ne cesse de croître. Soyez attentif à la dynamique du nombre de postes vacants dans la spécialisation correspondante sur le site jobs.dou.ua. Offres d'emploi Node.js selon Dou

Le nombre de postes vacants augmente

Selon le service Habr Careers pour le premier semestre 2020, le salaire médian d'un développeur JavaScript est de 35000 euros par année. Il faut comprendre que cette statistique inclut les salaires des développeurs JS frontaux et dorsaux. Les développeurs Python gagnent 50.000 euros par année et les programmeurs PHP 60.000 euros par année.

Selon le portail de carrière Jobboom, les développeurs JavaScript ont gagné en moyenne 65.000 $ en octobre 2020. Et l'agence NewHR a calculé qu'en 2020, le salaire d'un programmeur JavaScript de niveau intermédiaire à Paris se situe entre 45 et 50000 euros.

Perspectives pour Node.js : commentaires d'experts


Certains experts réputés du secteur parlent des perspectives du backend JavaScript.

Igor Kamyshev : Node.js ne deviendra plus populaire qu'en fonction des tendances : Igor Kamyshev, développeur d'applications web et responsable technique chez Samokat. Il développe l'écosystème de bibliothèques pour Node.js Solid Soda. Auteur du canal télégramme kamyshev.code

- À votre avis, pourquoi devriez-vous étudier Node.js ?

- Node.js est une technologie inhabituelle. L'écosystème JavaScript moderne a été créé par des non-programmeurs, ce qui lui confère un grand nombre d'idées fraîches et inhabituelles. Il est plus facile de commencer à écrire des applications en Node.js qu'en Java, Ruby ou PHP. De plus, il s'agit d'une plateforme assez mature, beaucoup de problèmes sont déjà résolus et les meilleures approches sont connues et décrites.

- Quelles sont les perspectives d'un backend JavaScript par rapport à d'autres langages et technologies ?

- Tout backend peut être écrit dans n'importe quelle langue. La seule question qui se pose est celle de la rapidité du développement et de la fiabilité de cette solution. Les applications Node.js peuvent être écrites rapidement, mais il faut faire des efforts pour en assurer la fiabilité. Il est important de comprendre que JavaScript est un langage dont le typage dynamique est faible. Pour compenser cela, vous devez réfléchir à l'avance à l'architecture de l'application et passer plus de temps à écrire des tests. D'autre part, vous pouvez prendre TypeScript et obtenir une garantie de sécurité des types (pas une garantie complète, bien sûr, mais mieux que rien).

À mon avis, Node.js est adapté à une très large catégorie de backends. Des magasins en ligne aux services éducatifs.

- Le backend JS sera-t-il demandé à l'avenir ?

- À en juger par les tendances de croissance, Node.js ne fera que gagner en popularité. Il est difficile d'estimer quand cette croissance s'arrêtera, mais c'est un fait maintenant. Quelles sont les perspectives pour les développeurs Node.js sur le marché du travail ?

En Russie comme à l'étranger, il existe de nombreuses offres d'emploi pour les développeurs Node.js. Les salaires sont presque les mêmes que pour les autres technologies. Il est important de comprendre que les développeurs Node.js combinent souvent leurs activités avec le développement frontal dans une certaine mesure.

- Combien de temps faut-il pour apprendre le développement backend en JS de zéro à junior ?

- Node.js est une plateforme super-minimaliste. En gros, tout ce que vous devez faire pour le comprendre, c'est apprendre JavaScript et lire 10 pages de documentation sur Node.js. Je suppose que si vous n'avez jamais eu affaire à la programmation auparavant, vous apprendrez tout ce dont vous avez besoin en 5-6 mois et deviendrez un membre à part entière d'une équipe.

Andrey Melikhov : Je pense qu'il y a une forte demande pour des développeurs forts et compétents ayant une expérience dans d'autres langues.

Andrey Melikhov, programmeur expert chez Yandex.Money, hôte du podcast "Devshahta".

- Pourquoi apprendre Node.js et prêter attention à backend-JS ?

- Même si beaucoup de gens le souhaitent, les sites web nécessitent toujours un rendu côté serveur. Il ne s'agit pas seulement de tâches de référencement, mais aussi de trafic mobile. Si nous ne voulons pas nous compliquer la vie et utiliser le même code sur le serveur et le client, alors notre seul choix est pratiquement JavaScript. Bien sûr, il existe également diverses exotiques qui compilent en JS, mais à l'exception de TypeScript, il est encore assez difficile de prendre tout cela au sérieux. Donc, nous avons besoin de JS sur le serveur, et ici le principal acteur est Node.js. Oui, il est bon de rappeler qu'il existe d'autres solutions qui permettent d'exécuter JS en dehors du navigateur, mais dans le contexte de Node.js, leur part est imperceptible.

C'est la première chose. La seconde est qu'à un moment donné, il faut travailler avec des données stockées sur le serveur. Il me semble que tout développeur web, au moins à un niveau de base, doit comprendre comment tout cela fonctionne. Et ici, Node.js est un excellent choix, car il vous permet de créer un serveur web à part entière avec un seuil minimal.

Troisièmement. Malgré toutes les moqueries et la méfiance, Node.js est devenu un outil quasi adulte et continue d'évoluer. Aujourd'hui, nous disposons enfin d'une boîte à outils décente, du typage statique et même d'un bon framework (Nest). On peut recommander sans risque Node.js comme solution serveur pour les projets de grande envergure, à longue durée de vie et à forte charge.

- Quelles sont les perspectives pour la langue et la technologie ?

- En ce qui concerne spécifiquement le langage, nous constatons que JS devient progressivement la cible des constructions plutôt que le langage dans lequel le code est écrit. Et dans le cas de Node.js, la raison principale est TypeScript, car contrairement au navigateur, nous n'avons pas besoin de traduire JS en JS - nous avons un contrôle total sur l'environnement d'exécution. Cependant, les capacités que TypeScript nous offre vont bien au-delà du simple sucre syntaxique.

Et si vous prenez des outils modernes comme Nest, ils font un usage actif de ces fonctionnalités. Un projet Node.js moderne repose sur le typage statique, l'injection de dépendances et les modèles de conception. Peut-être que la simplicité et la facilité de JavaScript se perdent derrière, mais à la place viennent la fiabilité et la simplification du développement et du support dans les grands projets.

- Quelles sont les perspectives pour les développeurs en Node.js ? Seront-ils demandés, quelles tâches résoudront-ils ?

- De manière inattendue, JavaScript est devenu le langage pour tout. Serveur, navigateur, téléphones mobiles, applications de bureau, IoT - partout, JavaScript se porte plutôt bien. Une toute nouvelle direction est AWS-lambda (serverless), dans laquelle JavaScript est également très bon. Alors oui, les développeurs seront recherchés. Mais lorsqu'il s'agit de serverless, je pense que le marché a un besoin urgent de développeurs compétents et solides ayant une expérience dans d'autres langues.

- Quelques conseils pour les débutants : par où commencer, que faut-il étudier, que faut-il rechercher ?

- Vous devriez commencer par apprendre UNIX et les bases des réseaux informatiques en général. Après cela, vous pouvez essayer d'écrire une application simple en Node.js, de préférence sans frameworks (y compris Express). Une fois que vous avez compris TCP/UDP et HTTP/HTTPS, vous pouvez essayer d'écrire le backend complet d'Express, qui renvoie des données avec AJAX et le templating HTML. De plus, bien sûr, vous aurez à traiter avec Nginx ou HAProxy, comprenez l'équilibrage. Il est bon d'avoir au moins une connaissance de base de Docker et de son utilité.

L'étape suivante, je vous recommande de plonger dans TypeScript et d'essayer Nest. Apprendre le bundle Angular + Nest n'est pas une mauvaise option, puisque Nest est fortement influencé par Angular et met en œuvre des concepts similaires.

Je recommande vivement le livre Node.js Design Patterns de Mario Casciaro.

Alexey Zolotych : il y a une pénurie de développeurs Node.js sur le marché du travail

Alexey Zolotych, chef d'équipe Infobib, co-organisateur de la conférence HolyJS

- À votre avis, pourquoi cela vaut-il la peine d'étudier Node.js ?

- Ces derniers temps, Node.js devient une technologie de plus en plus mature. Des outils sérieux de débogage, de traçage et de détection d'autres problèmes font leur apparition. L'expertise se développe au sein de la communauté. L'évolution vers les microservices compense les inconvénients de l'absence de typage statique en réduisant la complexité. Et oui, nous avons toujours TypeScript pour les gros projets.

Je pense que Node.js a définitivement un avenir, et il y a définitivement de la place pour se développer. En même temps, le seuil d'entrée est très bas. Cela vous permet de ne pas penser à la technologie et à la complexité, et de vous concentrer sur le produit.

- Quelles sont les perspectives pour le backend JavaScript par rapport aux autres langages et technologies ?

- Je suis initialement contre le fait d'être lié à la technologie. Un bon ingénieur doit choisir une technologie adaptée à la tâche à accomplir plutôt que d'essayer d'être le gars avec le marteau pour qui tout ce qui l'entoure n'est que clous. En ce moment, le nœud a une vitesse décente dans certains aspects, un seuil de connexion bas, une grande popularité et beaucoup de bibliothèques pour tout. D'un autre côté, il y a beaucoup de problèmes non résolus. Mais je pense que cela ressemble à un défi ;)

- Le backend JS sera-t-il demandé à l'avenir ?

- Question difficile. Je pense qu'il sera au même niveau dans les deux ou trois prochaines années. Mais le chemin vers quelque chose de différent sera clairement évolutif et plus ou moins lisse. Un bon ingénieur ne va aller nulle part.

- Quelles sont les perspectives pour un développeur Node.js sur le marché du travail ?

- Très bien. Il y a une pénurie d'entre eux en ce moment.

- Combien de temps faut-il pour apprendre le développement backend en JS de zéro à junior ?

- Tout se fait sur une base individuelle. Si vous êtes curieux et entreprenant, je pense au moins six mois.

Conclusion
Node.js est une plateforme permettant d'exécuter du code JavaScript en dehors du navigateur. Cette technologie est surtout utilisée pour le développement du backend JavaScript. Les développeurs Node.js sont en nombre insuffisant sur le marché. À mesure que cette technologie gagne en popularité, la pénurie de spécialistes va s'accentuer. Si vous avez des questions, posez-les dans les commentaires.