31 points par GN⁺ 2025-03-19 | 29 commentaires | Partager sur WhatsApp
  • Il est vrai que les outils LLM augmentent la productivité des développeurs
  • Mais à long terme, le fait de dépendre de ces outils réduit la capacité à résoudre soi-même les problèmes
  • Le sentiment d’accomplissement lié au processus d’écriture du code disparaît, et au lieu de résoudre les problèmes, on finit par attendre la réponse de l’IA

Affaiblissement de la passion et de l’esprit de défi dans le développement

  • Certaines personnes n’aiment pas coder en soi → dans ce cas, le développement n’est peut-être pas le bon domaine pour elles
  • Les meilleurs ingénieurs que j’ai rencontrés créent spontanément des outils ou des logiciels même le week-end, en recherchant l’innovation
  • Améliorer les performances d’un système exige une compréhension fondamentale ; sinon, cela revient simplement à essayer au hasard

Le phénomène de « Copilot Lag »

  • Le « Copilot Lag » désigne l’état dans lequel on attend la prochaine instruction de l’IA
  • C’est comparable à un développeur junior qui attend les consignes d’un senior
  • À force d’utiliser GitHub Copilot, on en vient à oublier même des éléments de base du langage et de la syntaxe
  • Le gain de vitesse à court terme entraîne une dégradation des connaissances à long terme

Les LLM peuvent perturber le processus d’apprentissage

  • En étudiant "Writing An Interpreter In Go" de Thorsten Ball, Copilot a généré le code, mais cela ne m’a pas donné la capacité de le réécrire moi-même
  • On risque de passer à côté de concepts importants comme la gestion de la mémoire ou la conception orientée données
  • Le code produit par l’IA peut sembler correct en apparence, mais il est inutile si l’on ne comprend pas les principes fondamentaux

Comment utiliser efficacement les LLM

  • Les LLM peuvent être utiles comme des moteurs de recherche
  • Comme lorsqu’on cherche sur Stack Overflow, on peut s’appuyer sur les réponses d’un LLM
  • Mais les LLM ne reflètent pas directement le savoir de véritables experts ; ils génèrent des réponses à partir de motifs appris et de séquences de tokens → les erreurs sont nombreuses
  • Il ne faut pas accepter aveuglément les réponses d’un LLM ; il faut analyser pourquoi cette approche est recommandée
  • Lorsqu’on ne sait pas quelque chose, il faut enquêter et apprendre par soi-même
  • Quand on apprend un nouveau langage (comme Zig), il est utile de prendre des notes sur ce que l’on apprend
  • Ces notes peuvent servir de référence d’apprentissage et être utiles lorsqu’on les partage avec d’autres

Conclusion

  • Les outils d’IA sont utiles, mais une dépendance aveugle peut au contraire produire un effet négatif
  • Il est important de comprendre les principes des solutions proposées par l’IA et de conserver une attitude d’apprentissage autonome
  • En fin de compte, l’essentiel est de préserver sa capacité fondamentale à résoudre les problèmes sans dépendre des outils

29 commentaires

 
madnix 2025-03-27

Hum... au départ, cela semble surtout être une différence de point de vue : considère-t-on l’IA comme un outil ou comme une intelligence ?.. Personnellement, je ne peux pas être d’accord avec cet article car, comme je l’ai dit dans le commentaire ci-dessous, le fait même de ne voir les développeurs qu’au niveau du code est une manière de penser erronée. Par le passé, lorsque la révolution industrielle a eu lieu en Grande-Bretagne, les agriculteurs criaient aussi qu’ils allaient mourir de faim, mais au final cela a créé davantage d’emplois et apporté de nombreux bénéfices à l’humanité. De même, quand les ordinateurs sont apparus, on disait aussi qu’à cause d’eux les gens allaient devenir de plus en plus stupides, mais au final ils ont permis de résoudre davantage de tâches en moins de temps, et les gens sont devenus plus intelligents.

 
jokerized 2025-03-24

Les LLM, y compris la deep research, ne sont pas encore utiles pour la résolution de problèmes de haut niveau. (Par exemple, le développement d’algorithmes au niveau d’un article scientifique)
Il en va de même pour le codage qui exige une optimisation extrême et une compréhension de diverses caractéristiques système et de problèmes techniques : cela requiert encore une intervention humaine. Un développeur n’est pas un simple programmeur, mais un résolveur de problèmes. Un jour, la résolution de problèmes de bout en bout deviendra peut-être possible, mais pour l’instant, cela permet d’économiser le temps consacré à la saisie et à la programmation simple, et d’investir davantage dans des approches de problèmes plus difficiles, ce qui me paraît positif du point de vue de la productivité.

 
skarl86 2025-03-22

On dirait qu’à un moment donné, j’en suis venu à l’utiliser souvent un peu comme une forme de revue de code. Je reçois des propositions de code, j’échange sur l’orientation du code, je réfléchis et fais des suggestions sur de meilleures approches, puis, quand j’obtiens un résultat qui me satisfait, je le reprends.

 
kaydash 2025-03-22

Toute la logique de l’application et la logique métier doivent être pensées par des humains.

 
elbanic 2025-03-22

Ce genre d’inquiétude apparaît si l’on réduit les développeurs au simple codage. En réalité, les développeurs font bien plus que ça : on peut penser que s’appuyer sur l’IA pour la partie code les rend plus idiots, mais on peut aussi considérer que cela leur permet de se concentrer davantage sur les autres aspects de leur travail.

 
pcj9024 2025-03-21

Tutu... je suis un développeur idiot...

 
dongyagn1 2025-03-20

On disait aussi que Unity rendait les développeurs de jeux idiots, mais au final personne ne l’est devenu : ils ont surtout appris plein d’autres choses, et se sont juste retrouvés avec encore plus de boulot lol

 
halfenif 2025-03-21

Il y a juste encore plus de boulot… c'est pas possible…

 
nimgnos 2025-03-20

J’ai du mal à être d’accord avec l’idée que cela rende les développeurs stupides...
Depuis l’adoption de l’IA, la productivité a vraiment bondi.

 
vhzkfltmdnpxm 2025-08-18

Voilà un idiot.

 
alpharoom 2025-03-19

De nos jours, c’est un monde où on se fait insulter si on n’est pas d’accord avec l’idée qu’on peut tout faire avec l’IA, alors bon.

 
play1204dev 2025-03-19

C’est acceptable quand il s’agit de fonctionnalités de bibliothèque qu’on ne connaissait pas ou de scripts shell qui ne nous viennent pas immédiatement à l’esprit, mais comme ça mélange aussi des fonctionnalités déjà obsolètes et des fonctions inexistantes, on passe tout son temps à déboguer.

> Il ne faut pas accepter telles quelles les réponses des LLM ; il faut analyser pourquoi ils recommandent cette approche.

Je pense que c’est vraiment le point essentiel.

 
dongwon 2025-03-19

J’ai l’impression que les outils apportent toujours à la fois une extension de la pensée et une destruction de la pensée. Il faudrait pouvoir, à travers cette destruction de la pensée, aller vers une extension de la pensée de plus haut niveau, mais dans les moments où l’on n’est pas préparé à cela, ce genre de problèmes finit toujours par apparaître.

Par conséquent, je pense qu’en matière d’utilisation des outils, ces interrogations reviennent toujours. À mes yeux, ce sont des étapes indispensables. Plutôt que de les rejeter simplement ou de les utiliser aveuglément, je pense qu’il est souhaitable de se concentrer sur la manière de bien utiliser cet outil et sur la façon de s’en servir pour consacrer ses ressources à des aspects fondamentalement plus importants.
(en dépassant les 1�000 utilisations mensuelles de Cursor...)

 
amarese 2025-03-19

Monsieur Kim. J’aimerais me permettre de vous donner un conseil. Ce n’est rien d’autre que ceci : n’utilisez pas trop les fonctions Excel, s’il vous plaît. S’il y a de la commodité, le risque augmente aussi. Pour abattre un bœuf, il faut une lame à sa mesure ; mais faut-il vraiment un couteau pour attraper un poulet ? La solution la plus simple peut être la bonne.

 
codemasterkimc 2025-03-19

Le texte ci-dessus, c’est la version GPT des fonctions Excel lol

 
losoowmik 2025-03-19

À mon avis, on peut être rapide en calcul mental, et une calculatrice peut aussi être utile. Je voulais simplement donner mon avis en disant qu’un ordinateur n’est-il pas un couteau pour abattre un bœuf ?

 
jingjing2222 2025-03-19

Je n’utiliserai plus jamais ChatGPT
J’avais moi aussi écrit un article similaire.

Il est clair que cela améliore la productivité, mais je pense qu’il faut éviter de confier son cerveau à cet outil.

 
dicebattle 2025-03-19

Je reste encore un fervent adepte de Cursor et d’Anthropic, mais à un moment donné, je me suis surpris à utiliser de moins en moins le mode agent que j’adorais tant, et à commencer plutôt par demander en mode ask l’architecture et la méthode d’implémentation, puis à n’accepter les propositions de modifications de l’IA qu’au compte-gouttes, seulement lorsque j’étais pleinement convaincu.
Quand deux ingénieurs ont chacun utilisé le mode agent pour refactorer un module pas si volumineux que ça (mais assez important dans notre projet métier) et y ajouter de la structure, et que j’ai fini par voir de mes propres yeux qu’un code censé clarifier l’architecture rendait en réalité la lisibilité et la structure encore plus chaotiques, c’est ce qui m’a fait changer de cette manière.

 
onixboox 2025-03-20

Je l’utilise comme ça, moi aussi. Si c’est vraiment un langage que je découvre complètement, j’utilise le mode agent, mais si c’est un langage que je connais, je commence par vérifier si le code me semble cohérent.

 
iolothebard 2025-03-19

Plutôt que l’IA rende les développeurs stupides…
un développeur stupide reste un développeur stupide, même avec l’IA…
Garbage in, garbage out

 
ehdgns104 2025-03-24

Vous avez tout à fait raison, haha

 
powerkid 2025-03-21

Je suis d’accord. Ce n’est ni forcément mauvais ni forcément bon, mais on dirait qu’on a simplement un outil de productivité utile en plus.

 
halfenif 2025-03-21

Je suis d’accord.

Cela fait déjà un moment que je dis souvent que tous les développeurs ne se valent pas.

 
aer0700 2025-03-20

Je pense que c’est vrai...

 
white9s 2025-03-19

C’est un peu abrupt, mais ce n’est pas complètement faux non plus. C’est dans le même esprit que l’idée selon laquelle de bonnes questions amènent de bonnes réponses..

 
j2sus91 2025-03-19

Je pense que l’auteur parlait surtout d’un usage reposant aveuglément uniquement sur les outils d’IA.

À mon avis personnel, si l’utilisation de l’IA a permis d’améliorer l’efficacité au travail,
il serait préférable de l’exploiter activement pour réduire les tâches répétitives,
et d’investir le temps ainsi dégagé dans des domaines plus larges (par exemple, qu’un développeur backend s’étende aussi au frontend ou au développement d’applications)
ou dans des orientations plus constructives comme la conception d’architecture.

À voir le contenu dans son ensemble, j’ai l’impression que l’auteur serait aussi d’accord avec cet avis,
mais comme il y a parfois des développeurs qui rejettent l’IA en elle-même, j’écris juste quelques lignes en réponse... haha
.

 
tsboard 2025-03-20

Je suis d’accord aussi. Cela me fait penser à un article qui disait de ne pas utiliser les fonctions d’Excel.
Je pense qu’on a tout à gagner à bien exploiter les fonctionnalités existantes pour en augmenter l’utilité.

 
zinisuni 2025-03-19

Je suis d'accord. ^^

 
GN⁺ 2025-03-19
Avis Hacker News
  • Certaines personnes peuvent ne pas aimer écrire leur propre code. Dans ce cas, on peut considérer qu’elles essaient de travailler dans un domaine qui ne leur convient pas
    • J’ai supporté d’écrire mon propre code pendant des décennies. C’est parfois satisfaisant, mais le plus souvent, c’est une abstraction entre mes idées et moi
    • J’aime fabriquer quelque chose rapidement, et quand j’ai une idée, je veux qu’elle soit implémentée de la manière la plus efficace et propre possible
    • J’ai accepté de travailler avec les LLMs. Je ne pense pas que cela m’ait rendu plus paresseux
    • Au contraire, cela m’inspire à démarrer quand je bloque. Une fois que le LLM lance le travail, je reprends la main et je termine à ma façon
    • Je produis plus de produits qu’avant
    • J’ai travaillé avec des gens, et certains sont des amis. Ils pensent que leur code et leur méthodologie sont sacrés
    • Je pense qu’il n’y a plus de place pour eux quand l’IA arrive. Je suis entré dans ce jeu pour la créativité, et c’est pour ça que je suis là
    • Les outils et la syntaxe ne sont que des moyens au service d’une fin
    • Cela se répète chaque fois qu’une nouvelle couche d’abstraction est développée et permet de produire facilement du code fonctionnel sans comprendre les couches inférieures
    • Ce sont presque toujours des abstractions avec des fuites. Il faut parfois connaître le fonctionnement réel des couches inférieures
    • Les développeurs qui ont investi beaucoup de temps et d’énergie émotionnelle à comprendre les couches basses affirment que ceux qui s’appuient sur l’abstraction sont plus stupides
    • Nous serions tous plus intelligents si nous écrivions notre code nous-mêmes sans dépendre de bibliothèques tierces
    • Nous serions plus intelligents si nous gérions la mémoire manuellement
    • Nous serions plus intelligents si nous écrivions tout le code en assembleur sans dépendre de compilateurs
    • Nous serions plus intelligents si nous câblions nous-mêmes nos transistors
    • Apprendre les couches basses est formateur. C’est souvent nécessaire pour extraire des performances optimales
    • Mais il n’est pas nécessaire de comprendre les couches basses pour fournir de la valeur aux clients
    • Ce que je préfère avec les coding LLMs, c’est leur demander de m’aider à comprendre du code que je ne comprends pas encore
    • Même quand leurs réponses sont fausses, elles donnent souvent des indices qui me permettent de trouver la solution moi-même
  • J’ai eu une expérience similaire. J’ai utilisé un LLM pour construire une fonctionnalité, puis j’ai découvert que le code provenait d’une bibliothèque déjà existante
    • Si j’avais fait les recherches correctement, je n’aurais pas créé une version bien pire
    • Maintenant, je m’en sers seulement pour obtenir des fonctionnalités prototypes dans l’éditeur à partir de commentaires, et je fais le reste moi-même
    • Mettre en place un pipeline IA enlève tout le plaisir et donne l’impression d’une tâche très accablante
    • Je préférerais coder
    • Quand le LLM se trompe 2, 3 ou 4 fois d’affilée, une vraie colère monte
    • C’est épuisant
    • J’espère que ce sera plus simple d’ici 1 à 2 ans et que l’UX s’améliorera, mais je ne sais pas ce qu’il en sera
    • Peut-être que je manque simplement de vision
  • Les LLMs enlèvent aux étudiants la motivation de comprendre en profondeur les problèmes techniques et de se concentrer
    • À la place, ils copient, collent et passent à autre chose sans comprendre
    • L’analogie avec la calculatrice électronique est peut-être pertinente. C’est un outil approprié seulement après avoir appris à calculer à la main
    • Dans une expérience, on a donné à des étudiants en commerce ChatGPT et un devoir de data science
    • Ils ont trouvé une solution sans connaissances de base, mais ils n’ont acquis aucun savoir
    • Un ami a dit : « Ce modèle de langage ne devrait pas être mis à la disposition du grand public »
  • Anecdote personnelle de mon ancien travail
    • Un développeur junior a reçu pour mission d’écrire un script générant une liste de branches inutilisées depuis longtemps
    • On m’a demandé une review, et c’était en grande partie écrit en awk
    • Il avait saisi la définition de la tâche dans un LLM, copié la réponse et l’avait collée dans une pull request
  • Platon, Phèdre, 370 av. J.-C. : « Ils n’useront plus de leur mémoire, car ils se fieront à des signes extérieurs pour se souvenir, au lieu de se rappeler par eux-mêmes »
  • Je suis peut-être vieux jeu, mais je me souviens d’une époque où les échecs silencieux étaient considérés comme l’une des pires choses qu’un système puisse faire
    • Les LLMs sont des machines à échecs silencieux
    • Ils sont utiles à leur place, mais quand j’entends des patrons dire qu’ils vont remplacer le travail humain par l’IA, je suis certain qu’ils subiront le désastre qu’ils auront eux-mêmes provoqué
  • Si je suis entré dans le software engineering, c’est parce que j’aime construire des choses et comprendre comment elles fonctionnent
    • Taper du code au clavier n’est qu’un effet secondaire de cette compétence
    • C’est comme dire qu’il faut aimer écrire des équations sur un tableau blanc pour devenir mathématicien
    • En ingénierie, trouver une solution est généralement l’objectif final
    • Quand il est pertinent de tout saisir à la main, un bon ingénieur doit le faire à la main
    • Si la meilleure utilisation consiste à importer une bibliothèque tierce, alors il faut le faire
    • Si confier une partie du code à un LLM est le chemin le plus simple, alors il faut le faire
  • Il existe un concept appelé « Copilot Lag »
    • Il désigne l’état d’un ingénieur qui attend, après chaque tâche, de savoir ce qu’il doit faire ensuite
    • J’ai vécu cette expérience pendant 10 à 15 ans
    • Les LLM ne feront pas tant de dégâts que ça
  • J’en suis arrivé à vouloir abandonner les copilotes de code
    • Je passe la plupart de mon temps à me battre avec eux
    • C’est peut-être en partie ma faute
    • Il y a aussi des problèmes d’UX et d’implémentation
    • Les LLMs sont utiles comme experts intermédiaires sur des sujets variés
    • Mais ils tombent facilement dans une chambre d’écho
    • Il est frappant de voir à quel point ils se heurtent à un mur dès qu’il faut de l’intuition humaine, de la curiosité, de la créativité et de la personnalité
    • Je suis content de les avoir comme un outil de plus dans ma boîte à outils
    • Mais je préfère collaborer avec de vraies personnes