La technologie Node.js est l'une des plus appréciées selon l’observatoire Stackoverflow 2017 des développeurs. Dans un premier temps, Tracy Hinds, responsable de la communauté éducative de la Fondation Node.js, précise ce qui distingue ce runtime JavaScript des autres technologies : « C’est l’écosystème qui entoure ce langage. Open source, il vit au cœur de la partie serveur quand Javascript vit sur la partie web. Cela veut dire que vous avez de grandes chances, quel que soit le langage que vous utilisez, de l’employer également quand vous développez pour le web. »
Node.js offre des lots de codes et de modules – du code créé par d’autres développeurs et rendus publics – que chaque concepteur peut utiliser pour ses propres travaux, ce qui rend la tâche plus simple et rapide selon la représentante de la Fondation Node.js. Une autre particularité de Node.js que les développeurs apprécient particulièrement est qu’ils ne sont plus obligés de passer du front au back-end en permanence, grâce à Javascript, qui leur permet de réaliser des applications full-stack. « C’est très utile pour des développeurs qui travaillent avec d’autres langages back-end » commente Tracy Hinds, « puisqu’ils n’ont pas à se soucier des « changements de contexte », et ne sont pas obligés de faire des allers-retours ou de s’inquiéter de la compatibilité ».
Efficacité et expertise
Pour Jeff McAffer, directeur de l’ingénierie open source chez Microsoft, il y a des particularités uniques au développeur Node.js qui s’ajoutent aux compétences traditionnelles de conception et de logique qu’il faut rechercher chez tout développeur. « L’écosystème Node est énorme », décrit Jeff McAffer. « Beaucoup de modules sont déjà écrits et une des premières questions qu’un codeur en Node est de savoir s'il existe déjà un NPM - Node package manager ». Un NPM comporte un référentiel en ligne pour publier des projets Node.js open source et un utilitaire de ligne de commande pour interagir avec ce référentiel. « En d’autres termes, les développeurs se demandent entre eux : Est-ce que quelqu’un a déjà résolu ce problème et écrit un code que je peux réutiliser dans mon projet ? » explique Jeff McAffer. Ce dernier ajoute qu’il est important que les spécialistes du Node aient ce réflexe, qui est une preuve d’efficacité.
Le directeur de l’ingénierie open source chez Microsoft insiste sur l’importance de s’assurer que l’informaticien puisse « interagir avec ce code et l'intégrer à vos systèmes existants pour que tout fonctionne. Il y a des développeurs qui n’y arrivent pas et qui insistent pour tout faire à partir de rien, eux-mêmes, et ils finissent par perdre du temps. » D’autres se prétendent spécialistes de Node mais ne font qu’un copier-coller du NPM sans avoir les compétences pour intégrer, tester ou débugger leur projet. Une autre question intéressante à poser lors d’un entretien est « Comment feriez-vous pour débugger cela ? » Le candidat devra démontrer sa capacité à identifier et résoudre des problèmes.
Des capacités techniques mais aussi relationnelles
D’autres savoir-faire à attendre d’un spécialiste du Node.js sont la compréhension des flux de données d’une application Node.js, sa connaissance des streams et des buffers, en programmation et comportement asynchrone ou de savoir améliorer les besoins de sécurité et de performance des applications. Les développeurs qui ont déjà utilisé Node.js dans des environnements de production sont à privilégier.
Enfin, les DSI peuvent porter leur attention sur des candidats qui ont participé à des meetups professionnels, des conférences ou contribué à enrichir le code de l’écosystème Node ou déposé des rapports de bugs. « Cela prouve leurs compétences dans le monde réel et qu’ils sont capables de dialoguer efficacement avec les autres » conclut Tracy Hinds.