Réussir à devenir employable en tant que développeur NodeJS va nécessiter du travail supplémentaire de la part des néo-devs. Outre les compétences humaines qu’il faut cultiver pour se différencier, voici 7 hard skills qu’il faut avoir pour pouvoir être embauché comme développeur NodeJS
Avec la multiplication des formations accélérées, de plus en plus de profils très juniors arrivent sur le marché. Seulement, les formations courtes sont insuffisantes et réussir à devenir employable en tant que développeur NodeJS va nécessiter du travail supplémentaire de la part des néo-devs.
Outre les compétences humaines qu’il faut cultiver pour se différencier, voici 7 hard skills qu’il faut avoir pour pouvoir être embauché comme développeur NodeJS:
Bien connaître JavaScript
Savoir produire un Hello World ou une application CRUD ne fait pas de vous développeur pour autant. Il existe un gap entre un développeur débutant qui sait produire une app Express et un développeur qui pratique Node depuis plus d’un an.
Ce gap se situe dans la compréhension de JavaScript. De nombreux développeurs comptent seulement sur la pratique pour progresser sur le langage sur lequel ils travaillent. Certes c’est une façon d’apprendre mais c’est loin d’être la seule.
Les livres sont d’excellents moyens de progresser dans la compréhension de JavaScript. Cette compréhension vous servira à être plus productif dans votre code et à mieux réussir vos entretiens d’embauche.
Comprendre comment fonctionne l’asynchrone, savoir ce qu’est l’event loop et la callback queue est essentiel. C’est d’ailleurs une question qui revient très souvent en entretien. Savoir lire et manipuler la syntaxe ES6 est essentiel pour de nombreux projets.
Savoir coder des tests
Tout le monde est d’accord pour dire qu’écrire des tests automatisés est important. Seulement, impossible d’apprendre ça lors d’une formation accélérée. C’est pourtant une compétence qui, bien qu’elle ne soit pas forcément requise pour un poste de débutant, fait différencie deux candidats pour un même poste.
Les tests automatisés servent à construire une codebase durable et permissive aux changements. C’est le propre d’un code scalable et ce que chaque projet informatique cherche à atteindre. C’est pourquoi savoir coder des tests automatisés est une compétence très appréciée des employeurs.
Dans un premier temps, savoir clairement expliquer la différence entre un test unitaire, un test fonctionnel (ou d’implémentation) et un test end-to-end est essentiel.
Ensuite, apprenez à rédiger des tests fonctionnels sur vos applications NodeJS. C’est le type de test le plus facile à appréhender pour commencer et cet exercice vous forcera à repenser votre code pour qu’il soit testable plus facilement. Jest est la librairie la plus complète pour la rédaction de tests en JavaScript.
Dans un second temps vous pourrez vous intéresser aux tests unitaires qui vous demanderont d’apprendre à utiliser des spy, des stubs et des mocks.
Enfin, et c’est l’étape la plus difficile, comprendre la philosophie de test de l’application. Le fait de comprendre en quoi le test que vous devez rédiger va solidifier votre code va vous permettre d’écrire des tests pertinents et utiles. Vous vous rendrez compte qu’il ne faut pas tester unitairement toutes les fonctions de votre application mais qu’il faut tester une fonctionnalité tout en assurant une couverture de code par votre suite de tests.
Savoir manipuler une base de données SQL ou NoSQL
Contrairement aux tests, manipuler une base de données est souvent enseigné lors des formations accélérées. Que ce soit une base RDBMS comme MySQL ou une base de donnée NoSQL telle que MongoDB, savoir faire les opérations de base est essentiel pour pouvoir être développeur.
Seulement les compétences acquises à l’issue d’une formation se limitent souvent aux opérations CRUD. Pour maximiser vos chances d’être embauché en tant que développeur, il faut pousser vos connaissances plus loin.
Dans l’écosystème NodeJS, les projets sont souvent couplés avec soit une base SQL telle que MySQL ou PostgreSQL, soit avec MongoDB. Choisissez une des deux technologies et creusez vos connaissances en l’étudiant. Par exemple, vous pouvez apprendre à manipuler les agrégations dans mongoDB et à indexer vos données pour améliorer les performances de votre application Node.JS.
Savoir déployer dans le cloud
Certaines formations poussent les étudiants jusqu’au déploiement, pour d’autres, ce n’est pas forcément au programme. Or savoir déployer son projet perso est essentiel.
Bien qu’il y ait fort à parier qu’en entreprise vous n’utiliserez pas les mêmes technologies d’infrastructure pour déployer une application, savoir faire un déploiement est une compétence utile dans votre montée en compétences.
Prenez le temps d’essayer de déployer une mini app, même si vous ne l’avez pas développé, sur Heroku, sur AWS et sur des Functions as a Service. Essayez de mettre votre todo list que vous avez copié d’un tutoriel dans une image docker et de déployer cette image.
Connaître son écosystème
L’écosystème JavaScript est un des plus dynamique du développement web. Toutes les 5 minutes une nouvelle librairie devient populaire et menace de remplacer la précédente.
En tant que développeur NodeJS il est essentiel de connaître cet écosystème. Connaître les principaux frameworks NodeJS tels qu’ExpressJS, NestJS ou Adonis. Savoir ce qu’est la JAMStack, même si vous n’êtes pas développeur Frontend.
Connaître son écosystème permet aussi de savoir quel outil chercher suivant vos besoins. Lodash est une librairie fournissant de nombreuses fonctions helpers et est très appréciée des développeurs JavaScript. Axios est une des fonctions les plus populaires pour faire des appels HTTP.
Être capable de s’orienter sur Linux
La plupart des infrastructures de déploiement étant basées sur Linux, savoir manipuler un terminal, se connecter à une machine en SSH et exécuter certaines commandes de base est essentiel.
Si vous êtes sur mac, vous retrouverez cet environnement type Unix directement sur votre terminal. Vous pourrez expérimenter quasiment au même titre que sur un poste Linux. Quel que soit votre OS, vous pouvez installer une machine virtuelle sur votre poste et apprendre à manipuler Linux.
Avoir des notions de méthodologie agile
Là encore, pas la peine de maîtriser l’agilité pour avoir son premier poste de développeur. Toutefois, cette méthodologie de travail étant très répandue dans l’écosystème français, vous pouvez gagner des points lors de votre entretien si vous savez montrer que vous en connaissez les bases.
Prenez le temps de lire quelques articles et regarder quelques vidéos YouTube sur l’agilité. Connaître les rituels et les priorités va vous permettre de vous intégrer facilement dans votre future équipe.