Leçons

Onze niveaux, du 00 (environnement) au 10 (autonomie). Chaque niveau est un dossier autonome :

level-XX-nom/
  README.md            objectifs du niveau, liste des leçons, critères de sortie
  lecon-XX-N-titre.md  les leçons (format strict : voir ../TEMPLATE_LECON.md)
  exercices/           les séries d'exercices du niveau
    mes-reponses/      TES fichiers .py (c'est ton travail, il est versionné)
  solutions/           corrections détaillées, avec raisonnement

Pourquoi les exercices et solutions vivent DANS chaque niveau (et pas dans des dossiers globaux /exercises/easy|medium|hard) : quand tu réviseras les listes dans un mois, tout ce qui concerne les listes sera au même endroit — leçon, exercices, solutions, tes réponses. Trier par difficulté disperse une même notion dans trois dossiers ; trier par notion garde le contexte. La difficulté est indiquée dans chaque série (sections faciles / moyens / difficiles de chaque leçon).

Règle d'or

Ne jamais ouvrir solutions/ avant d'avoir terminé (ou sérieusement séché sur) la série. Les indices progressifs des exercices difficiles existent précisément pour éviter d'aller voir la solution trop tôt.

Ordre de travail d'une leçon

  1. Lire sections 1–7 (objectif → lecture d'erreurs), en tapant les exemples.
  2. Faire les exercices faciles. Vérifier avec les solutions.
  3. Faire les moyens et difficiles. Indices seulement si blocage > 15 min.
  4. Faire le mini-projet.
  5. Cocher la checklist (section 15). Une case vide = on ne passe pas.
  6. Faire le commit conseillé (section 16).
  7. Noter la leçon dans PROGRESS.md et dans ton journal.

Format des fichiers de solutions

Chaque fichier de solutions/ suit ce schéma, exercice par exercice :

## Exercice X

**Raisonnement** — comment on attaque le problème, AVANT le code.
**Solution**    — le code, commenté.
**Pourquoi ça marche** — la ou les notions clés en jeu.
**Erreur classique sur cet exercice** — ce que les débutants écrivent, et pourquoi ça échoue.
**Variante plus difficile** — pour aller plus loin.

Les niveaux

NiveauDossierContenu
0level-00-environnementPython, VS Code, terminal, Git/GitHub
1level-01-basesprint, variables, types, input, conversions
2level-02-conditions-bouclesif/elif/else, while, for, range, break/continue
3level-03-structures-donneeslistes, tuples, dicts, sets, mutabilité
4level-04-fonctionsdéfinition, paramètres, retour, scope, décomposition
5level-05-fichiers-exceptions-modulesfichiers, chemins, try/except, imports
6level-06-pooclasses, objets, __init__, méthodes, encapsulation
7level-07-projetsconsolidation : projets guidés en ligne de commande
8level-08-tests-bonnes-pratiquespytest, structure, refactoring, docs
9level-09-automatisation-apis-donneesHTTP, JSON, CSV, automatisation
10level-10-autonomieprojet complet, roadmap, lecture de code