
Confession : j'utilise Claude Code pour écrire tout mon code à ma place. Et je pense que cela me rend moins bon dans ce que j'aime faire depuis douze ans.
Je vois clairement comment le codage par IA modifie notre cerveau : il pousse les développeurs à rechercher une gratification instantanée plutôt qu'une compréhension approfondie, et nous réduit à des joueurs qui tirent sur des leviers pour obtenir le prochain code fonctionnel.
Si cela m'arrive à moi, qui ai appris à coder avant l'ère de l'IA, qu'en est-il des développeurs juniors qui n'ont jamais connu autre chose ?
Résoudre des problèmes difficiles
À l'âge de 16 ans, seul dans ma chambre à New Delhi, j'étais complètement obsédé par ce problème. Voulez-vous essayer de le résoudre avec moi ?
Il provient du site « Project Euler », l'une des meilleures ressources pour les défis de programmation qui combinent les mathématiques avec vos connaissances en structures de données et en algorithmes. Il s'agit ici du problème n° 15, « Lattice Paths ». Comme tous les problèmes du projet Euler, il peut être énoncé de manière assez simple.
Le problème nous montre déjà à quoi cela ressemble pour 2x2, et vous pouvez facilement esquisser 3x3 (essayez, c'est la première chose que j'ai faite). Mais le défi se présente lorsque vous essayez de visualiser l'échelle : pouvez-vous imaginer la taille du résultat pour une grille 20x20 ?
J'ai passé des semaines sur ce problème, griffonnant des diagrammes sur tous les morceaux de papier que je pouvais trouver, harcelant mes professeurs de mathématiques jusqu'à ce qu'ils m'évitent, et même rêvant d'algorithmes pendant plusieurs nuits.
Pouvez-vous imaginer passer des semaines sur un seul problème aujourd'hui ? Juste réfléchir, échouer, réfléchir encore ?
J'ai tout essayé. La force brute. La récursivité. Dessiner des grilles jusqu'à en avoir des crampes aux doigts. Rien n'a fonctionné.
Puis, un bel après-midi, dans le bus qui me ramenait de l'école, j'ai eu une révélation. Il ne s'agissait pas du tout de trouver un chemin.
Il s'agissait de combinaisons. Pour atteindre le coin inférieur droit, il faut exactement 20 mouvements vers la droite et 20 mouvements vers le bas. La question peut être reformulée ainsi : de combien de façons peut-on organiser ces mouvements, ou de combien de façons peut-on choisir 20 mouvements parmi 40 ? Et cela nous donne la réponse, C(40,20).
J'ai eu un mini moment d'euphorie qui m'a rendu tout excité jusqu'à ce que j'arrive chez moi. J'ai allumé mon PC et codé la solution en dix minutes. J'ai obtenu la réponse : 137846528820. J'ai cliqué sur « Soumettre » et j'ai été accueilli par l'écran de réussite sur Project Euler, et la pure satisfaction de voir des semaines d'efforts culminer en cet instant glorieux.
Mais voilà le truc : le chiffre en lui-même n'avait pas d'importance. Ce qui comptait, c'était ce moment où tout s'est mis en place. Quand des semaines de confusion ont soudainement pris tout leur sens. Cet état de flux, d'immersion totale et de compréhension.
Je n'aurais pas ressenti cela si je n'avais pas passé tout ce temps à réfléchir à la question, ou si j'avais triché et cherché la réponse en ligne.
Mais je ne l'ai pas fait, et l'excitation que j'ai ressentie était purement magique. J'étais amoureux.
Addiction à l'IA
Il y a quelques mois, j'étais confronté à un bug complexe de gestion d'état. Bien sûr, le débogage de l'état React est le fond du baril en matière de plaisir, à peine mieux que d'essayer de naviguer sur Internet avec une connexion lente et des pertes de paquets, alors j'ai (paresseusement) collé l'intégralité du problème dans Claude pour le laisser s'en occuper.
Puis (et c'est là que les choses ont commencé à mal tourner), j'ai basculé sur Twitter pendant qu'il réfléchissait.
Mais mon esprit s'est contenté de penser « oh, cool ». Je n'ai rien ressenti.
Enfin, ce n'est pas tout à fait vrai.
J'ai ressenti quelque chose : une satisfaction creuse que mon code fonctionne désormais. C'était le même sentiment que lorsque je fais défiler TikTok ou que je termine un autre niveau dans un jeu mobile. Cette satisfaction bon marché de « quelque chose s'est passé ».
Si vous avez déjà codé avec l'IA, vous comprendrez peut-être ce que je veux dire :
Je saisis une commande, avec toute mon énergie. L'IA dit qu'elle « réfléchit » (même si tout le monde sait qu'une IA ne réfléchit pas vraiment, elle nous ment effrontément. Mais je souris à cette illusion, et j'y crois peut-être même un peu).
Je sais qu'il faudra environ une minute avant d'obtenir la réponse. Que suis-je censé faire pendant ce temps, réfléchir ? L'IA va déjà le faire pour moi, beaucoup plus rapidement, et me donnera le résultat correct (probablement).
Je vérifie à nouveau. C'est fait. Je ressens une brève poussée de dopamine lorsque je vois que c'est terminé. Cool.
Je vérifie le code (j'ai menti, je me contente de lire ce qu'il m'indique et non le code réel). Il est assez bon, mais bien sûr, l'IA a fait quelques suppositions erronées, il y a donc quelques erreurs.
Je donne à l'IA une autre instruction pour corriger cela, et nous répétons notre petite danse.
Entrer une instruction, obtenir un code.
Tirer le levier, obtenir une récompense.
Pas de lutte, pas de perspicacité, pas de croissance.
Le cerveau et l'IA
Voici ce qui se passe dans votre tête lorsque vous « vibrez avec le code » et que vous vous fiez entièrement à l'IA : vous obtenez de la dopamine d'une mauvaise source.
Avant l'IA, la programmation me procurait deux poussées de dopamine : comprendre comment les choses fonctionnaient ET les faire fonctionner. Le moment décisif où l'on comprend pourquoi son algorithme a échoué. La satisfaction d'avoir conçu quelque chose d'élégant. La joie de voir le code fonctionner après des heures de débogage.
Aujourd'hui, c'est l'IA qui se charge de tout comprendre. Il ne reste plus qu'un plaisir superficiel.
Si vous y réfléchissez bien, ces 30 secondes d'attente pour obtenir une réponse de l'IA peuvent être considérées comme un programme à ratio variable (des récompenses aléatoires délivrées à des intervalles imprévisibles), le même schéma psychologique qui rend les machines à sous, les réseaux sociaux et les jeux mobiles addictifs.
Si cela m'arrive à moi, imaginez ce que cela fait aux développeurs qui n'ont jamais connu autre chose.
Nous sommes en train de créer une génération de développeurs capables de livrer du code, mais incapables de raisonner sur les systèmes.
Nous sommes en train de créer une génération de boutons de fusion humains qui approuvent les commits de l'IA sans comprendre ce qu'ils déploient.
Ils ne vivront jamais ce moment Project Euler. Cette lutte de plusieurs semaines qui apprend à un nouveau programmeur à réfléchir, et pas seulement à copier-coller. Ils passent à côté des défis mêmes qui les rendraient excellents.
L'illusion
Le pire, c'est que cela semble incroyable et que cela fonctionne réellement (en général). L'IA me donne l'impression d'être productif et les fonctionnalités sont livrées plus rapidement. Le graphique GitHub s'illumine en vert.
Mais la vitesse n'est pas synonyme de compétence. Lorsque vous externalisez la réflexion, vous ne perdez pas seulement de l'entraînement, vous perdez aussi confiance en vous. Cette petite voix qui vous disait « Je peux y arriver » s'affaiblit à chaque fois que vous vous tournez vers l'IA.
Comment utiliser l'IA (sans perdre son âme)
Je ne dis pas qu'il faut abandonner l'IA, car ces outils sont rapidement devenus trop puissants pour être ignorés. Mais nous devons réfléchir à la manière dont nous les utilisons.
- Forcez-vous à comprendre le code généré avant de l'accepter. Si vous ne pouvez pas expliquer ce qu'il fait et pourquoi, ne le fusionnez pas. Cela semble évident, mais vous serez surpris de voir à quelle fréquence les nouveaux développeurs sautent cette étape.
- Entraînez-vous régulièrement à résoudre des problèmes sans IA. J'ai recommencé à faire le projet Euler. Il s'agit d'un entraînement délibéré à la programmation. Mes capacités de résolution de problèmes étaient plus rouillées que je ne le pensais, mais elles reviennent peu à peu.
- Utilisez le temps d'attente de l'IA pour faire quelque chose de productif. Au lieu de faire défiler Twitter ou Reddit, vous pouvez réfléchir à l'architecture de votre prochaine tâche pendant que l'IA s'occupe des détails de mise en œuvre. (Utilisez des applications de blocage des réseaux sociaux si nécessaire. J'utilise Opal sur mon téléphone pour cela).
- Et surtout, n'oubliez pas pourquoi vous écrivez du code. C'est pour créer quelque chose à partir de rien, pour résoudre des problèmes qui semblaient impossibles et pour construire des choses qui comptent. N'oubliez pas pourquoi.
L'avenir
Même lorsque l'IA aura imprégné toutes les étapes du cycle de vie du développement logiciel, les meilleurs développeurs resteront ceux qui sont capables de réfléchir en profondeur à des problèmes complexes.
Je suis optimiste quant à l'IA pour le codage. C'est une technologie révolutionnaire qui me rend plus productif que jamais. Mais la productivité sans compréhension n'est qu'un copier-coller élaboré.
L'IA doit amplifier votre intelligence, pas la remplacer. Utilisez-la pour relever des défis plus importants, pas pour éviter de réfléchir.
Car le jour où nous cesserons de nous débattre avec des problèmes difficiles sera le jour où nous cesserons d'être des programmeurs pour devenir tout autre chose.
Source : "Vibe Coding Is Creating Braindead Coders"
Et vous ?


Voir aussi :




Vous avez lu gratuitement 650 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.