Essai de Carson Gross, professeur au département d’informatique de la Montana State University et créateur de htmx, qui répond à la question « Faut-il encore envisager la programmation comme carrière à l’ère de l’IA ? » par « Yes, and… (Oui, et…) ».
« Yes » — Oui
- L’essence de la programmation, c’est la résolution de problèmes à l’aide d’ordinateurs + la maîtrise de la complexité. Il est difficile d’imaginer un futur où cette capacité aurait moins de valeur
- Mais l’IA représente un risque pour les juniors. Si l’on n’écrit pas soi-même le code, on finit par ne plus savoir le lire non plus
- Sans capacité à lire le code, on tombe dans le « piège de l’apprenti sorcier » — à produire des systèmes qu’on ne comprend ni ne contrôle
Le passage du code au prompting n’est pas comparable au passage de l’assembleur aux langages de haut niveau
- Un compilateur est déterministe (
deterministic), mais pas un LLM - Les langages de haut niveau ont supprimé une complexité accidentelle (
accidental complexity), alors que le code généré par les LLM ajoute souvent au contraire de la complexité accidentelle
L’IA n’est pas un générateur de code, mais un excellent chargé de TD (TA)
- Utilisée comme partenaire pour comprendre des concepts et des techniques, elle est efficace pour la progression intellectuelle
- Elle est particulièrement utile pour franchir les blocages liés à la complexité accidentelle
- En partageant un fichier
AGENTS.md, on peut configurer l’IA pour qu’elle joue le rôle d’un chargé de TD plutôt que celui d’un générateur de code
« and… » — Et
La pure compétence en codage pourrait devenir moins importante
- À la place, certaines compétences vont gagner en importance :
- Capacité de communication — savoir écrire clairement et communiquer, aussi bien avec les LLM qu’avec les humains. Lire des livres et écrire des essais peut aider
- Compréhension du business — la vision côté business selon laquelle « on n’a pas besoin de programmeurs », tout comme la vision côté programmeurs selon laquelle « on n’a pas besoin des gens du business », sont toutes deux myopes. L’IA offre l’occasion de mieux comprendre les problèmes du monde réel
- Architecture système — la capacité à maîtriser la complexité de systèmes à grande échelle. Cela dit, la plupart des mauvais architectes manquaient d’expérience en codage
Seniors vs juniors dans l’usage des LLM
- Seniors : les utilisent pour l’analyse de code, structurer leur réflexion, générer de petits fragments de code, produire du code ingrat (regex, CSS), du code d’exploration, des suggestions de tests, etc. Ils ne leur demandent pas de produire des solutions complètes. Ils ne leur confient jamais la conception d’API
- Juniors : doivent résister à la tentation du vibe coding. À long terme, privilégier la compréhension plutôt que la vitesse est gagnant. Les entreprises comprendront bientôt, elles aussi, le problème d’explosion de complexité du vibe coding
Conseils de recherche d’emploi — la stratégie des 4F
- Les sites d’emploi en ligne relèvent presque de la loterie
- 4F : Family (famille), Friends (amis), Family of Friends (famille des amis)
- Ce n’est pas nécessairement une grande entreprise tech. À partir de 100 employés, la plupart des entreprises ont une organisation de développement
- Exemple du siège de Costco : entrer grâce au réseau familial, commencer comme analyste, puis ajouter des compétences en programmation en fait un profil très précieux
Conclusion
Les fondamentaux de la programmation, en particulier la capacité à écrire du bon code et à maîtriser la complexité, resteront importants pour toujours. Le marasme du marché de l’emploi est temporaire. Et aux entreprises : laissez les juniors écrire eux-mêmes du code.
31 commentaires
Si on ne comprend pas l’architecture, le vibe coding n’a aucun sens..
N’importe qui peut faire des pâtes avec du ketchup.
Mais tout le monde ne peut pas faire de vraies pâtes italiennes.
Si des pâtes italiennes coûtent 20 $ et que des pâtes avec du ketchup coûtent 2 $, je choisirai les secondes, mais...
Les utilisateurs ne paient pas pour un truc à 2 dollars.
Vous semblez ne pas avoir compris la pointe de l’histoire.
Oui, j’avoue avoir commenté sans même lire l’article jusqu’au bout ;;
Dans un hôtel ou dans un restaurant spécialisé, des pâtes au ketchup n’ont tout simplement pas leur place.
Mais si on pense juste à se dépanner rapidement à la maison, des pâtes au ketchup peuvent avoir du sens...
Moi, lors d’un jour spécial, j’ai envie de manger des pâtes italiennes préparées par un chef.
Le problème, ce n’est pas les pâtes : quand un vin bas de gamme coûte 2 $, il existe quand même des grands vins qui valent des dizaines de milliers d’euros, et la demande reste soutenue.
Moi aussi, pour une occasion spéciale, je mangerais des pâtes italiennes, mais au quotidien (?)...
C’est une excellente formule. Tout est résumé proprement en seulement trois lignes.
Nous sommes des ingénieurs. Un ingénieur, c’est quelqu’un qui comprend et assume la responsabilité de ce qu’il manipule et propose. Affirmer que ce n’est pas nécessaire signifie simplement qu’on travaille dans un environnement où cela passe. L’IA ne change pas cette nature profonde ; au contraire, elle ne fait que la révéler de façon extrême. Si ne pas comprendre une PR ne pose absolument aucun problème, alors ce n’est déjà plus vraiment une PR.
Si, dans une entreprise, un supérieur ne comprend pas le travail de son subordonné, peut-il vraiment lui confier des tâches ?
Même si c’est fait sans compréhension, pourra-t-il en assumer ce qui est fait ?
Dans les créations humaines, ce qui a toujours compté avant tout, c’était « l’intention humaine ». Pas la mise en œuvre elle-même, mais
Comme on ne cesse pas d’étudier les mathématiques sous prétexte que la calculatrice existe...
Plutôt que d’espérer que mon domaine ne puisse pas être remplacé, je pense qu’il est plus réaliste d’espérer que nous soyons tous remplacés le plus vite possible. Je crois que tout le monde le sent vaguement.
Comme on peut coder sans connaître l'assembleur,
j'ai l'impression qu'on pourra aussi coder sans connaître Rust.
De toute façon, même les humains produisent un code différent à chaque fois qu'ils codent. C'est différent d'une personne à l'autre aussi.
Mais ce sont tous des développeurs Rust.
Je pense que le problème de complexité de l’IA sera finalement résolu par l’IA elle-même. Il faut abandonner cette illusion et cet orgueil de croire qu’il y a des choses que seuls les humains peuvent faire.
C’est impossible avec l’architecture actuelle des LLM. Il faut un paradigme totalement différent.
Mais entre-temps, les humains doivent bien gagner leur vie, eux aussi T_T
J’espère que tout le monde traversera bien cette période de transition.
Avec les progrès de l’IA, on réduit réellement les effectifs même dans les projets. Quand un poste disparaît, si un manager ne sait pas bien utiliser l’IA en plus de gérer le business, il semble lui aussi devenir une cible des restructurations.
Plutôt que de chercher à réduire les effectifs à tout prix, il vaudrait mieux réaffecter ces personnes à d’autres missions, à de nouveaux projets ou à des tâches qu’on n’avait pas pu mener jusqu’ici. Les réduire brusquement, c’est vraiment faire preuve d’une vision à trop court terme.
Jusqu’à présent, le LLM/Agentic Coding reste un excellent outil, pas encore un excellent ingénieur. Tout comme un bon plan est important dans l’Agentic Coding, l’utilisateur doit au final être capable de comprendre le code et de porter un jugement dessus. Par exemple,
fastrenderetCCCont montré le potentiel de l’Agentic Coding, tout en en révélant clairement les limites.J’aimerais poser la question autrement.... « Recommanderais-je ce métier à mon enfant ? »
Autour de moi, beaucoup de gens envoyaient naturellement leurs enfants en informatique. Aujourd’hui, on dirait que cela a beaucoup changé.
J’ai l’impression qu’après l’ère du vibe coding, ce ne sera pas facile pour les gens de se motiver à étudier le développement. L’apprentissage va devenir trop inefficace... et il sera facile de se contenter d’un simple clic.
Le vibe coding consiste simplement à produire un résultat, et je pense que la différence entre comprendre ou non le résultat implémenté sera vraiment énorme. Cette compréhension vient, à mon avis, de ce que vous appelez les « études de développement ».
Au contraire, avec les progrès de l’IA, le coût d’apprentissage de nouvelles choses a fortement baissé, donc j’ai l’impression que c’est une excellente période pour apprendre davantage de choses.
On peut produire du code fonctionnel avec le vibe coding, mais au final c’est toujours un humain qui doit le vérifier, et il n’est pas facile, avec le seul vibe coding, de générer du code à la fois facile à maintenir et extensible.
Et au final, certaines études montrent aussi que, comme la vérification humaine prend davantage de temps, la productivité reste plus ou moins la même.
Cet effort individuel est important, mais il est également nécessaire de soutenir les systèmes sociaux à travers des discussions entre les membres de la société à l’échelle nationale.
Je suis tout à fait d’accord avec cela aussi. J’en parle souvent à mes juniors, mais je me demande souvent si ça ne sonne pas juste comme des paroles de vieux con.
Je suis tout à fait d’accord avec ce contenu.