J'ai écrit toute une série d'articles dans le but de guider les personnes qui s'intéressent à la programmation afin de savoir si, oui ou non, le métier de développeur les intéresse suffisamment pour démarrer l'aventure.

Mais j'ai de plus en plus de demandes concernant les différences entre les différents métiers autour du développement et de la programmation, et c'est vrai que je n'y avait encore pas consacré d'article, d'autant que le sujet est vaste et peut paraitre assez complexe de l'extérieur.

J'ai essayé de rassembler une liste à la fois assez complète tout en restant accessible à tous. Cette dernière n'est pas exhaustive et se concentre principalement sur les grandes familles vers lesquelles se diriger lorsque l'on a envie de se former.

À noter que la plupart de ces métiers ont de nombreuses compétences en commun (logique, algorithmie, langages, outils, etc...) et que pour beaucoup c'est l'environnement sur lequel est déployé le résultat final qui les différencient.

Développeur logiciel

Le terme "logiciel" désignant "une suite d'instruction interprétable par une machine", on pourrait qualifier tous les métiers ci-dessous de développeurs logiciels.

Mais cette expression est plus souvent utilisée pour décrire le développement de logiciels clients appelés "lourds", qui désigne des logiciels que l'on vient installer sur son système d'exploitation (en comparaison aux logiciels "web" qu'il n'y a pas besoin d'installer).

Un développeur logiciel doit savoir reproduire des interfaces, gérer les données qui y sont entrées par l’utilisateur, traiter ces données au travers de différents algorithmes afin de résoudre un problème ou de proposer une fonctionnalité à l'utilisateur final.

Il existe autant de développeurs logiciels qu'il existe de langages, de technologies et de plateformes sur lesquels ces logiciels devront tourner.

Développeur de jeux vidéo

Les développeurs de jeux vidéo sont des développeurs logiciels qui se spécialisent sur la maitrise d'outils spécifiques à cet univers comme l'utilisation de moteurs graphiques ou physiques pour la réalisation d'expériences vidéo-ludiques.

La gestion de ces outils demande en général une compréhension correcte des mathématiques, notamment lors du développement d'univers 3D, même si il existe de plus en plus de moteurs de jeux simplifiant ces calculs au maximum.

À noter que la demande pour des profils de développeurs de jeux vidéo est la plus rare parmi tout cette liste de métiers

Développeur mobile

Tout comme le développeur logiciel, le développeur mobile devra apprendre à créer des solutions pour répondre à un besoin client ou à créer des expériences divertissantes, ludiques, pédagogiques, etc...

La vraie différence réside dans la plateforme d'exécution car le mobile possède des caractéristiques et des contraintes bien particulières telles que la taille de l'écran, l’interaction tactile, la batterie, la puissance (de moins en moins vrai), le système d'exploitation, les capteurs, le store,...

À noter qu'un développeur mobile se spécialise généralement sur une plateforme car le développement d'applications sur iOS ou Android relèvent d'outils et langages complètement différents.

Développeur web

Vue de l'extérieur, il y a parfois une confusion entre les métiers de développeur web et de web designer, pourtant ces deux derniers sont très différents : l'objectif du développeur web est de faire prendre vie aux maquettes du web designer.

Un développeur web n'a pas besoin de compétences graphiques, même s'il se spécialise dans la partie visuelle (que l'on appelle l'intégration) son objectif est, entre autres, de reproduire avec du code les visuels créés par la personne en charge du design.

Mais son travail de s'arrête pas là, il va aussi devoir implémenter les fonctionnalités nécessaires aux bon fonctionnement du site (gestions des utilisateurs, des contenus, sauvegarde des données, etc...) grâce à la partie serveur et la base de données.

Certains développeurs web sont spécialisés dans les projets web basés sur des plateformes de gestions de contenu déjà existantes (aussi appelées des CMS, comme Wordpress), tandis que d'autres sont spécialisés sur des projets partant de zéro ("from scratch").

Si la conception d'un site web vous intéresse, je vous conseille mon article "Les 8 étapes de la création d'un site ou d'une application web".

La particularité des technologies web est que leur évolution depuis quelques années permet non seulement de créer des contenus web, mais aussi des jeux, des applications mobiles (Android et iOS) ou des logiciels clients (Windows, Mac et Linux).

Développeur web front-end

Cette branche du métier de développeur web est spécialisé dans la réalisation de toute la partie visible des projets web, c'est à dire l'intégration du design, des animations, l'accessibilité, l'adaptativité aux différentes tailles d'écrans, mais aussi la logique de navigation, l'échange et la vérification des données,...

Développeur web back-end

Le développeur back-end se concentre sur la partie immergée de l'iceberg en s'occupant du traitement et de la sécurité des données, de leur sauvegarde et de leur récupération, des calculs invisibles à l'utilisateur et autres algorithmes complexes, qui font souvent la valeur innovante du produit.

Les langages, méthodes et technologies du développeur back-end sont très similaires au métier de certains développeurs logiciels.

Développeur web fullstack

Le métier de dev fullstack est censé être capable de gérer la partie technique d'un projet web de bout en bout (front-end, back-end, déploiement) et demande une variété de technologies à apprendre et à maitriser très large.

Beaucoup de développeurs web commencent en tant que développeurs fullstack mais finissent par se spécialiser d'un côté ou de l'autre car devenir expert dans toutes les technologies demandées pour être fullstack relève de l'exploit.

Développeur embarqué

Un développeur embarqué travaille majoritairement avec des technologies "bas-niveau", c'est à dire au plus près des composants électroniques afin de créer des logiciels fonctionnant sur des appareils possédant une puissance de calculs généralement limitée ou des contraintes de mobilité, d'autonomie, etc...

On parle de programmation embarquée pour des appareils comme les objets connectés (capteurs, montres,etc...) , les ordinateurs de bord (voiture, avions, etc...), certaines machines industrielles, et pleins d'autres appareils électroniques aux performances limités et qui demandent une programmation précise et spécifique à sa conception matérielle.

Et plein d'autres

Il existe beaucoup de métiers qui ne sont pas qualifiés en tant que "développeurs" mais dont les compétences nécessite une certaine connaisse de la programmation, que ce soit pour créer, analyser, ou déployer du code.

Administrateur Système

Un administrateur système est une personne en charge de réfléchir, d'installer, de paramétrer, d'améliorer et de maintenir les systèmes informatiques sur lesquels les développeurs vont travailler ou déployer leurs applications.

Ses champs d'expertise se concentrent sur les systèmes d'exploitation ainsi que le réseau et même si il ne fait pas de "développement" à proprement parlé, il utilise ces compétences en programmation pour créer des scripts d'automatisation pour gérer la création ou la maintenance des systèmes qu'il déploie.

DevOps

Un DevOps est généralement un développeur ayant une spécialisation en administration système, cloud, etc... qui sera capable de mettre en place les environnements de production des applications développées et de mettre en place les outils et infrastructures nécessaires pour que les déploiements des projets se passe au mieux.

Analyste en Cybersécurité

La cybersécurité se passe à différents niveaux (matériel, logiciel, humain, etc...) et les connaissances d'un expert dans ce domaine ne doit pas seulement se limiter à la programmation mais aussi à l'administration système, au réseau, aux mathématiques et à la cryptographie, etc...

Testeur Qualité

Le métier de testeur QA (Quality Insurance) est souvent une évolution du métier de développeur pour les personnes qui sont attachés à la robustesse et à l'optimisation du code.

Son rôle est de mettre en place des stratégies de tests, automatisés ou non, en relation avec un cahier des charges afin de vérifier que le logiciel produit ne présente pas de dysfonctionnement ou que les anomalies relevées ont été correctement corrigées.

Data Scientist

L'efficacité des systèmes de Big Data et d'Intelligence Artificielle (comme le Machine Learning par exemple) repose sur la qualité des données en entrée ainsi que l'analyse des données en sortie.

Le rôle d'un Data Scientist est donc de trouver ou créer des solutions pour retravailler des jeux de données afin d'en extraire le sens grâce à des outils informatiques ou d'analyses mathématiques et statistiques.

Conclusion

Beaucoup des connaissances de bases et des compétences requises pour travailler dans ces métiers se rejoignent, il n'est absolument pas exclu de passer d'un métier à un autre plus tard dans votre carrière moyennant une certaine motivation et du temps pour se former correctement !

J'espère que cet article vous aura été utile, et à bientôt sur le blog !

Les articles les plus populaires du blog

Envie de continuer à lire des articles autour du développement web (entre autres) ? Voici la sélection des articles de mon blog les plus lus par la communauté !

Voir la sélection 🚀

Recevez les articles de la semaine par e-mail pour ne rien manquer !

S'abonner à la newsletter 📧

À propos de l'auteur

Hello, je suis Nicolas Brondin-Bernard, ingénieur web indépendant depuis 2015 passionné par le partage d'expériences et de connaissances.

Aujourd'hui je suis aussi coach pour développeurs web juniors, tu peux me contacter sur nicolas@brondin.com, sur mon site ou devenir membre de ma newsletter pour ne jamais louper le meilleur article de la semaine et être tenu au courant de mes projets !


Photo par Alex Kotliarskyi sur Unsplash