De nos jours, de nombreux développeurs et ingénieurs créent des applications conçues pour fonctionner soit dans le navigateur, soit sur un appareil mobile. Pendant ce temps, ces applications sont prises en charge par des logiciels s’exécutant dans le cloud ou un centre de données local.
Le “ front-end ’‘ d’un logiciel se compose de toutes les parties qu’un utilisateur voit : les boutons, les fonctionnalités, les images, etc. Ensuite, il y a le “ Back-End ‘‘, qui comprend la base de données et d’autres éléments qui alimentent réellement le logiciel. Vous avez des développeurs et des ingénieurs front-end et Back-End, ainsi que des spécialistes “ full stack ’‘ qui peuvent concevoir et itérer à la fois front-end et Back-End.
Perennez l’exemple d’une application bancaire. Lorsque vous téléchargez l’application, vous pouvez vous connecter, vérifier votre solde, déposer des chèques avec l’appareil photo et payer certaines factures via un bouton. C’est la fonctionnalité frontale. Chaque fois que vous effectuez une action, l’application envoie une demande aux serveurs du centre de données de la banque, qui vérifient à leur tour les informations d’identification que votre application a stockées pour s’assurer qu’il s’agit bien de vous ; les serveurs consultent ensuite le solde et le renvoient à l’application – c’est la fonctionnalité principale « back end ».
Que vous souhaitiez devenir développeur/ingénieur front-end, Back-End ou Full-Stack, vous devez comprendre ce flux : le front-end présente à l’utilisateur une interface lui permettant de faire son travail ; puis le front-end envoie des demandes sous la forme d’une “ API ’‘ (Application Programming Interface) au Back-End, qui à son tour fait le travail réel et envoie un résultat au front-end.
Décomposons (et comparons) un peu plus ces rôles :
Les langages et outils nécessaires à la construction du front-end dépendent de la plateforme. Voici quelques exemples :
Ce dernier point nécessite quelques éclaircissements. Le navigateur Web est lui-même une plate-forme logicielle capable d’exécuter des applications ; ce n’est pas seulement un visualiseur de pages Web. Il y a un moteur JavaScript intégré. En utilisant JavaScript, vous pouvez créer des applications entières qui s’exécutent dans le navigateur lui-même.
Cependant, JavaScript est un langage un peu désordonné et il est facile d’écrire du code buggy avec. Microsoft a créé un langage appelé TypeScript qui est une sorte d’extension de JavaScript. Vous écrivez votre code en TypeScript, et il est converti en JavaScript, qui s’exécute finalement dans le navigateur.
Ce n’est pas la limite de ce que les développeurs frontaux doivent savoir : selon Lightcast (anciennement Emsi Burning Glass), qui collecte et analyse des millions d’offres d’emploi à travers le pays, les compétences des développeurs frontaux “ chaudes ’‘ comprennent :
En outre, de nombreuses offres d’emploi énumèrent les “ compétences générales ’‘ suivantes :
Que vous choisissiez un parcours scolaire formel ou que vous appreniez ces compétences par vous-même, gardez à l’esprit que les employeurs du monde entier vous soumettront probablement à un entretien technique avant l’embauche, où il vous sera demandé de construire, d’itérer et éventuellement de résoudre certains problèmes. Lors de la préparation d’un entretien d’embauche, il est également utile d’envoyer au responsable du recrutement un portfolio de vos travaux antérieurs afin qu’il sache ce que vous êtes capable de faire.
Les logiciels Back-End s’exécutent généralement sur des machines Linux ou Windows hébergées dans un cloud. Ces applications et services obéissent aux demandes provenant du front-end via l’API ; ils vérifient la sécurité et les informations d’identification, puis se connectent aux bases de données et effectuent le travail requis. (MacOS peut techniquement servir de backend, mais en raison des prix élevés des licences, la plupart des entreprises ne l’utilisent pas pour leur plate-forme Back-End.)
Le développement Back-End dispose d’un ensemble presque illimité d’outils et de langages. Cependant, il y en a peu qui sont les plus couramment utilisés de nos jours :
En plus des langues ci-dessus, les applications Back-End doivent généralement se connecter à une base de données. Les développeurs Back-End doivent devenir aptes à écrire ce code de base de données. Voici quelques-unes des bases de données les plus courantes utilisées :
– Bases de données SQL. Il existe de nombreux exemples ici, notamment :
– Bases de données Il en existe plusieurs, mais quelques exemples courants incluent :
La répartition des compétences populaires des développeurs Back-End de Lightcast comprend :
En plus de “ définir les compétences ’‘, qui sont les compétences quotidiennes dont les développeurs Back-End ont besoin pour accomplir leurs tâches au mieux de leurs capacités :
En outre, les ingénieurs Back-End doivent avoir une solide compréhension des concepts de niveau supérieur tels que les structures de données, les bases de données relationnelles, Scrum, le développement d’applications et Agile. C’est une tâche complexe avec beaucoup de travail, c’est pourquoi les meilleurs développeurs Back-End peuvent prendre des années pour apprendre pleinement leur métier.
Les grandes entreprises embauchent généralement des personnes spécialisées dans le développement front-end ou Back-End, mais pas les deux. Néanmoins, la plupart des développeurs commencent par étudier les deux, et finissent par graviter vers l’un ou l’autre, à quel point ils développent leurs compétences à la fin particulière.
Cependant, les petites entreprises n’ont souvent pas le budget nécessaire pour embaucher des développeurs frontaux et Back-End distincts. En tant que tel, ils embaucheront généralement des personnes capables de faire les deux, des personnes appelées développeurs Full-Stack. Cela nécessite de devenir aussi compétent que possible dans le développement front-end et Back-End : bien que vous n’ayez pas à apprendre les principes du développement front-end ou Back-End dans un ordre particulier, beaucoup choisissent de commencer par le front-end avant de passer au Back-End .
Comme pour le développement front-end et Back-End, se lancer dans des entretiens d’embauche de développeurs complets avec un portefeuille (et peut-être quelques dépôts GitHub) de travaux antérieurs peut grandement vous aider à réussir et à vous démarquer dans un domaine surpeuplé de candidats. Les intervieweurs voudront non seulement que vous maîtrisiez pleinement les compétences, mais aussi que vous fassiez preuve d’adaptabilité, car le développement complet est un domaine où les défis (et les opportunités) peuvent survenir très rapidement.
Cela peut prendre un certain temps pour que vous décidiez de poursuivre le développement front-end, Back-End ou Full-Stack. Des cours en ligne gratuits tels que w3schools peuvent vous aider à affiner vos intérêts et votre concentration.
Une fois que vous avez décidé d’un objectif particulier, perfectionnez vos compétences. Par exemple, les développeurs Back-End deviennent généralement des experts dans l’écriture de code qui se connecte (en toute sécurité) aux bases de données. Les développeurs frontaux deviennent généralement des experts des aspects visuels tels que la mise en page en HTML et CSS. L’acquisition de compétences est un processus sans fin ; par exemple, vous devrez vous tenir au courant des nouvelles fonctionnalités offertes par Amazon Web Services (AWS) et Microsoft Azure, les services cloud qui alimentent de nombreux sites Web, applications et services.
Cependant, si vous maîtrisez les compétences nécessaires, vous pouvez également débloquer une compensation supérieure. Selon la dernière édition du Dice Tech Salary Report, les ingénieurs Back-End peuvent gagner en moyenne 129 150 $ par an, tandis que les développeurs Full-Stack pourraient retirer 116 856 $ par an. Selon Lightcast, le salaire moyenne des développeurs front-end est de 97 052 $ , ce qui peut augmenter avec l’expérience et la maîtrise.