Skip to content Aller a une section

💻Craft & Know-How

Ingénieur logiciel · Écrit, teste et maintient le code qui gère la vie moderne – et est l’une des premières professions à voir l’IA automatiser son propre travail quotidien.

D’un coup d’oeil
Intensite des scores

Plus la case est foncee, plus le score de cet indicateur est eleve.

Derniere relecture Sources et creditsCrédits médiasMéthodologie

Reponses courtes

Que fait réellement un ingénieur logiciel toute la journée ?

La plupart des journées sont consacrées à l'écriture de nouveau code, à la lecture du code d'autres personnes lors de la révision, à la correction de bugs et à la discussion avec les coéquipiers de ce qu'il faut construire ensuite. Les réunions, la planification et le mentorat prennent plus de temps que ce que pensent les nouveaux arrivants. Un ingénieur senior écrit souvent moins de code personnellement qu’un ingénieur junior, consacrant plus de temps aux décisions de conception, aux révisions et au déblocage des autres.

Ai-je besoin d’un diplôme en informatique pour devenir ingénieur logiciel ?

Non, mais cela reste l’itinéraire le plus courant et avec le moins de frictions. Un diplôme de quatre ans enseigne les algorithmes, les structures de données et les concepts de systèmes qui coûtent cher à apprendre sur le tas. Les diplômés du Bootcamp et les ingénieurs autodidactes sont embauchés, en particulier par les petites entreprises, mais ont généralement besoin d'un solide portefeuille ou d'un travail open source pour remplacer leurs diplômes.

Le génie logiciel est-il menacé par l’IA ?

Certaines parties le sont déjà. Les outils intégrés aux éditeurs de code modernes écrivent désormais une grande partie du code de routine (type passe-partout, tests préliminaires, traductions entre langues) pour les ingénieurs qui les utilisent régulièrement. Ce qui est beaucoup plus difficile à automatiser, c'est de décider quoi construire, pourquoi et comment un système doit être façonné pour qu'il survive au contact avec des utilisateurs réels et à l'échec.

Combien gagnent les ingénieurs logiciels ?

Cela varie énormément selon les pays et les entreprises. Aux États-Unis, la médiane est d'environ 133 000 dollars par an ; en Allemagne, environ 69 000 € ; en Inde, où le secteur emploie le plus de personnes, la moyenne nationale est plus proche de 900 000 ₹. Les ingénieurs seniors et employés des grandes entreprises technologiques peuvent gagner plusieurs fois la médiane nationale une fois la rémunération en actions incluse.

Quelle est la différence entre un ingénieur logiciel, un programmeur et un développeur ?

En pratique, peu de choses : les titres se chevauchent et les entreprises les utilisent de manière incohérente. « Programmeur » est le terme le plus ancien et met l'accent sur l'écriture de code ; « développeur » est courant dans les entreprises Web et de produits ; « ingénieur logiciel » s'appuie sur l'idée d'appliquer des processus, des tests et une conception disciplinés, empruntés à des domaines d'ingénierie plus anciens, à la création de logiciels. Les descriptions de poste les distinguent rarement de manière cohérente.

Un entretien de codage est-il vraiment nécessaire pour être embauché ?

Dans la plupart des entreprises technologiques établies, oui : un entretien technique en direct ou à emporter, impliquant souvent des problèmes d'algorithme sur un document partagé ou un tableau blanc, reste le filtre standard, aux côtés d'un cycle de conception de système pour les postes plus élevés. Les petites entreprises et les startups sont plus susceptibles de remplacer un projet d'essai payant, une revue de portefeuille ou une conversation sur des travaux antérieurs.

Ouvrir le lab comparer

Partager cette page

L’image d’un ingénieur tapant continuellement pendant huit heures est en grande partie fausse. Lire le code d'autres personnes, raisonner sur un échec sans cause évidente et expliquer un compromis technique à des personnes qui ne sont pas des ingénieurs occupe autant de travail que d'écrire du nouveau code - souvent plus, pour toute personne ayant dépassé ses deux premières années.

Le savoir-faire transmis au sein de la profession porte moins sur la langue à apprendre que sur les habitudes d'esprit : comment rechercher systématiquement un bug au lieu de le deviner, quand laisser le code fonctionnel tranquille et quand supprimer du code est la chose la plus précieuse que vous ayez faite toute la semaine.

What the work demands

889074807083
Décomposition du problème
88
Débogage
90
Conception du système
74
Communication et collaboration
80
Tests et qualité du code
70
Apprentissage continu
83

Décomposition du problème

Diviser une demande vague et importante en petits éléments, constructibles et testables indépendamment : la compétence qui sépare le plus les ingénieurs productifs de ceux qui stagnent sur de grandes tâches.

Débogage

Déterminer systématiquement où et pourquoi un système se comporte mal, plutôt que de deviner et de changer les choses jusqu'à ce qu'il fonctionne.

Conception du système

Choisir comment les services, les données et les équipes doivent être divisés afin que l'ensemble puisse continuer à évoluer en toute sécurité pendant des années, et pas seulement fonctionner dès le premier jour.

Communication et collaboration

Expliquer un compromis technique à un non-ingénieur, rédiger clairement un changement pour les réviseurs et négocier la portée - la plupart des codes professionnels sont lus et argumentés bien plus qu'ils ne sont écrits.

Tests et qualité du code

Rédiger des contrôles qui détectent une modification interrompue avant qu'un utilisateur ne le fasse et garder une base de code suffisamment lisible pour que la personne suivante (souvent le même ingénieur, des mois plus tard) puisse la modifier en toute sécurité.

Apprentissage continu

Les langages, les frameworks et désormais les outils d'IA changent toutes les quelques années ; les ingénieurs qui arrêtent délibérément d’apprendre après leur premier emploi plafonnent rapidement.

A day in the life

Boîte de réception, stand-up et triageTravail en profondeur : écrire du codeDéjeunerBilans, jumelages et rencontresDébogage, déploiements et conclusionHors du temps (principalement) 036912151821 24h
  1. 7–9 Boîte de réception, stand-up et triage

    Rattraper les alertes et les messages du jour au lendemain, puis une courte réunion debout où l'équipe dit sur quoi elle travaille et ce qui la bloque.

  2. 9–12 Travail en profondeur : écrire du code

    Le bloc le mieux protégé de la journée, idéalement avec les notifications désactivées, consacré à la mise en œuvre d'une fonctionnalité ou d'un correctif nécessitant une concentration soutenue.

  3. 12–13 Déjeuner

    Une véritable pause ; De nombreux ingénieurs rapportent que c'est la première chose qui disparaît en cas de crise et la première chose qu'ils regrettent d'avoir perdue.

  4. 13–16 Bilans, jumelages et rencontres

    Lire les pull request de collègues, s'associer pour résoudre un problème difficile et participer à des réunions de conception ou de planification qui ont tendance à se dérouler dans l'après-midi.

  5. 16–19 Débogage, déploiements et conclusion

    Terminer et expédier la monnaie de la journée, la surveiller en toute sécurité et laisser des notes pour demain ou pour toute personne de garde pendant la nuit.

  6. 19–7 Hors du temps (principalement)

    Temps personnel et sommeil, sauf s'il s'agit d'une semaine de garde, où une alerte téléphonique peut transformer 3 heures du matin en un incident de production imprévu.

The know-how

Craft knowledge practitioners actually pass on — not motivation.

01

Bisect, ne devine pas

Lorsqu'un bug apparaît quelque part entre une version fonctionnelle et une version cassée, effectuez une recherche binaire dans l'historique au lieu de regarder la différence - vérifiez le point médian, puis répétez jusqu'à ce qu'un changement soit laissé en place.

Débogage de recherche binaire standard, automatisé par la commande bisect de Git
02

Lisez l'échec avant de lire le code

Le message d'erreur complet, la trace de la pile et les lignes de journal environnantes contiennent généralement déjà la réponse ; Sauter directement à la source et deviner gaspille la seule preuve que l'ordinateur vous a librement fournie.

Fait écho dans Brian Kernighan et Rob Pike, The Practice of Programming (1999)
03

Facilitez le changement, puis effectuez le changement facile

Lorsqu’une fonctionnalité est difficile à ajouter, c’est généralement le signe que le code n’est pas adapté à cette fonctionnalité. Refactorisez d'abord, sans changement de comportement, jusqu'à ce que la fonctionnalité devienne une petite différence évidente - puis faites cette différence.

Kent Beck
04

La clôture de Chesterton

Avant de supprimer ou de simplifier du code, une valeur de configuration ou une vérification que vous ne comprenez pas, découvrez pourquoi il a été placé là. Il s'agit peut-être d'une protection discrète contre un échec qui ne s'est pas produit depuis des années, précisément pour cette raison.

G.K. Chesterton, The Thing (1929), adopté comme folklore d'ingénierie
05

La suppression du code est en cours

Le code qui n’existe plus ne peut pas contenir de bug, ne peut pas dérouter le prochain lecteur et ne peut pas nécessiter de mise à jour. La suppression des chemins morts et des fonctionnalités inutilisées doit être célébrée de la même manière que l'expédition d'une fonctionnalité.

Repris par Jeff Atwood, Coding Horror, 2007 (« le meilleur code est l'absence de code du tout »)
06

Débogage du canard en caoutchouc

Expliquez le problème à voix haute, ligne par ligne, à un collègue ou même à un objet inanimé avant de demander de l'aide. Le fait de l’articuler avec précision fait souvent apparaître le bug avant que quiconque ne réponde.

Le programmeur pragmatique, Andrew Hunt et David Thomas (1999)

Tools of the trade

Editeur de code / IDE

Visual Studio Code et les IDE de JetBrains dominent ; les deux créent désormais une saisie semi-automatique assistée par l'IA et discutent directement dans l'éditeur.

Git

Le système de contrôle de version a été standardisé par presque toute l'industrie après que Torvalds l'ait écrit en 2005 ; presque rien n’est expédié sans lui.

Suivi des problèmes

Les problèmes Jira, Linear ou GitHub transforment un arriéré de bugs et de fonctionnalités en quelque chose qu'une équipe peut planifier sur une semaine ou un trimestre.

Pipeline CI/CD

Des systèmes automatisés qui créent, testent et déploient du code à chaque modification, transformant ainsi une version d'un événement manuel nerveux en une version de routine.

Assistant de codage IA

Des outils comme GitHub Copilot écrivent désormais une grande partie des lignes acceptées par un ingénieur, orientant le travail quotidien vers la révision et la direction plutôt que vers la saisie.

How people fail at it

Développement axé sur le CV

Choisir un langage, un framework ou une architecture à la mode parce qu'il semble bon sur un CV plutôt que parce qu'il correspond au problème, laissant derrière lui la complexité que l'équipe suivante devra maintenir.

Je ne lis pas le message d'erreur

Faire correspondre un modèle à un correctif mémorisé au lieu de lire ce que le programme rapporte réellement, ce qui peut passer des heures à rechercher la mauvaise cause.

La réécriture du big bang

Mettre au rebut un système fonctionnel pour le reconstruire « correctement » à partir de zéro est une décision notoirement risquée : la réécriture complète de son navigateur par Netscape à la fin des années 1990 est un cas largement cité où cela a coûté à l'entreprise son avance sur le marché.

Métiers proches

Voisins les plus proches sur le profil à six scores — pas seulement le même champ.

Continuer à explorer

Keep exploring

More in Engineering & Technology

🤖

Chercheur en IA

Conçoit et teste les algorithmes derrière l'intelligence artificielle, dans un domaine qui s'efforce désormais d'automatiser une part croissante de son propre processus de recherche.

AI-resistant 50
🛰️

Ingénieur aérospatial

Conçoit, analyse et certifie les avions, les fusées et les engins spatiaux qui quittent le sol, en respectant des marges de sécurité qui ne laissent aucune place aux suppositions.

AI-resistant 74
🌉

Ingénieur civil

Le métier qui transforme les rivières, les roches et la gravité en ponts, en routes et en eau potable – le métier tranquille et porteur de la civilisation depuis Imhotep.

AI-resistant 72
🔌

Ingénieur en semi-conducteurs

Conçoit et fabrique les transistors à l'intérieur de chaque ordinateur, téléphone et système d'armes, avec des machines si précises que seules quelques usines sur Terre peuvent les faire tourner.

AI-resistant 60
🦾

Ingénieur en robotique

Conçoit les machines qui perçoivent, décident et agissent dans le monde physique — où le vrai défi n'a jamais été l'intelligence, mais le monde lui-même.

AI-resistant 65
🔐

Spécialiste de la cybersécurité

Protège les systèmes, les données et les personnes en trouvant, prévenant et répondant aux attaques numériques.

AI-resistant 63
📦

Ingénieur MLOps

Construit les systèmes qui entraînent, déploient, surveillent et gouvernent les modèles d'apprentissage automatique en production.

AI-resistant 54
🌬️

Ingénieur en énergies renouvelables

Conçoit, construit et améliore les systèmes éoliens, solaires, de stockage et de réseau qui transforment les ressources renouvelables en électricité fiable.

AI-resistant 72