Devenez un développeur web Frontend, Backend, Fullstack ou DevOps avec ce guide visuel.
Il n’y a jamais eu de meilleur moment pour apprendre à coder ou pour se réorienter vers l’ingénierie logicielle. La demande de développeurs web n’a jamais été aussi forte, et elle ne fait qu’augmenter. En conséquence, les options de formation en développement web sur le marché sont nombreuses.
Si vous lisez cet article, c’est probablement parce que vous vous posez les questions suivantes : Quel type de ‘formation développeur web’ me convient ? Comment devenir un bon développeur web? Comment bien se former en tant que développeur web ? Ou encore : quelle voie privilégier pour réussir dans ce domaine ?
Aujourd’hui , Il existe une multitude de tutoriels gratuits et payants en ligne qui vous permettront d’acquérir les compétences nécessaires pour obtenir un emploi de développeur web, sans diplôme en informatique.
Cet article détaille les compétences nécessaires et les tutoriels correspondants pour les apprendre efficacement. Le guide illustré est fourni par Kamran Ahmed et peut être trouvé sur roadmaps.sh ou sur le dépôt GitHub .
Ne soyez pas intimidé par la feuille de route. Elle peut sembler longue, mais on va la décomposer pour que vous puissiez apprendre chaque partie, étape par étape.
Cet article sera structuré comme suit :
L’ensemble des livres et des formations pour devenir développeur web mentionnés dans cet article ont été sélectionnés par mes soins pour la qualité de leur contenu. Et pour certains d’entre eux, je reçois une rémunération si vous utilisez les liens dans l’article.
La plupart des ressources citées sur l’article sont en anglais. L’auteur original de l’article étant lui-même américain.
1. Les incontournables de l’apprentissage
Commençons par les compétences que tout développeur doit acquérir, celles qui seront utilisées dans l’ensemble des différents parcours – Frontend, Backend, ou DevOps. Les concepts de programmation que tout développeur web doit connaître.
Pour être efficace en tant que développeur, vous devez maîtriser la ligne de commande, savoir comment contrôler la version de votre code avec Git et comprendre les principes fondamentaux du web.
La ligne de commande
La ligne de commande est la façon dont vous exécutez votre code. Vous devez être capable de naviguer et d’exécuter les commandes requises. Plus vous maîtriserez la ligne de commande, plus vous serez efficace en tant que développeur.
- La ligne de commande par l’exemple — un excellent livre pour apprendre à utiliser la ligne de commande.
- Linux Command Line Basics – ce lien ne fonctionne plus
- The Linux Command Line: A Complete Introduction – une introduction complète à la ligne de commande sous Linux
Le choix de l’éditeur de texte
VS Code est le choix numéro un des développeurs web, ce qui en fait un excellent point de départ – c’est personnellement celui que j’utilise. Il est gratuit et open source, avec des tonnes de plugins vous permettant d’être plus productif. Cependant, il existe de nombreuses autres options excellentes telles que Atom, WebStorm ou Vim (pour les inconditionnels).
L’éditeur de texte est l’endroit où vous écrirez tout votre code, alors que le terminal est l’endroit où vous l’exécuterez. En tant que développeur, c’est un peu votre « chez vous ». Prenez le temps de choisir le bon éditeur, de configurer les plugins et d’apprendre les touches de raccourci. Disposer du bon flux de travail peut augmenter considérablement votre productivité.
Git et le contrôle de version
Git est l’outil utilisé pour enregistrer le code et créer différentes versions, ce qui vous permet de collaborer avec d’autres développeurs. Le meilleur endroit pour stocker du code et collaborer sur des logiciels open source est GitHub.
- Learn Git from GitHub – la documentation officielle permettant de paramétrer Git et de créer un dépôt
- Ranked Git tutorials – tutoriels, cours et livres soumis par des développeurs et votés par les programmeurs qui les utilisent
- Git Complete: The definitive, step-by-step guide to Git – un guide complet pour apprendre à maîtriser Git étape par étape
Les fondamentaux du Web
- HTTP / HTTPS – le protocole de transfert hypertexte et sa version sécurisée
- SSH – le protocole permettant d’établir une communication chiffrée
- Character Encodings – comprendre le codage des caractères
- Model-View-Controller (MVC) – tout savoir sur le motif d’architecture logicielle « Modèle-vue-contrôleur »
- REST – le style d’architecture permettant de construire des applications
2. Introduction à la programmation
Par où commencer si vous êtes novice en matière de codage ?
Avant de choisir telle ou telle spécialisation, vous devez acquérir des bases solides en programmation. Aux nouveaux développeurs, je recommande vivement d’apprendre JavaScript comme premier langage.
JS peut être utilisé par les développeurs Frontend et Backend, permettant ainsi de devenir un développeur fullstack en se concentrant sur la maîtrise d’un seul et unique langage. Les avantages de JavaScript sont les suivants :
- JavaScript est un langage relativement facile à apprendre
- JavaScript est nécessaire pour créer des applications Web, car il s’agit du langage de programmation qui s’exécute dans le navigateur.
- JavaScript peut être utilisé sur le front-end et le back-end, ce qui vous permet d’écrire des applications complètes avec un seul langage.
- Il existe des tonnes d’offres d’emploi pour les développeurs JavaScript
Si vous savez que vous ne voulez travailler qu’avec des données ou exclusivement sur le backend, l’apprentissage de Python est l’autre option qui peut vous convenir en tant que débutant.
Il existe de nombreuses possibilités pour commencer à coder gratuitement. freeCodeCamp et Codecademy sont d’excellents choix et sont parfaits pour établir vos bases.
Une fois que vous avez acquis les bases, la prochaine étape consiste à suivre le cours gratuit JavaScript30 ou le cours premium BeginnerJavaScript.
Wes Bos vous enseigne les concepts de base de JavaScript en élaborant des projets réels. Je vous conseille d’essayer de réaliser des projets réels aussi rapidement que possible. Les projets sont le meilleur moyen d’acquérir des compétences en développement et, par la même occasion, de constituer un portfolio pour les entretiens d’embauche.
Si vous voulez accélérer les choses, voici d’excellents cours premium, sur Udemy, pour développeur web débutant en JS et permettant de progresser rapidement :
Si par contre vous cherchez des cours avec une option d’abonnement qui vous mèneront du débutant au pro, Pluralsight est une excellente option. Une fois l’essai gratuit terminé, vous devez souscrire l’abonnement pour accéder à tout le contenu du site, qui se révèle excellent sur à peu près tout.
Pluralsight
3. Apprendre le Développement Frontend
Le développement frontend consiste à construire et apprendre aà créer des interfaces utilisateur (UI) pour le web.
Cela nécessite d’avoir de solides bases en JavaScript et de comprendre le fonctionnement de HTML/CSS.
Les bibliothèques côté client les plus populaires: – React, Angular et Vue – sont toutes écrites en JavaScript. Il est essentiel de bien connaître JavaScript pour passer au niveau supérieur et disposer des compétences requises pour créer des applications complexes.
A lire aussi: Introduction au Javascript
Une fois que vous aurez acquis des bases solides en JavaScript, vous devrez apprendre le HTML et le CSS. Même si l’interface utilisateur est codée en JavaScript, elle génère toujours du HTML et est stylisée par CSS.
Reportez-vous aux ressources de la section “Introduction à la programmation” si vous avez besoin de travailler davantage avec JavaScript.
The Complete 2021 Web Development Bootcamp
Le cours le plus complet sur le développement web. Commencez avec HTML et CSS, apprenez JavaScript et son interaction avec le DOM, et pour finir, construisez une application web complète.
The Web Developer Bootcamp
L’HTML et le CSS
HTML et CSS sont généralement appris ensemble.
Le HTML correspond au squelette de la page (qui lui confère sa structure) et le CSS est le langage qui lui donne son style.
Les bibliothèques JavaScript de composants UI (React, Vue, Angular)
Le développement de l’interface utilisateur (UI) moderne s’est orienté vers un modèle de composants avec trois bibliothèques utilisées principalement par les ingénieurs frontend professionnels : React, Vue et Angular.
Il est préférable de connaître parfaitement l’une de ces bibliothèques plutôt que d’essayer d’apprendre les trois. Avec un peu d’expérience, vous serez davantage en mesure de diversifier vos connaissances si l’entreprise dans laquelle vous travaillez utilise un framework que vous n’avez pas appris. React est le plus populaire, mais Vue et Angular ont été eux aussi rapidement adoptés.
React
The Official React Introduction: reactjs.org
React — The Complete Guide (incl. Hooks, React Router, Redux)
A consulter : Offres d’emploi Développeurs React JS
Vue
L’introduction Official de Vuejs (en français)
Vue JS 2 — The Complete Guide (incl. Vue Router & Vuex)
The Ultimate Vue JS 2 Developers Course
Vue JS Essentials with Vuex and Vue Router
Alt tag : apprendre udemy en 11 heures formation udemy
Angular
The Complete Angular Course: Beginner to Advanced
4. Apprendre le développement du backend
Apprenez à créer des API et à écrire du code serveur.
Le backend est l’endroit où vous communiquez avec la base de données, où vous gérez la logique commerciale et où vous envoyez les données nécessaires au frontend.
- A lire aussi: Développement front-end et back-end : Quelles différences ?
Votre backend / serveur peut être écrit dans n’importe quel langage.
Je vous recommande de commencer par Node/JavaScript car il est relativement facile à apprendre mais aussi incroyablement puissant.
De plus, vous pouvez plus facilement faire la transition entre le frontend et le backend puisque vous utiliserez le même langage pour chacun d’entre eux. Dans la suite de l’article je présenterai également d’autres langages possibles pour apprendre le développement backend – Python, Go, Ruby on Rails.
– A lire aussi: Quel langage de programmation apprendre ?
Travailler avec une base de données est essentiel en tant qu’ingénieur backend, c’est pourquoi j’ai choisi de vous donner une liste de tutoriels pour apprendre SQL, NoSQL et GraphQL. Si NoSQL est le plus populaire à ce jour, SQL reste de loin le type de base de données le plus utilisé et il est indispensable de l’apprendre.
Node.js
Node est un environnement d’exécution JavaScript qui peut être utilisé pour construire des API sur le backend/serveur.
The Complete Node.js Developer Course (3rd Edition)
The Complete Node.js Developer Course (3rd Edition)
Learn Node.js by building real-world applications with Node JS, Express, MongoDB, Jest, and more!
NodeJS — Développer Votre Première API Rest avec MySQL (2021)
NodeJS: Développer Votre Première API Rest avec MySQL (2021)
Développez facilement votre API Rest Node.JS à partir d’un dossier vide, avec Node.JS, Express.js et MySQL.
Une formation premium, par Wes Bos, développeur Full-stack à Canada, pour apprendre à créer des applications avec Node.js, Express et MongoDB.
Les bases de données
Comme son nom l’indique, la base de données est ce qui permet de stocker de façon permanente des données de votre application. Pour ce faire, le backend effectue une requête dans la base de données lors d’un appel API.
Il faut savoir qu’il existe deux types de base de données courants : SQL et NoSQL.
PostgreSQL / MySQL
Il s’agit de deux implémentations SQL de premier plan que vous rencontrerez dans la plupart des entreprises.
- The Ultimate MySQL Bootcamp: Go from SQL Beginner to Expert : Devenez un expert SQL en créant des bases de données complexes et en élaborant des rapports dans le cadre de projets concrets
- SQL & PostgreSQL for Beginners : Apprenez à créer une base de données en partant de zéro et à effectuer des requêtes SQL complexes
GraphQL
GraphQL n’est pas une base de données mais un langage de requête qui s’ajoute aux bases de données. Nombreux sont ceux qui pensent qu’il va révolutionner le développement d’applications et changer totalement la façon dont nous construisons les API. Il faut dire qu’il est de plus en plus adopté et utilisé par les géants de la technologie et les startups les plus performantes.
- The Modern GraphQL Bootcamp (Advanced Node.js and Apollo)
- GraphQL with React: The Complete Developers Guide
En parallèle, n’hésitez pas à essayer Hasura. Il vous permet de générer GraphQL à l’aide d’une interface Web et construit automatiquement une base de données Postgres pour vous.
MongoDB
Mongo est la base de données NoSQL la plus populaire utilisée avec Node. Cette dernière stocke les données dans des documents qui se présentent sous forme de paires clé/valeur et qui se transforment facilement en objets JSON et JavaScript. Il s’agit d’une
Python
Python est facile à utiliser pour les débutants, mais aussi largement utilisé par les géants de la technologie et les startups pour les développements backend, la science des données et les scripts.
Complete Python Bootcamp: Go from zero to hero in Python 3
2021 Complete Python Bootcamp From Zero to Hero in Python
Learn Python like a Professional Start from the basics and go all the way to creating your own applications and games.
Python and Django Full Stack Web Developer Bootcamp
Alt tag : formation python django full stack udemy
Go (Golang)
Bien que rapidement adopté, le langage Go est relativement récent. C’est un langage à typage statique, très développeur-friendly. Il est notamment idéal pour la création de services.
- Complete Go Bootcamp: Go from zero to hero (Golang)
- Web Development with Google’s Go Programming Language
Ruby on Rails
Ruby on Rails a été le langage de prédilection des startups pendant des années. Sa facilité d’utilisation et son langage conventionnel permettent de créer rapidement des produits.
5. Apprendre l’ingénierie DevOps
Apprenez à gérer l’infrastructure, le déploiement et les systèmes.
Les ingénieurs DevOps gèrent l’infrastructure d’une entreprise : ils mettent en place les processus de déploiement des applications web et sont chargés de la gestion du trafic sur le site.
Le cœur de mission des ingénieurs DevOps consiste à permettre aux autres équipes de mettre le code en production le plus rapidement possible et à s’assurer que les serveurs soient toujours opérationnels tout en envoyant le contenu à l’utilisateur final le plus rapidement possible.
Le champ d’action des ingénieurs DevOps est particulièrement vaste et leurs choix ont un impact sur chaque équipe d’engineering: architectes réseau, ingénieurs reseau, techniciens de réseau, chefs de projet Cloud…
Voici quelques sujets essentiels que tout ingénieur DevOps se doit de maîtriser :
- Linux : Linux est utilisé sur plus de 67 % des serveurs et est très probablement ce que vous utiliserez en tant qu’ingénieur DevOps. Il est donc essentiel de bien le comprendre.
- Sécurité : s’assurer que l’ensemble du cloud est sécurisé et crypté. Configurer également les API de manière à ce que tout le contenu soit servi via HTTPS et ne soit pas exposé aux attaques courantes.
- Ligne de commande / Terminaux : Nous évoquions l’importance de la ligne de commande dans la première section : elle est d’autant plus essentielle pour un ingénieur DevOps. Ce dernier doit connaître son fonctionnement et les commandes Linux sur le bout des doigts et être prêt à se connecter en SSH à des serveurs distants. Il est également amené à écrire des scripts et à automatiser des programmes pour l’ensemble de l’entreprise.
- Tests automatisés : Le DevOps met en place un système de tests automatisés afin que tout le code qui entre en production soit minutieusement vérifié et réduise les risques d’introduction de bogues ou de régressions.
- Intégration continue et livraison continue (CI/CD) : Mise en place d’un pipeline pour le déploiement afin que le code soit automatiquement fusionné dans la production tout en réduisant les points de contact manuels pour les développeurs individuels. L’utilisation de tests automatisés joue un rôle important dans le CI/CD.
- Conteneurs : Les conteneurs sont un élément essentiel de l’infrastructure, la plupart des startups et des géants de la technologie utilisant Docker et/ou Kubernetes. Un conteneur garantit que le code est toujours exécuté dans un environnement propre et reproductible.
- Fournisseurs de cloud : il s’agit de comprendre comment gérer des serveurs dans le cloud en utilisant l’un des fournisseurs les plus populaires tels que OVH, Cheops, AWS, ou Azure.
- Gestion des logs : Disposer d’une journalisation appropriée est essentiel. Elle permet de diagnostiquer les bugs et de trouver la cause profonde de tout problème dans une application.
6. JavaScript et codage en profondeur
Apprenez le langage JavaScript de fond en comble.
Nous vous recommandons fortement de travailler sur des projets réels dès que possible. Cependant, à un moment ou à un autre, il est possible que vous souhaitiez plonger dans les profondeurs de JavaScript et comprendre réellement comment cela fonctionne.
Il est en effet important de bien comprendre les structures de données, les algorithmes ainsi que d’autres connaissances générales en informatique.
You Don’t Know JavaScript (YDKJS) – C’est tout simplement le meilleur livre sur JavaScript. Si vous le lisez entièrement, vous connaîtrez l’intégralité du langage de base de JS. Lisez-le gratuitement sur GitHub ou achetez une version physique ou Kindle sur Amazon.
TypeScript – Si elle n’est pas obligatoire pour les débutants (à moins que vous n’utilisiez Angular), l’adoption de TypeScript croît rapidement et a enflammé le monde du JS. Beaucoup pensent que c’est l’avenir de JavaScript.
Data Structures in JavaScript – Construisez les structures de données les plus courantes à partir de la base en JavaScript. Cette série de vidéos est une excellente extension pour renforcer les connaissances que vous avez déjà acquises et constitue également une excellente ressource pour les entretiens.
Eloquent JavaScript – Un autre livre préféré des ingénieurs JavaScript. Il couvre un plus large éventail de sujets que YDKJS, notamment le navigateur et Node. Vous pouvez le lire gratuitement en ligne ou acheter un exemplaire physique ou un exemplaire Kindle sur Amazon.
Introduction to Algorithms – Bien qu’il ne soit pas le livre le plus adapté aux débutants, il est complet. Passez à cette étape une fois que vous sentez vraiment qu’il est temps de comprendre les algorithmes en profondeur.
Algorithms – Ce cours est enseigné en Java, mais les résultats d’apprentissage restent valables. Il vous permettra d’acquérir une compréhension approfondie des algorithmes les plus importants en informatique. Le cours est dispensé par Princeton sur Coursera.
7. Livres d’ingénierie logicielle
Cette sélection comporte 5 livres qui, pour certains d’entre eux, feront de vous un meilleur codeur en général et, pour d’autres, constitueront une ressource essentielle à un moment donné de votre carrière, par exemple lors d’entretiens d’embauche.
Il s’agit de livres que nous avons trouvé globalement utiles pour améliorer ma compréhension globale de la programmation et avoir un impact positif sur notre travail.
- Clean Code de Robert C Martin
- The Pragmatic Programmer d’Andrew Hunt & David Thomas
- The Effective Engineer d’Edmund Lau
- Cracking the Coding Interview de Gayle Laakmann McDowell
- The Art of Computer Programming de Donald Knuth
Si vous vous initiez au développement web, il est également fort probable que vous vous intéressiez aux startups. Voici quelques-uns des meilleurs livres sur les startups et les philosophies de ceux qui ont réussi.
- The Lean Startup d’Eric Ries
- Zero to One de Peter Thiel
- Hooked de Nir Eyal
- Traction de Gabriel Weinberg and Justin Mares
- The Hard Thing About Hard Things de Ben Horowitz
8. Conseils emploi et conclusion
Quelques derniers conseils rapides sur la façon de rechercher un emploi et de poursuivre votre progression en tant que développeur.
En suivant ces tutoriels, vous serez en passe de devenir un développeur web professionnel. Faites en sorte de construire des projets réels aussi vite que possible et commencez à postuler à des emplois. Il n’y a pas meilleur moyen de prouver votre niveau à une entreprise que de lui présenter des projets et applications web que vous avez vous-même déployés.
N’oubliez pas que trouver un premier emploi requiert un peu d’endurance : plus vous postulez, plus vous avez de chances d’obtenir un entretien. Cela peut toutefois prendre des mois, alors armez vous de patience. Une fois votre premier job en poche, les prochains seront certainement plus faciles à obtenir.
Quelques conseils supplémentaires :
- Concentrez-vous sur des compétences uniques : (ex ; JavaScript, React, Node.) N’essayez pas de tout apprendre – React, Vue, Angular, jQuery, Backbone, etc. Progressez le plus possible en apprenant les langages/bibliothèques indispensables. En clair : allez plus en profondeur, moins en largeur.
- Constituez-vous un portfolio Web et utilisez l’API portfolio pour alimenter les données. La capacité à créer des applications est essentielle pour les recruteurs. Par exemple: un scraper web fait en Python.
- Postulez à autant d’emplois que possible, tant qu’ils correspondent à vos compétences. N’abandonnez pas : vous finirez par décrocher le job de vos rêves ! La route est longue, mais elle en vaut la peine si vous êtes passionné par ce que vous faites.
- Entraînez-vous pour les entretiens d’embauche. Utilisez “Cracking the Coding Interview” et des sites Web pour être à l’aise avec les questions posées par les recruteurs.
- Lisez la série “You Don’t Know JavaScript”. Cela vous permettra de connaître le langage de programmation sous toutes ses coutures.
- N’oubliez pas améliorer vos compétences relationnelles et personnnelles (soft-skills).
- Continuez à créer des projets – les projets sont le meilleur moyen d’apprendre et de montrer que vous comprenez comment créer des applications pour le monde réel.
Cet article est traduit de l’originale en anglais par Trey Huffine.
Leave a Reply