- Vers quel type de développement s’orienter (développeur web front end, back end, développeur logiciel, etc.) ;
- Par où commencer et quels langages de programmation étudier pour devenir développeur;
- Est-ce qu’apprendre un ou plusieurs langages informatiques en ligne suffit pour devenir développeur.
Vous êtes également nombreux à avoir suivi des tutoriels en ligne et à avoir appris à développer avec certains langages mais à ne pas vous sentir près / ne pas savoir quoi faire après.
J’essaie aujourd’hui de répondre le plus précisément et le plus clairement à toutes ces questions !
Les différents types de développement informatique
Si vous souhaitez vous lancer dans le développement, vous devez avant tout savoir qu’il existe aujourd’hui différents “types” de développeurs.
En effet, le numérique étant de plus en plus présent dans nos vies, les différents langages de programmation et leurs fonctionnalités deviennent de plus en plus pointues et donc les développeurs sont obligés de se spécialiser dans certains types de programmation : personne ne peut aujourd’hui prétendre maitriser tous les aspects du développement.
La première question à vous poser est donc “quel type de développeur veux-je devenir ?”. Aujourd’hui, vous pouvez notamment vous orienter vers :
- Le développement web (lié à la création de sites web) ;
- Le développement mobile ;
- Le développement de jeux vidéos ;
- Le développement logiciel (création de logiciels) ;
- Les métier de data scientist ou de développeur big data (gestion de données) ;
- La sécurité informatique ;
- …
Chacun de ces types de développement va avoir des exigences différentes et demander des qualités et des niveaux de compréhension et d’application différents.
Dans cet article, je vais me concentrer sur la spécialisation la plus demandée : le développement web.
Le métier de développeur web et le marché de l’emploi
Avant de répondre directement aux interrogations que vous vous posez, j’aimerais vous parler du métier de développeur web en particulier d’un point de vue “marché de l’emploi”.
Cette partie ne reflète que mon point de vue personnel mais je pense être plus ou moins lucide sur la situation en France aujourd’hui.
Les développeurs web sont aujourd’hui largement les développeurs les plus demandés sur le marché de l’emploi. C’est une chance pour ceux qui veulent travailler dans le développement puisque le développement web est également le type de développement dans lequel il est le plus simple de se lancer : les notions de base sont relativement simples à comprendre et la plupart des gens peuvent être rapidement “opérationnels”.
En plus de cela, il est évident que la demande de développeurs web sur le marché de l’emploi français est aujourd’hui plus importante que l’offre (= le nombre de développeurs disponibles).
Cela permet à la plupart des « développeurs » d’obtenir un premier travail relativement simplement et rapidement et c’est la raison principale pour laquelle (selon moi) il y a tant de mauvais développeurs web en entreprise aujourd’hui.
En plus de cela, notez que la filière du développement est assez particulière en France puisque c’est l’un des rares domaines où l’approche des recruteurs est (plus ou moins) “à l’américaine”. Concrètement, cela signifie qu’il n’est pas strictement obligatoire d’avoir un “diplôme” pour décrocher un job (même si ça aide bien entendu).
Concrètement, si vous cherchez simplement un emploi dans le domaine du développement web et que vous avez un diplôme quelconque, il y a de fortes chances que vous soyez rapidement recruté même si vous êtes un mauvais développeur. Si vous n’avez pas de diplôme, vous avez également toutes vos chances d’obtenir un emploi mais vous devrez certainement prouver en entretien d’embauche que vous savez plus ou moins ce que vous faites en répondant correctement à des questions théoriques ou en résolvant des exercices.
Dans tous les cas, l’objectif selon moi ne devrait jamais être de décrocher un un job mais plutôt d’arriver à un niveau ou on a confiance en ce que l’on fait et où on se rend compte qu’on maitrise son domaine;
Les outils et langages indispensables pour tout développeur web
Cet aparté étant terminé, il est temps de répondre à la question “comment devenir développeur web” et de vous donner la liste des outils et langages que vous devez maitriser pour devenir développeur web.
Afin de suivre une courbe d’apprentissage naturelle, je vais vous lister les outils et les langages dans l’ordre dans lequel vous allez devoir (selon moi) les étudier.
Développeur web front-end vs back-end vs full stack
Notez avant tout que je vais dans cette partie dissocier le développement web Front-End du développement Back-End puisque ce sont des métiers différents.
Grosso-modo, le développeur web front-end s’occupe du côté client c’est-à-dire de ce qui est visible par l’utilisateur final lorsqu’il affiche le site dans son navigateur.
Le développeur front-end s’occupe de la présentation des pages (design) et de la consistance de ce design sur les différent navigateurs et périphériques utilisés par les visiteurs, de l’ergonomie, etc.
Le développeur back-end travaille avec des langages “server-side” (côté serveur). Il est en charge de la conception et du déploiement de la logique fonctionnelle du code. Le back-end correspond à ce que se cache “sous le capot” : c’est l’endroit où vont être faites toutes les opérations sur les données. Ces opérations sont transparentes pour l’utilisateur final.
Le développeur web dit “full stack” est celui qui maitrise à la fois la partie front-end et la partie back-end. Ce type de développeur possède une vision d’ensemble et est bien évidemment le plus demandé.
Devenir développeur web font-end : la checklist
Pour faire du développement web, vous allez avant tout devoir télécharger un éditeur de texte ou IDE (Environnement de Développement Intégré). L’éditeur de texte ou l’IDE va vous permettre d’écrire vos fichiers de code, de les organiser, etc. Il existe de nombreux éditeurs / IDE très performants et gratuits aujourd’hui.
Ici, je vous recommande Visual Studio Code, un éditeur très performant et fonctionnant sur n’importe quel système.
Pour faire du développement web font-end, vous aurez également besoin d’un navigateur. Ici, je vous recommande d’utiliser Google Chrome et d’activer immédiatement les outils pour développeurs dont il dispose.
Une fois l’éditeur et le navigateur installés et configurés, il va être temps d’apprendre à coder en soi. En terme de développement front-end, vous n’aurez pas de choix à faire puisque les navigateurs ne comprennent en tout et pour tout que trois grands langages : le HTML, le CSS et le JavaScript.
Vous allez donc commencer par apprendre le HTML et le CSS et en premier lieu par bien comprendre le rôle de ces langages c’est-à-dire à quoi ils servent.
Côté HTML, comprenez le rôle des principaux éléments et attributs et commencez à apprendre à coder “proprement”, c’est-à-dire en respectant bien la sémantique.
Côté CSS, familiarisez vous avec la syntaxe et les propriétés liées au texte puis étudiez les modèles de positionnement en commençant avec le modèle des boites. Comprenez en profondeur comment fonctionnent les propriétés display et position puis attaquez ensuite le design responsive (adaptable) avec les media queries et les unités relatives comme le rem. Finalement, étudiez et maîtrisez les modèles de positionnement plus complexes des boites flexibles (flexbox) et des grilles.
Une fois que vous maitrisez bien le HTML et le CSS, vous allez vouloir apprendre votre premier véritable langage de programmation : le JavaScript.
Vous allez vouloir commencer par maitriser parfaitement les bases du langages : variables, types de données, conditions, boucles et fonctions. Ensuite, vous allez entrer dans la partie à la fois intéressante et intimidante pour des débutants avec les objets, la manipulation du DOM et la gestion des évènements.
Je vous conseille vivement de ne pas faire l’impasse là dessus et de vous accrocher jusqu’à avoir bien compris cela car c’est vraiment un aspect essentiel du métier.
Dès que vous êtes à l’aise avec les concepts d’objet, de DOM et d’API, vous allez pouvoir vous plonger dans des concepts JavaScript avancés comme l’asynchrone avec les promesses, async et await et l’API Fetch.
A ce stade, je préfère être honnête : le JavaScript est un langage connu pour être “simple à appréhender, difficile à maitriser”. En effet, les bases du JavaScript sont simples à assimiler mais le JavaScript est souvent cité comme le langage le plus difficile à totalement maîtriser parmi l’ensemble des langages web !
Il faut des années de pratique régulière et une certaine forme d’intelligence pour véritablement maitriser le Javascript aujourd’hui. Tout dépend donc de vous et de vos contraintes : jusqu’où voulez vous / pouvez vous pousser votre premier apprentissage ?
Je vous déconseille d’essayer de tout apprendre d’un coup ici. N’apprenez que le nécessaire, trouvez vous un travail et continuez d’apprendre constamment en pratiquant et en restant au courant des nouveautés ensuite.
Vous maitrisez désormais le HTML, le CSS et le JavaScript dans une certaine mesure. Vous êtes donc déjà capable de créer des sites statiques (sans traitement de données qui se fait côté serveur) et des interfaces graphiques en local (sur votre machine).
Si après avoir appris les trois langages, vous ne vous sentez pas capable de cela, c’est certainement que vous avez appris trop vite et n’avez pas assimilé. Je sais qu’aujourd’hui nous sommes tous pressés et qu’en particulier dans le domaine du web la plupart des gens veulent apprendre en un jour ou en une semaine à développer… Autant être honnête ici : ce n’est tout simplement pas possible tout simplement car il faut pratiquer un certain temps pour bien comprendre et être à l’aise avec certaines notions.
Pour commencer à comprendre vraiment comment fonctionnent le HTML, le CSS et le JavaScript et quand / pourquoi utiliser tel élément de langage plutôt que tel autre, il faut compter au moins 6 mois selon moi. Pour commencer à coder proprement et être autonome, vous pouvez en rajouter 6 autres.
Mon conseil ici une fois que vous en avez fini avec la théorie est de vous exercer avec différents projets (créer telle chose, copier tel design, etc.) et d’aller chercher les difficultés et de vous heurter à celles-ci. C’est véritablement comme cela que vous pourrez maîtriser les langages et que vous progresserez (notamment en JavaScript en recherchant différentes API et en les utilisant).
Une fois que vous maitriser le HTML, le CSS et le JavaScript et que vous avez créé vos premiers projets en local, vous allez vouloir les déployer sur le web. Il va ici falloir vous familiariser avec l’hébergement web.
Vous allez notamment devoir apprendre à enregistrer un nom de domaine, gérer un hébergement (comprendre comment utiliser un cpanel notamment) et à utiliser un logiciel FTP (Protocole de Transfert de Fichiers).
Concernant le choix de l’hébergeur, je ne peux pas véritablement vous conseiller puisqu’il va principalement dépendre de la qualité de l’hébergement recherché et de fonctionnalités spécifiques à votre projet. Personnellement, j’utilise Bluehost et SiteGround pour mes sites depuis des années et j’en suis très satisfait.
IONOS est également une bonne alternative, en particulier pour toutes les personnes se lançant sur le web car cet hébergeur propose des packs d’hébergement à partir de 1€ par mois durant la première année. Ce type d’offre est très intéressant pour tester toutes les fonctionnalités d’un hébergeur et se lancer sans risque.
A partir de là, les choix sont plus ouverts pour la suite de votre apprentissage. Si vous comptez travailler en entreprise, il va être indispensable de savoir utiliser Git et GitHub puisqu’environ 90% des entreprises liées au web utilisent cet outil aujourd’hui. Profitez en au passage pour apprendre à minima les bases d’un langage en ligne de commande car cela vous sera très utile dans votre carrière.
Ensuite, je vous recommande également fortement de vous plonger dans le monde merveilleux des frameworks, librairies et extensions. Le but des framework, librairies et extensions est de simplifier les développements en fournissant des ensembles de codes prêts à l’emploi et également de fournir un cadre de développement pour avoir un code plus clair et plus professionnel.
Ici, je vous recommande de commencer avec en commençant par SASS qui est un pré-processeur CSS qui va vous permettre de créer un code CSS plus clair et propre en utilisant des fonctionnalités comme les variables, fonction, l’imbrication ou l’héritage.
En termes de framework CSS, Bootstrap est aujourd’hui encore incontournable et ceci que vous travailliez en entreprise ou en freelance.
Au niveau des framework JavaScript, il existe 3 “big players” qui sont Angular, React et Vue. Je vous conseille d’étudier chacun d’entre eux rapidement puis de vous concentrer sur celui qui vous plait le plus pour le maitriser parfaitement.
Enfin, une fois cela terminé, je vous conseille également de vous pencher sur le fonctionnement du protocole HTTP (au moins les grandes bases) pour vous donner une vue d’ensemble du fonctionnement des sites web et du web en général et pour que vous puissiez bien comprendre sur quoi vous travaillez.
Il est également généralement considéré comme un gros plus de maitriser un ou plusieurs CMS (Système de gestion de contenu) comme WordPress ou PrestaShop puisque la plupart des entreprises utilisent un CMS comme base pour leur site et car les CMS seront des alliés de choix si vous comptez travailler en freelance.
Voilà tout ! Si vous faites l’effort d’apprendre cela, vous êtes déjà parmi les développeurs web front end disposant des meilleures connaissances théoriques. Vous devriez trouver un bon travail sans problème et il ne vous reste plus qu’à accumuler de l’expérience.
En résumé, pour être un excellent développeur web front end, vous devez dans cet ordre :
- Télécharger un éditeur de texte ou un IDE et vous familiariser avec ;
- Télécharger Google Chrome et apprendre à utiliser les outils pour développeurs ;
- Apprendre le HTML et le CSS “vanilla” (sans framework) ;
- Apprendre à déployer un site sur le web et à gérer un hébergement ;
- Savoir utiliser GitHub et un langage en ligne de commande ;
- Maitriser un framework CSS (Bootstrap) et au moins un framework Javascript (React, Angular ou Vue) ;
- Comprendre le protocole HTTP ;
- Etre familier du fonctionnement des CMS les plus connus (WordPress et PrestaShop) ;
- Avoir des notions en référencement naturel (SEO) et en web marketing.
Devenir développeur web back-end : la checklist
Le développement back-end est beaucoup plus ouvert que le développement front-end puisqu’il n’existe pas à priori de langage à connaitre obligatoirement.
Pour devenir développeur web back-end, vous devrez à nouveau utiliser un éditeur de texte ou IDE et devrez également posséder des bases en HTML et JavaScript à minima.
Ensuite, vous allez devoir apprendre un langage server-side. A ce niveau, vos choix sont ouverts. Vous pouvez choisir parmi PHP, Python, Ruby, C# ou même Javascript avec l’environnement Node.js (si vous avez lu la section ci-dessus, souvenez vous que j’ai dit que JavaScript était l’un des langages les plus complexes à maitriser totalement et ceci pour une raison : il permet de faire énormément de choses !).
Python est certainement le “meilleur” langage pour un débutant puisque ce langage permet d’acquérir de bons automatismes et possède une syntaxe simple. PHP est le langage généralement choisi par les débutants car c’est certainement le plus connu. Notez que celui-ci est cependant souvent décrié par les développeurs du fait de ses incohérences. Cette critique n’est qu’à moitié vraie et selon moi le PHP reste un excellent langage.
Node.js est un environnement d’exécution Javascript qui permet grosso-modo d’exécuter du JavaScript en dehors du navigateur. Cet environnement est excellent et nous offre des possibilités monstrueuses mais son apprentissage est certainement plus hermétique pour un débutant.
Les bases de chaque langage sont assez similaires donc n’hésitez pas à vous renseigner sur différents langages avant d’en choisir un que vous étudierez plus en profondeur.
Ici, vous allez commencer par vous concentrer sur la syntaxe de base, puis sur les variables, types de données, structures de contrôle (fonctions, conditions et boucles). Vous irez ensuite vers du plus complexes comme la gestion des paquets et l’étude du protocole HTTP en profondeur.
Dès que vous maitrisez bien un langage, vous allez absolument vouloir choisir un framework lié à celui-ci et apprendre à l’utiliser. En effet, en back-end encore plus qu’en front-end, les framework vont vous faire gagner beaucoup de temps en développement et vous surtout rendre vos développements beaucoup plus robustes (avec la limitation des erreurs et des failles potentielles dans le code notamment).
Si vous utilisez PHP, vous pourrez vous pencher sur le framework Laravel ou sur Symfony.
Si vous choisissez Python, vous opterez certainement pour Django.
Si vous avez appris Ruby, vous continuerez avec Ruby on Rails.
Si vous développez avec C#, vous pourrez utiliser ASP.NET.
Si vous avez opté pour Node.js, vous pourrez utiliser Express, Koa ou AdonisJs.
Une grande partie de votre travail en tant que développeur back-end va être de fournir une infrastructure de gestion des données. Pour arriver à cela, vous allez certainement travailler avec des bases de données. Vous devez donc apprendre à manipuler des bases de données.
Commencez par vous familiariser avec la syntaxe du SQL (Langage de Requêtes Structurées) puis passez en revue différents systèmes de gestion de bases de données (MySQL, SQLite, AWS, mongoDB…) avant d’en choisir un à maitriser. Ici, MySQL est le choix par défaut puisque c’est le système le plus utilisé.
Enfin, en tant que développeur web back-end, vous devez absolument maitriser savoir utiliser Git et GitHub et savoir également en détail comment fonctionne un serveur (Apache ou Nginx).
Comme pour le développement web front-end, il est préférable de savoir comment fonctionnent les CMS les plus connus mais côté back-end plutôt que côté interface cette fois.
En résumé, le développeur web back end doit :
- Savoir utiliser un éditeur de texte ou IDE ;
- Posséder des bases solides en HTML et en JavaScript et avoir des notions en CSS ;
- Comprendre et savoir utiliser en détail HTTP et pouvoir gérer un serveur Apache ou Nginx ;
- Savoir utiliser GitHub ;
- Connaitre un ou plusieurs langages server-side et un ou plusieurs frameworks relatifs à ce ou ces langages ;
- Savoir utiliser un système de gestion de base de données et savoir administrer des bases de données ;
- Connaitre le fonctionnement d’un ou de plusieurs CMS idéalement.
Bonjour,
Merci beaucoup pour cet article, je pense qu’il est très intéressant pour les débutants comme moi, car il fera office de chemin/parcours d’apprentissage.
Bonne continuation.
Bonjour Pierre,
Merci beaucoup pour tous ces renseignements très utiles pour le développement web.
Le suivi de tes cours est très faciles car ils sont clairs et agréables à étudier…
Encore merci ? !
Bonjour Pierre et merci pour toutes ces informations et tutos 😉
J’ai suivi le HTML/CSS sur Youtube, le Javascript, le PhP. ton article me permet de voir comment évoluer de façon cohérente quant à mes objectifs, merci encore !
Un autre Pierre 😉
Merci beaucoup PG !
Je suis actuellement ton cours sur Bootstrap 4, moi j’ai choisi le front-end !
Je m’entraîne progressivement en JS et effectivement je te soutiens quand tu dis qu’il faut des années pour maitriser.
Bonjour Pierre!
ça fais vraiment un moment que j’ai commencé a te suivre et à suivre tes tutoriels sur ta chaîne YouTube vraiment merci pour tous! je commences a assimiler les notions de bases des langages comme HTML, CSS et PHP. Tes cours sont très bien expliqué donc facile à assimiler mille merci.
Parc contre les cours étaient pour la plupart ceux de 2014 et 2015 il va falloir que je me mette à jour après avoir remarquer la mise à jour sur le site. Longue vie à toi
Cet article est vraiment intéressant mais dans la liste des langages qu’un développeur backend doit maîtriser vous n’avez pas mentionné Java principalement la plateforme JavaEE, le framework spring boot qui est tres robuste, important pour la creation des microservices avec spring cloud.
bonjour, je voulais juste savoir: combien de language qu’il faut utiliser pour un site web fonctionne correctement?
Bonjour,
Pour un site web, vous devez obligatoirement maitriser HTML et CSS. Ensuite, il n’y a pas de « nombre minimum de langages à utiliser »… Tout dépend de ce que vous souhaitez réaliser.
Cordialement,
Merci Pierre pour toutes ces infos, j’avais un peu de mal à trouver de bonnes sources dans toute cette « jungle » du dev et de par tes cours ou des articles comme celui-ci, tu m’as aiguillé de façon plus précise sur la bonne voie à emprunter. Allez, je retourne à mon cours! 🙂