Leçon 10/19 8 min

Les pièges du vibe coding

De vibe coder à vibe engineer : responsabilité, tests et maintien des compétences.

C'est quoi le vibe coding ?

En février 2025, Andrej Karpathy (co-fondateur d'OpenAI, ex-directeur IA de Tesla) a inventé le terme vibe coding : "oublier que le code existe" et laisser l'IA tout générer en se contentant de valider le résultat visuellement.

L'idée est séduisante : pourquoi perdre du temps à comprendre le code si l'IA peut le produire ? Le prototype marche, le client est content, on passe à la suite.

Sauf que le terrain raconte une autre histoire :

  • De nombreux responsables techniques rapportent des incidents en production causés par du code IA accepté sans relecture
  • Le code généré par l'IA contient en moyenne plus de bugs et de failles que le code relu par un humain (validations oubliées, fonctions inventées, secrets en clair)
  • Un usage non encadré érode les réflexes de debug et la compréhension de son propre code : c'est le « délestage cognitif » mesuré par plusieurs études récentes

Vibe coding vs vibe engineering

Simon Willison (co-créateur de Django, expert IA) fait une distinction cruciale :

Vibe coding

  • "Ça marche, je shippe"
  • Pas de tests
  • Pas de review
  • Pas de compréhension
  • Zéro responsabilité

Vibe engineering

  • "Ça marche ET je comprends"
  • Tests automatisés
  • Code review systématique
  • Explication ligne par ligne
  • Responsabilité totale

La différence ? La responsabilité. Le vibe engineer utilise l'IA pour aller plus vite, mais il reste responsable de chaque ligne. Il comprend le code, il le teste, il peut l'expliquer. Le vibe coder croise les doigts et espère que ça tienne.

L'atrophie des compétences

C'est le piège le plus insidieux : plus vous déléguez à l'IA, plus vous perdez vos compétences de base. Et la compétence qui s'atrophie le plus vite ? Le debugging.

C'est logique : si vous ne debuggez jamais vous-même, vous perdez l'intuition de "où chercher". Et le jour où l'IA ne trouve pas le bug (ce qui arrive souvent sur les problèmes complexes), vous êtes coincé.

La solution : le "No-AI Sprint". Périodiquement (une demi-journée par semaine, un jour par mois), codez sans IA. Pas de Copilot, pas de Claude, pas de ChatGPT. Juste vous, votre éditeur et la documentation.

C'est comme un athlète qui fait des exercices de base : ce n'est pas sexy, mais c'est ce qui vous garde compétent quand ça compte.

La règle d'or

"Si tu ne peux pas expliquer chaque ligne, tu ne l'as pas appris."

Cette règle s'applique à tout : le code que vous écrivez, le code que l'IA génère, le code que vous trouvez sur Stack Overflow. Si vous ne pouvez pas expliquer pourquoi chaque ligne existe et ce qu'elle fait, vous n'avez pas le droit de la shipper.

What is vibe coding?

In February 2025, Andrej Karpathy (OpenAI co-founder, former Tesla AI director) coined the term vibe coding: "forget that the code even exists" and let AI generate everything while just validating the result visually.

The idea is seductive: why spend time understanding code if AI can produce it? The prototype works, the client is happy, move on.

Except the field tells a different story:

  • Many tech leads report production incidents caused by AI code accepted without review
  • AI-generated code on average carries more bugs and vulnerabilities than human-reviewed code (missing validation, invented functions, hard-coded secrets)
  • Unsupervised use erodes the reflexes of debugging and the understanding of your own code: it's the "cognitive offloading" measured by several recent studies

Vibe coding vs vibe engineering

Simon Willison (Django co-creator, AI expert) makes a crucial distinction:

Vibe coding

  • "It works, I ship it"
  • No tests
  • No review
  • No understanding
  • Zero accountability

Vibe engineering

  • "It works AND I understand"
  • Automated tests
  • Systematic code review
  • Line-by-line explanation
  • Full accountability

The difference? Accountability. The vibe engineer uses AI to go faster, but remains responsible for every line. They understand the code, test it, can explain it. The vibe coder crosses their fingers and hopes it holds.

Skill atrophy

This is the most insidious trap: the more you delegate to AI, the more you lose your core skills. And the skill that atrophies fastest? Debugging.

It makes sense: if you never debug yourself, you lose the intuition of "where to look". And the day AI cannot find the bug (which happens often on complex problems), you are stuck.

The solution: the "No-AI Sprint". Periodically (half a day per week, one day per month), code without AI. No Copilot, no Claude, no ChatGPT. Just you, your editor, and the documentation.

It is like an athlete doing basic exercises: not glamorous, but it is what keeps you competent when it matters.

The golden rule

"If you can't explain every line, you haven't learned it."

This rule applies to everything: the code you write, the code AI generates, the code you find on Stack Overflow. If you cannot explain why every line exists and what it does, you do not have the right to ship it.

🎯 Pratique

S'entraîner (clique pour ouvrir) :

Prompt IA
Avec l'IA

Demandez à Claude d'évaluer vos pratiques actuelles :

Je suis développeur et j'utilise l'IA quotidiennement. Voici mes pratiques actuelles : [décrivez comment vous utilisez l'IA]. Évalue-moi sur une échelle de 'vibe coder' à 'vibe engineer'. Sois honnête. Pour chaque point faible, donne-moi une action concrète à mettre en place cette semaine.
💬 Ré-explique sans regarder
Ré-explique sans regarder

Sans relire l'évaluation de l'IA : avec tes mots, quelle seule chose transforme un vibe coder en vibe engineer, et pourquoi ?

Une bonne explication dit : la responsabilité. Le vibe engineer reste propriétaire de chaque ligne (il la comprend, la teste, peut l'expliquer) ; le vibe coder valide visuellement et espère. Aller vite avec l'IA n'est pas le problème : c'est shipper sans pouvoir répondre de ce qu'on livre qui l'est.
Exercice : Votre charte personnelle

Écrivez vos propres règles pour utiliser l'IA de façon responsable. Au moins 3 règles concrètes que vous vous engagez à suivre. Pensez à : compréhension, tests, review, compétences.

⚖️ Juge le code de l'IA
Accepter ou rejeter le code de l'IA

Tu demandes à l'IA une fonction de remise et tu reçois ceci. Le navigateur affiche le bon prix sur ton panier de test. Ton rôle de relecteur : tu l'acceptes telle quelle et tu la shippes, ou tu la rejettes ?

function applyDiscount(price, code) {
  if (code === "WELCOME") return price * 0.9;
  if (code === "VIP") return price * 0.75;
  return price - price * 0.05;
}
Rejeter. C'est exactement le piège du vibe coding : « ça marche sur mon panier de test » ne veut pas dire que c'est juste. Le return final applique 5% à tout code inconnu (faute de frappe, code expiré, chaîne vide) : un client tape n'importe quoi et obtient une remise. Aucun test ne couvre ce cas, et personne n'a su l'expliquer avant de lire le verdict. Si tu ne peux pas justifier la branche par défaut, tu ne shippes pas.
🧠 Rappel libre
Rappel libre

Sans remonter dans la leçon : qu'est-ce que le « No-AI Sprint », et quelle compétence cherche-t-il à protéger ?

Le No-AI Sprint, c'est coder volontairement sans aucune IA pendant une période courte et régulière (une demi-journée par semaine, un jour par mois) : pas de Copilot, pas de Claude, pas de ChatGPT, juste toi, ton éditeur et la doc. Il protège la compétence qui s'atrophie le plus vite quand on délègue tout : le debugging, c'est-à-dire l'intuition du « où chercher » quand l'IA ne trouve pas le bug.
Qu'est-ce qui distingue le vibe coding du vibe engineering ?
Pourquoi coder parfois SANS IA ?
La règle d'or du développeur assisté par IA ?
Prochaine étape

Le vibe coding fait des dégâts d'autant plus quand on ne peut pas revenir en arrière. La prochaine leçon, Git le filet de sécurité, vous donne le réflexe qui change tout : commiter souvent pour pouvoir laisser l'IA tenter des choses sans jamais perdre votre travail.

Leçon 11 : Git, le filet de sécurité →

Une erreur dans cette leçon, un passage flou, une question ? Écrivez-moi : chaque retour améliore ce cours.

Besoin d'un développeur pour votre projet ?

Réponse sous 24h · Sans engagement