Apprendre à coder a toujours de la valeur
(stevekrouse.com)- Même à l’ère des LLM et du vibe coding, le code reste, au-delà d’une compétence professionnelle, un médium pour apprendre les mathématiques, les méthodes d’apprentissage et l’expression créative
- L’époque où « learn to code » était brandi comme un slogan de mobilité sociale rapide s’est estompée, et quelques lignes de JavaScript ne garantissent pas un salaire à six chiffres
- Comme le montrent les exemples de LOGO et de Mathland, le code permet de comprendre les mathématiques par l’exploration plutôt qu’en mémorisant des consignes, tout en entraînant le débogage, la composition et la logique
- La programmation combine l’imagination de l’écriture, la précision des mathématiques et le feedback immédiat du jeu, en obligeant à formuler le résultat souhaité dans un langage que l’ordinateur peut exécuter
- Même si les LLM manipulent bien l’anglais et le code, la valeur des humanités ne disparaît pas ; de même, le besoin d’une littératie universelle du code demeure
La valeur du code au-delà de la garantie d’emploi
- Steve Krouse, fondateur de Val Town, dirige une « startup de la Silicon Valley » dédiée à l’écriture et au déploiement de code, tout en affirmant que tout le monde devrait apprendre à coder
- Dans Making Sense with Sam Harris #481, il est dit en substance que l’expression « learn to code » n’a plus été entendue dans la Silicon Valley depuis plusieurs mois
- Autrefois, « learn to code » était répété comme une voie rapide pour sortir de la pauvreté, mais savoir enchaîner deux lignes de JavaScript ne s’accompagne pas automatiquement d’un salaire à six chiffres
- Le code mérite d’être appris non seulement pour son utilité professionnelle, mais aussi pour des raisons éducatives, au même titre que les mathématiques, la littérature, les sciences ou les humanités
Un médium pour apprendre les mathématiques et entraîner la pensée
- Le code peut être un médium puissant pour apprendre les mathématiques
- Steve Krouse s’est mis à aimer les mathématiques grâce à un programme de programmation extrascolaire, et est devenu meilleur en maths que prévu
- Seymour Papert voulait que les enfants apprennent les mathématiques comme on apprend à parler, par l’exploration plutôt que par des consignes
- Le « Mathland » de Papert était le langage de programmation LOGO, où l’on donnait des commandes à une tortue à l’écran pour lui faire dessiner des formes
- Steve Krouse a également créé une version de LOGO à essayer en ligne
- En apprenant la programmation, on développe aussi des méta-compétences comme le débogage, la composition et la logique, ainsi que le sentiment qu’il n’y a rien qu’on ne puisse apprendre
La programmation comme activité créative
- Le code est une activité où se rencontrent la créativité de l’écriture, la précision des mathématiques et une boucle de feedback immédiat comparable à celle des jeux vidéo
- Il oblige à affiner ce que l’on veut obtenir dans un langage précis que l’ordinateur peut exécuter
- L’auteur le compare au fait de lancer un sort, dans la mesure où, après avoir appris une syntaxe étrangère, on amène l’ordinateur à créer réellement ce que l’on a imaginé
- Les LLM savent bien écrire à la fois en anglais et en code, mais le code reste important, tout comme la pertinence des humanités ne disparaît pas
- Comme les documents juridiques, le code peut sembler obscur et rempli de détails ennuyeux, mais il constitue l’infrastructure du monde, et une ligne de code élégante peut changer le monde
- La programmation est une activité plaisante, et même à l’ère des LLM, le rêve d’une littératie universelle du code, ou d’une « véritable révolution informatique », perdure
1 commentaires
Avis sur Hacker News
Même parmi les personnes qui savaient coder avant les LLM, les compétences en programmation se dégradent déjà, et cela risque de continuer pendant encore 10 à 20 ans
Apprendre à coder pendant cette même période pourrait ne pas être très rentable
Au bout du compte, le seul code qui servira à entraîner les futurs LLM sera du code généré par des LLM, et la qualité des bases de code en production risque de tomber à un niveau difficile à comprendre pour les humains et difficile à maintenir pour les LLM, jusqu’à ce que les fissures deviennent visibles
À ce moment-là, coder redeviendra une compétence précieuse, mais du point de vue de la planification de carrière, ce moment est incertain, et le marché peut rester irrationnel plus longtemps qu’un individu ne peut tenir
Il faudra toujours des gens capables d’écrire du code eux-mêmes et de restaurer une forme d’artisanat
Si tout le monde dépend du code généré, on ne pourra que répéter ce qui est déjà connu ; seules les personnes qui auront appris la voie difficile par une vraie étude auront la créativité et l’intelligence nécessaires pour produire de nouvelles connaissances et créer de nouvelles bandes éducatives
Les points 1 et 2 — des bases de code en production devenant incompréhensibles pour les humains et difficiles à maintenir pour les LLM — se produiront sans doute, mais pas le point 3, selon lequel le codage redeviendrait ensuite précieux
En particulier, les directions abaisseront leurs attentes, ou y seront contraintes
Il suffit de penser à la fréquence à laquelle une « nouvelle version améliorée » supprime des fonctionnalités importantes que l’on utilisait, sans remplacement adéquat
Quand une base de code deviendra impossible à maintenir, on générera simplement un nouveau tas d’ordures, en appelant probablement “améliorations” des changements aléatoires ici et là
Il y a environ cinq ans, quand Fujitsu a tenté de relancer la production d’ordinateurs portables, la seule méthode réaliste a été de rassembler à nouveau des ouvriers japonais partis à la retraite
La jeune génération n’avait apparemment pas les compétences, ou pas vraiment l’envie de le faire, et après quelques séries de production, cela semble s’être arrêté
Panasonic fabrique encore des ordinateurs portables professionnels, mais ils sont très chers, et cette histoire est directement liée au sujet
Apprendre à coder est indispensable, et il faut savoir ce qui est possible et facile pour savoir jusqu’où on peut formuler ses demandes
Ce qui perd en importance, c’est le fait de garder sa lame constamment affûtée
Si l’on écrit moins de code pendant un certain temps, les erreurs ponctuelles ou les erreurs de copier-coller augmentent, mais grâce aux LLM, l’importance de garder ses réflexes de codage au chaud diminue
Cela dit, si je n’avais pas su le faire moi-même, je ne pense pas que j’aurais pu accomplir mon travail, même avec Fable
Pendant ce temps, plus de gens que jamais créeront et utiliseront des logiciels, et les longues tirades du type « tout part à vau-l’eau » risquent de paraître absurdement exagérées
Dire que « le code est une forme d’expression créative belle et aussi riche que la littérature ou la musique » semble exagéré, et je me demande à quel point l’auteur connaît la littérature et la musique
La majeure partie de la programmation ressemble davantage à de la plomberie
On arrive, on râle sur le travail du précédent intervenant, et on résout un puzzle avec ses contraintes propres
Si les LLM codent bien, c’est parce qu’en programmation, on veut du code ennuyeux et banal
Je n’ai jamais vu un plombier venir insulter le précédent ; il venait modifier quelque chose ou réparer ce que j’avais cassé
Le résultat fonctionnait parfaitement pendant des années, voire des décennies, même si je ne le traitais pas particulièrement bien
Rendre quelque chose ennuyeux et banal, faute de meilleur mot, peut aussi être appelé de l’art
On ne peut pas nommer une fonction comme une abréviation cryptique, ni comme ThisIsTheEntryPointOfTheProgram(), et déterminer ce qui est meilleur fait l’objet de réflexions et de débats sans fin
Comme nous tenons pour acquis les remplacements fréquents et le gonflement, nous considérons ces “petites” choses comme allant de soi, mais un plombier ne ferait jamais cela
Ils n’introduisent pas chaque semaine un nouveau matériau de tuyau avant de passer à la mode suivante ; en général, ils fabriquent des choses qui durent plus longtemps que les humains, si bien que leur métier semble venir d’une planète complètement différente
La demoscene, c’est de la programmation pour le plaisir et l’expression créative, et il y a aussi l’IOCCC
Cela correspond à un roman écrit de façon créative
À l’inverse, il existe aussi de l’écriture pratiquée simplement comme un métier, comme la rédaction de bases de connaissances ; c’est la programmation-plomberie de type CRUD et cloud
Il existe pourtant beaucoup de beaux algorithmes, comme ceux que l’on trouve dans les livres de Knuth, et personnellement je les trouve plus beaux que n’importe quelle musique
On pourrait même soutenir que le code a une plus grande expressivité que la littérature ou la musique, parce qu’il est plus général
Si l’on pense à l’espace de tous les jeux vidéo, démos/intros, images génératives et musiques génératives possibles, rien de tout cela n’existerait sans code
Il me semble que vous confondez les usages courants du médium avec son expressivité
Beaucoup d’usages du langage ordinaire ne sont pas intéressants non plus, mais il faut considérer l’ensemble de l’espace des possibles
Le code est un artisanat, un moyen au service d’une fin
Il peut tout de même être beau, impressionnant et créatif, mais c’est d’une autre nature
Ce n’est pas un jugement de valeur
L’art peut aussi être mauvais ou fade, et le code peut être une œuvre de génie
Mais si un module lunaire ou une montre faite main sont beaux, c’est parce qu’ils fonctionnent réellement ; c’est difficile à comparer à la musique
En tant que programmeur professionnel entré dans le dernier tiers d’une carrière qui a été réjouissante, je range désormais apprendre à coder dans la même catégorie que « gagner sa vie comme poète »
C’est un art vraiment plaisant, et quelques personnes en reconnaissent la valeur, mais mieux vaut prévoir un autre gagne-pain
Les seniors qui savent déjà coder semblent s’en sortir à peu près pour l’instant, mais le travail ressemble de plus en plus au fait de s’occuper d’un modèle comme d’un contributeur junior
Cela me rappelle un vieil ami
Il avait étudié la musique ancienne à Harvard, obtenu un MFA, et était extrêmement brillant
Il lisait et écrivait le latin et le grec, pouvait composer et jouer de la musique en notation médiévale, et avait aussi publié un livre sur la broderie ancienne
Mais il n’a jamais obtenu de poste universitaire, ni trouvé d’emploi ayant besoin de ces compétences
Il est mort seul il y a quelques années
Cela pourrait aussi être le destin de beaucoup de programmeurs
Les gens se sont accrochés à l’idée que les LLM ne peuvent pas vraiment remplacer les développeurs, et c’est vrai, mais ce n’est pas important
Pour que le marché de l’emploi soit fortement secoué, il suffit de réduire le nombre de personnes nécessaires pour gérer les parties que les LLM ne savent pas faire
Si l’efficacité des développeurs existants augmente ne serait-ce que de 30 %, la demande de développeurs peut baisser de 20 %, ce qui a un impact énorme sur la demande et les salaires
En dehors de l’Occident, où l’IA n’est pas adoptée, selon https://hai.stanford.edu/ai-index/2026-ai-index-report, l’IA a stimulé la demande de logiciels
Ce que j’essaie de faire maintenant, c’est construire quelque chose sans utiliser de LLM pour écrire le code
Je m’en sers toujours comme conseiller
Je développe en Elixir un agrégateur de matchs de tournois Dota2 : il récupère les streams des tournois et les organise chronologiquement afin de réduire la gêne liée au visionnage de séries de vidéos en continu sur YouTube
Je le fais parce que j’aime programmer et que j’aime construire des choses
Les LLM me rendent intellectuellement paresseux, et construire avec eux me procure moins de satisfaction
J’ai envie de créer, et vouloir créer est humain
Certaines personnes préfèrent une manière de créer, d’autres en préfèrent une autre, et c’est très bien ainsi
Au fond, beaucoup de gens semblent oublier que la programmation est une activité assez créative
Pour le dire de façon un peu polémique, je pense que créer un programme se rapproche davantage de peindre un tableau que de construire un pont, pour le meilleur comme pour le pire
« Cette immersion même dans le travail est profondément agréable. Le plaisir que l’on tire de l’œuvre achevée après la fin du travail n’est pas le même. L’artiste apprécie le résultat, mais pendant qu’il peint, il apprécie l’art lui-même »
Le problème des LLM est précisément là
Ils m’ont privé du moment où je prends plaisir à l’art même qu’est la programmation
Il y a tellement de données que c’est vraiment amusant, et cela fait clairement de vous un meilleur programmeur
Personnellement, je vois des connaissances qui n’étaient déjà pas de très bons développeurs avant les LLM produire encore aujourd’hui du mauvais code avec les modèles les plus récents
Une connaissance et une compréhension solides d’une bonne architecture et des pratiques courantes restent essentielles
On oublie facilement que les connaissances de base et l’intuition que l’on tient aujourd’hui pour acquises ont demandé beaucoup de temps et d’efforts à acquérir lorsqu’on avait moins d’expérience
C’est un phénomène que j’observe constamment
Les LLM peuvent être un outil d’amplification de la puissance, mais quelqu’un qui ne sait pas poser les bonnes questions ou ne comprend pas les nuances produira du mauvais code, et seuls ces défauts seront amplifiés
Je ne pense pas que les modèles actuels puissent éviter cela, d’autant que leurs données d’entraînement restent historiquement produites par des humains
Quelqu’un connaît-il un mathématicien incapable de faire une division posée ou de l’algèbre de base ?
Probablement pas
Car les maths de base sont nécessaires pour apprendre les maths avancées, donc une telle personne n’existe pas
Le fait qu’une calculatrice fasse les calculs de base n’a aucune importance si l’on veut devenir mathématicien
De même, la question de savoir si « dans cinq ans, le développeur moyen écrira du code à la main » me semble sans rapport avec la nécessité d’apprendre à coder si l’on veut maîtriser, quelle que soit la méthode, la conception et la construction de logiciels complexes
Je ne me souviens absolument plus comment faire une division posée, même si j’en étais certainement capable à une époque
Aujourd’hui, mon calcul mental est aussi très mauvais
Mais sur le chemin pour devenir mathématicien, ces choses étaient indispensables ; elles ont simplement perdu leur pertinence à mesure que le niveau d’abstraction montait
J’ai souvent entendu des mathématiciens plaisanter en disant que « plus on avance, moins on sait faire des maths »
La plupart des mathématiciens devraient réfléchir un bon moment pour résoudre un exercice de division posée, parce qu’ils ont dépassé cette compétence depuis longtemps
Et pourtant, même avec des calculatrices et des notebooks Python, les gens apprennent et pratiquent les mathématiques à la main à tous les niveaux pour faire progresser le domaine
Les gens se plongent trop dans les LLM comme s’ils représentaient tout l’avenir, alors que les LLM eux-mêmes sont entièrement des produits du passé
Les LLM sont moins des machines pensantes qu’une sorte de JPEG avec compression avec perte du langage et des connaissances exprimées par le langage
Par conséquent, pour élargir le domaine et avancer vers l’avenir, on ne peut pas s’en remettre uniquement à des algorithmes de régression vers la moyenne
Le code que les agents IA remplacent principalement n’est-il pas la couche extérieure du développement ?
Des choses comme les applications pour utilisateurs finaux, les apps, les dashboards, les applications métier
Dans cette « enveloppe externe », les gens peuvent tolérer dans une certaine mesure une précision de 99 % ou du code boursouflé, et les apps de vibe coding peuvent aussi prétendre être « suffisamment bonnes »
Il suffit pourtant de voir quel désastre sont devenues les applications Microsoft depuis l’introduction de l’IA
Mais pour les compilateurs, frameworks, outils et bibliothèques cœur, ceux dont les gens doivent vraiment dépendre, on évite encore les LLM
Personne ne veut construire sur du code précis à 99 % ou boursouflé, et personne ne veut utiliser un navigateur web codé par l’IA
Pour fabriquer de très bons matériaux de construction, il faut coder soi-même et savoir ce que l’on fait
Où a-t-on vu un cas qui se rapproche de la suppression progressive du codage dans ces domaines cœur ?
Mais on finit par passer beaucoup de temps à conceptualiser et à affiner les abstractions
Le problème, c’est que la conceptualisation exige un état mental particulier
Avant les LLM, c’était 10 % de réflexion difficile et 90 % d’implémentation
L’implémentation était une forme de récompense, et concrétiser ses idées en état de flow procurait une sensation vraiment agréable
Depuis les LLM, je me retrouve assez souvent à marcher en rond en ne faisant que réfléchir
Maintenant, on est plutôt à 40 % de réflexion et 60 % de planification/revue de code
Depuis, je n’ai plus connu cet état de flow
Réfléchir est intéressant mais épuisant, et relire est simplement pénible
Surtout quand le LLM tombe dans des modes d’échec bizarres
Avant, quand je voyais du mauvais code, je comprenais immédiatement ce que l’auteur avait en tête et pourquoi ça ne marchait pas
Aujourd’hui, il y a moins de code smells, mais beaucoup d’abstractions mal choisies, donc il faut être bien plus prudent
Vraiment épuisant
Tu dis que « personne ne veut construire sur du code précis à 99 % ou boursouflé », mais, l’ami, as-tu déjà utilisé Windows ?
Quand je demande à mes amis et à ma famille autour de moi, tout le monde déteste les logiciels lents et boursouflés
On ne mesure même pas à quel point cela dévore du temps et de la productivité
Depuis l’arrivée des LLM, ça ne s’est pas amélioré, c’est même pire
Si, pour gagner sa vie comme programmeur, il faut se limiter à ces postes-là, la programmation risque de devenir très semblable à un sport
On peut jouer au basket en amateur, ou le pratiquer plus sérieusement au lycée ou à l’université, mais pour en vivre, il faut être assez bon pour entrer en NBA
Je trouve les arguments avancés très faibles
Plutôt que de me donner de l’espoir, ils m’ont déprimé, et si c’est tout ce qu’il reste comme raisonnement, j’ai l’impression que la situation devient vraiment désespérée
Pour développer, si le code est un art, c’est le pire des arts
Cela ressemble bien davantage à quelque chose comme Lego, à la satisfaction que l’on ressent quand on achève un assemblage qui a du sens
C’est peut-être d’ailleurs ce que veut dire l’auteur
Comme pur loisir, cela garde de la valeur
L’affirmation selon laquelle « coder aide en maths » est tout aussi faible
Cela aide clairement en algèbre, mais globalement je pense que les maths façon code aident surtout aux maths façon code
C’est une sorte de mathématiques étrange avec des boucles, des règles et des conditions, qui ne serait jamais devenue dominante si le logiciel n’était pas devenu aussi central
Quand on gratte un peu, ce raisonnement sonne plus circulaire que comme une affirmation ayant une vraie substance
Apprendre à coder, c’est comprendre un problème, le découper en petits morceaux gérables, puis les réassembler
Cela inclut aussi déboguer et itérer vers de meilleurs indicateurs
Ce sont des compétences et des façons de penser extrêmement précieuses, transférables à d’autres domaines de résolution de problèmes
Même avant les LLM, on savait bien qu’on ne pouvait pas prétendre vraiment comprendre un programme sans l’avoir écrit soi-même
Il n’y a pas de raccourci
Le mieux que l’on puisse faire, c’est laisser le modèle le découvrir à notre place
On ne sait pas non plus concevoir une bonne API ni découper un système en modules
Le problème, c’est que beaucoup de managers distinguent mal un bon programmeur d’un vibe coder
Un vibe coder ouvre beaucoup de PR
Peut-être même que le manager lui-même peut ouvrir des PR vibe codées
Ils détestent l’idée qu’un programmeur puisse en savoir plus qu’eux
Parce que cela apprend à penser
https://youtu.be/BRTOlPdyPYU
Ce n’est pas un argument convaincant
Si le meilleur argument pour persuader les gens d’apprendre à coder, c’est que cela ressemble à une notation mathématique — autrement dit à la partie des maths que les débutants détestent le plus — ou que c’est beau comme le violon — autrement dit inutile pour un débutant — alors le code est en grave difficulté
À mon avis, un meilleur argument est que cela aide à penser comme un ordinateur
Mais si c’est ce qu’on veut apprendre, il y a beaucoup de jeux vidéo que je recommanderais de maîtriser avant le code
Pour la plupart des gens, « apprends à coder » ressemble à « apprends l’assembleur » dit à un programmeur
Je code depuis environ 30 ans
Parce que cela entraîne le cerveau
Un cerveau capable d’ordonner, d’interpréter et de comprendre facilement la logique de base et les flux de contrôle résiste mieux à la propagande et à l’influence
C’est le même bénéfice que lire beaucoup, mais cela agit sur d’autres circuits de pensée
On est exposé à davantage de visions du monde, on pense chacune d’elles de façon plus critique, et l’esprit critique en général augmente
Dans un cours universitaire, on peut éventuellement apprendre l’assembleur, mais en dehors de cela, il n’y a pas de motivation
Personne n’avait envie de lire de l’assembleur, et maintenant plus personne n’a envie de lire du code
La résolution de problèmes en soi n’est pas difficile
J’ai vu des gens réinventer en code, sans s’en rendre compte, des blocs de maths « difficiles »
J’ai donc commencé à me demander si les maths n’avaient pas été rendues volontairement horribles
Ce qui m’a été le plus utile pour comprendre les ordinateurs, c’est de fabriquer des portes logiques à la main
Rien ne m’a donné une compréhension plus profonde du fonctionnement d’un ordinateur
La programmation est l’étape suivante
Toutes les couches intermédiaires peuvent être complétées par déduction, donc on peut les sauter
Il n’est pas nécessaire d’apprendre l’assembleur, mais cela vaut la peine d’en lire un peu pour se faire une idée
Comprendre les couches qui vont des portes logiques à l’assembleur, puis à la programmation, aux jeux, et maintenant à l’IA, c’est un peu comme lire le modèle OSI pour comprendre les réseaux
C’est une structure où les couches d’abstraction s’empilent une par une
Ce qui rend la programmation intéressante à apprendre, c’est qu’elle est la couche d’abstraction la plus élevée que partagent toutes les couches au-dessus
Même s’il existe des centaines de langages de programmation, les concepts sont globalement les mêmes, et si l’on apprend un langage pour comprendre la programmation, on peut l’appliquer à presque tous les autres
En revanche, il existe des dizaines de milliers de jeux répartis en centaines de catégories, et si l’on inclut les autres applications, l’arbre des variantes explose à ce niveau