Les spécialisations web
Si le métier de développeur est extrêmement varié, celui de développeur web l’est tout autant. Réaliser un site web ou une application demande des compétences techniques différentes. Si autrefois un développeur web pouvait gérer tous les aspects techniques d’un projet, aujourd’hui, la richesse de la production web et des technologies actuelles ont donné lieu à des spécialisations.
Pourquoi se spécialiser ?
Un développeur se doit d’avoir des connaissances générales. Mais pour grimper en expertise et répondre à des problématiques bien différentes, les développeurs sont amenés à se spécialiser. Ces nombreuses spécialisations apportent une fragmentation très importante du métier de développeur. Il y a différents types de développeur selon la plateforme : logiciel, web, jeux vidéo… Puis plusieurs langages de programmation, puis plusieurs outils, librairies ou frameworks au sein de ces langages. C’est l’une des raisons pour lesquelles le métier de développeur est en pénurie de compétences. Devenir développeur aujourd’hui, c’est donc la perspective de trouver un secteur en forte demande !
Les différents développeurs web
Le développeur front-end
Il donne vie à nos écransLe développeur front-end s’occupe du front, à savoir ce qui se passe à l’écran, du côté de l’utilisateur. Son rôle est multiple : gérer l’interactivité entre l’utilisateur et l’interface, la fluidité des animations que l’on voit à l’écran, etc.
Son rôle est à dissocier du webdesigner, qui lui, réalise les maquettes graphiques. Ce sera ensuite au développeur d’intégrer les maquettes et d’y ajouter les interactions et animations souhaitées. Concernant les technologies dites « front-end » on retrouve le HTML et CSS pour décrire et mettre en page ces contenus, ainsi que le Javascript pour la gestion des interactions, langage de prédilection du dev front.
Bien souvent, le développeur front-end s’arme également d’une chaîne d’outils lui permettant d’avoir un environnement de développement automatique : l’utilisation de bundlers comme Gulp, Parcel ou Webpack, de langages comme SASS pour générer du code CSS, ou encore des modules JavaScript créés par la communauté.
Le développement front-end peut d’ailleurs se subdiviser en plusieurs spécialités, selon sa librairie ou son framework de prédilection : React, Angular, Vue… Mais puisque toutes ces technologies sont basées sur du JavaScript, on peut facilement passer de l’une à l’autre. Un développeur Angular peut être embauché pour faire du Vue par exemple.
Le développeur front-end peut aussi être tenté par d’autres environnements que le navigateur. Un développeur React pourra par exemple créer des applications mobiles avec React-Native. Les devs peuvent aussi se laisser tenter par le back-end, en utilisant Node.js, une plateforme logicielle permettant d’utiliser JavaScript côté serveur. Mais ça, c’est du bonus.
Le développeur back-end
Le travail de l’ombreLe développeur back-end, par opposition au développeur front-end, s’occupe quant à lui de ce que l’on ne voit pas à l’écran, de l’arrière boutique. Et en coulisses, il se passe pas mal de choses. Par exemple, le traitement, l’enregistrement, la gestion et la sécurité des données. En gros, c’est la partie invisible du développement web mais essentielle au fonctionnement d’une application ou d’un site web.
Côté back, il y a beaucoup de technologies disponibles. Contrairement à l’environnement front-end aujourd’hui exclusivement en JavaScript, le back-end ne connaît pas les contraintes liées à la compatibilité navigateur. Pour utiliser un langage, il suffit qu’il soit installé sur le serveur ; pas besoin d’utiliser un langage que tous les navigateurs connaissent. De ce fait, il y a donc toute une variété de technos : PHP, Java, Ruby, Python…
Bien souvent, et même si les concepts de programmation sont semblables entre les différents langages, le développeur est spécialisé sur un langage. Plus que ça, il est souvent spécialisé dans une technologie en particulier. Plutôt que des « développeurs back », on trouvera plutôt des « développeurs PHP » ou « développeurs Python », voire des « développeurs Symfony » ou « développeur Django ».
Cette forte spécialisation provient de la grande responsabilité que les développeurs back-end ont sur les épaules. En effet, les problématiques y sont critiques : la sécurité, la fiabilité et les performances notamment. Lorsqu’une base de données est piratée, lorsque le serveur est tombé ou que l’application est lente, cela vient souvent d’une négligence ou d’une méconnaissance des technologies. Et on ne peut les blâmer, il y a tellement de choses à connaître qu’on a vite fait d’oublier un détail, qui peut alors être fatal. Se spécialiser dans une techno très précise permet de limiter le périmètre à maîtriser, afin de s’assurer d’un haut niveau d’expertise.
L’intégrateur web
Entre le webdesigner et le développeur front-endParfois occulté entre les métiers de webdesigner et de développeur front-end, l’intégrateur web reste un métier à part entière. Même si cela ne représente pas la majorité, il n’est pas rare de trouver des graphistes sachant intégrer une maquette. Le développeur front-end lui aussi saura intégrer une maquette, même s’il a tendance à préférer JavaScript. Mais webdesigner et dev front oublient parfois certaines subtilités inhérentes à l’intégration web.
Tout d’abord, l’intégrateur aura le souci du détail : la bonne typo, le bon interligne, la compatibilité navigateur, le responsive web design… Mais au-delà de la restitution du graphisme dans le navigateur, l’intégrateur est garant de « l’utilisabilité » de la page web créée. Il faut que le contenu soit facilement accessible, et cela passe par tout un tas de bonnes pratiques de qualité web.
Par exemple, les interactions doivent être compréhensibles : un bouton peut recevoir un style différent au survol de la souris pour montrer qu’il est cliquable. Mais il faut que ce soit également ergonomique sur mobile où il n’y a pas de souris, ou encore que l’on puisse naviguer au clavier. L’accessibilité concerne également les navigateurs pour personnes malvoyantes qui feront une lecture orale du contenu. Des détails qui comptent.
Travailler l’accessibilité a également un impact sur les utilisateurs disposant d’un navigateur ancien ou d’une connexion lente. D’ailleurs, l’intégrateur web a aussi en charge une partie de l’optimisation des performances, en travaillant sur des problématiques comme la compression des ressources.
Enfin, l’intégrateur façonne la sémantique HTML lors de l’intégration. Avec les spécifications HTML5 mais également les microdonnées, permettant de donner encore un peu plus d’informations sur le contenu. Cela permet notamment d’optimiser l’intégration pour le référencement naturel, et en fait donc une problématique primordiale sur de nombreux projets web.
Le développeur full-stack
En un mot : la polyvalenceC’est le développeur web aussi bien à l’aise avec les technologies front que back.
Il est donc « full-stack », comprendre ici : « toutes les couches, tout terrain, toutes technos ». Le développeur web full-stack peut donc — en théorie — travailler sur tous les aspects de la conception d’un site ou d’une application, en gérant les problématiques du front, du back ainsi que la partie serveur.
En théorie, puisque le terme full-stack correspond de moins en moins à la réalité du développement web actuel. Les développeurs se spécialisent de plus en plus, et il est déjà parfois difficile de suivre quand on est dev front ou dev back. Maîtriser parfaitement les deux côtés semble très ardu. Si l’on englobe également la partie serveur, ça semble tout bonnement impossible.
Si le développeur full-stack « spécialiste en tout » est une chimère, certains développeurs se considèrent comme « multistack », spécialistes sur plusieurs couches. Le JavaScript pouvant s’utiliser en front comme en back, certains développeurs JS maîtrisent les deux environnements. Mais ils ne seront pas full-stack pour autant, car ils ne s’occuperont peut-être pas de l’optimisation du référencement naturel ou de l’accessibilité. Autre exemple, avec les technologies de virtualisation, certains développeurs back maîtrisent l’art du déploiement serveur et de l’administration système ; on parle dans ce cas de « devops ».
Cela dit, dans la pratique, il y a bien des postes de développeur full-stack ; cela dépend de l’exigence de l’application que l’on a à développer. Dans les petites structures, il n’est pas rare de croiser un développeur full-stack. Parfois, le développeur peut être le seul technicien de l’équipe et est en charge du site de l’entreprise. Il s’occupe alors de l’intégration, du référencement, du développement front, du développement back et du serveur. Le développeur est alors généraliste et il n’aura probablement pas le niveau d’expertise d’un développeur spécialisé. Mais peu importe, car tous les projets n’ont pas forcément besoin du même niveau d’expertise.
Les métiers satellites
Le chef de projet
Le gardien des deadlinesIl n’est pas développeur à proprement parler mais il fait le pont entre l’équipe technique et le maître d’ouvrage. Il a donc à la fois des compétences relationnelles lui permettant de recevoir les demandes des clients, des compétences techniques pour les traduire auprès des développeurs et des compétences de gestion pour assurer le bon déroulement du projet.
Si le chef de projet n’est pas technicien, certains projets possèdent un chef de projet technique. Il s’agit bien souvent d’un lead développeur qui se déleste du codage afin d’encadrer l’équipe technique.
S’il ne code plus lui-même, il peut toujours décider de choix techniques : architecture à mettre en place, technologies utilisées, méthodologie de projet, etc. Le chef de projet technique est indispensable sur des projets complexes, sur lesquels un chef de projet seul aurait du mal à estimer la charge de travail, et donc à planifier et suivre le déroulement du projet.
Le webdesigner
L’alliance de l’esthétique et de l’ergonomieAussi appelé graphiste, ou parfois « UX designer » lorsque le travail d’ergonomie est prépondérant (ou pour faire classe sur le CV), le webdesigner travaille sur l’identité visuelle et notamment l’aspect graphique de l’application à réaliser.
Il va travailler sur la réalisation de la charte graphique, du logo, des maquettes des pages… Dans un contexte web, il travaille avec l’intégrateur web ou le développeur front-end qui intégrera ses maquettes.
À la base non développeur, on retrouve néanmoins beaucoup de graphistes ayant également des compétences en intégration web. Et ce, pour répondre aux exigences du marché du travail en besoin croissant de développeur web.
L’administrateur système
Il assure le serviceLe développeur se charge de concevoir et de coder l’application. C’est encore un autre métier de rendre disponible cette application au monde entier. Hébergement, serveur HTTP, DNS : tout un tas de subtilités dont ne s’occupe pas tout le temps le développeur.
L’administrateur système a donc la charge de maintenir l’environnement serveur afin que les applications soient bien accessibles et que les logiciels permettant d’exécuter le code soient correctement installés, configurés et mis-à-jour. Là encore, la difficulté de la tâche dépendra du contexte : une application à très fort trafic n’aura pas les mêmes exigences qu’un site de présentation d’une petite entreprise.
Dans certains cas, l’adminsys ne s’occupe pas seulement d’un serveur, mais d’un réseau de serveurs, avec des problématiques de répartition de la charge, de sauvegarde automatique, ou encore de déploiement automatisé.
Nous avons débroussaillé les principales spécialités du monde de la conception de projets web.
Intéressons-nous maintenant aux compétences à acquérir pour devenir développeur web !
Compétenceset prérequis