Claire et Thibaut sont associés chez Modulo-tech. Modulo-tech a pour vocation de pallier l’écart qu’il existe entre la sortie des écoles de code et le monde du travail. Cela se traduit de 2 façons différentes : la Modulo Academy qui est un organisme de formation, ainsi que le réseau Modulo (qui compte plus de 350 membres), pour aider les membres à monter en compétences. Thibaut, développeur de métier, vous présente dans ce cours les principales technologies issues de JavaScript à comprendre pour bien commencer sa carrière de développeur.
Node.js
A l’origine, JavaScript est un langage de programmation créé dans les années 90 permettant de faire du front-end (ajouter des animations sur des pages web notamment). A partir de 2012, les technologies ont évolué et ont permis de notamment créer Node.js.
Il n’y a pas de réelle différence entre JavaScript et Node.js. JavaScript est à l’origine une technologie front-end, c’est-à-dire qu’elle ne permet de créer que l’interface utilisateur. Node.js ajoute à JavaScript une sur-couche de fonctionnalités permettant de créer le back-end, l’architecture du site web. JavaScript tout seul ne permettait pas jusqu’alors de faire des choses simples telles qu’écrire dans une base de données, ou gérer un serveur. Le langage étant le même, il est simple d’apprendre à utiliser Node.js lorsqu’on connaît déjà JavaScript, il suffira de se former aux fonctionnalités relatives au back-end.
React
React est souvent appelé par abus de langage “framework”, mais techniquement c’est une librairie. Un framework est un cadre de travail, qui force à organiser la structure du code d’une certaine manière. React ne force à rien, on peut coder de la manière que l’on souhaite, ce sont plutôt les conventions qui font que les développeurs l’organisent tous de la même façon, c’est pour cela que React est souvent appelé “framework”, à tort.
React est certainement la technologie front la plus utilisée au monde et permet de créer des animations très dynamiques. Il a été créé par Facebook et avait été testé à l’origine pour charger les likes sur les posts sans avoir à recharger la page entièrement.
React Native
React et React Native ont tous les deux été créés par Facebook et ont donc la même structure. Mais ils ne servent pas du tout à faire la même chose ! React permet de créer des sites web classiques, alors que React Native permet de créer des applications pour mobile. Ce dernier permet de gérer des fonctionnalités exclusives aux mobiles (géolocalisation, caméra…). Une fois que l’on a terminé de créer son application avec React Native, on va pouvoir la convertir directement en langage natif iOS ou Android.
React Native a pour avantage de pouvoir passer très facilement d’un site web à une application mobile, mais est limité par ses propres fonctionnalités en comparaison avec une application codée entièrement en natif mobile.
Comment bien commencer sa carrière de développeur sur JavaScript ?
Selon Claire et Thibaut, la plupart des écoles de code sont de très bonne qualité. Mais il est impossible selon eux de devenir un développeur aguerri en quelques mois. Généralement les écoles de code vont vous mettre le pied à l’étrier, mais il faut prévoir du temps pour digérer ce que l’on y a appris. Il ne faut pas s’intéresser qu’aux langages de programmation, il faut également se pencher sur des thématiques plus larges telles que le software craftsmanship.
Le software craftsmanship est un manifeste qui porte sur les bonnes pratiques du développement web. Selon ce manifeste, il faut considérer le développement web comme un artisanat. Il a été repris par Robert C. Martin (appelé “Uncle Bob” par la communauté des développeurs) dans son célèbre ouvrage Clean Code. Ce manifeste place la qualité du code au-dessus de tout : passer plus de temps à créer du code de qualité pour gagner du temps par la suite.
Quelles ressources consulter pour bien se former ?
- Pour se former au JavaScript : le livre “JavaScript for Impatient Programmers” d’Axel Rauschmayer
- Pour Node.js : la note de Thomas Gentilhomme
- Pour React : la documentation React est très bien faite, en anglais et en français
- Pour React Native : la documentation officielle ainsi que la documentation Expo