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
- Lire sections 1–7 (objectif → lecture d'erreurs), en tapant les exemples.
- Faire les exercices faciles. Vérifier avec les solutions.
- Faire les moyens et difficiles. Indices seulement si blocage > 15 min.
- Faire le mini-projet.
- Cocher la checklist (section 15). Une case vide = on ne passe pas.
- Faire le commit conseillé (section 16).
- Noter la leçon dans
PROGRESS.mdet 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
| Niveau | Dossier | Contenu |
|---|---|---|
| 0 | level-00-environnement | Python, VS Code, terminal, Git/GitHub |
| 1 | level-01-bases | print, variables, types, input, conversions |
| 2 | level-02-conditions-boucles | if/elif/else, while, for, range, break/continue |
| 3 | level-03-structures-donnees | listes, tuples, dicts, sets, mutabilité |
| 4 | level-04-fonctions | définition, paramètres, retour, scope, décomposition |
| 5 | level-05-fichiers-exceptions-modules | fichiers, chemins, try/except, imports |
| 6 | level-06-poo | classes, objets, __init__, méthodes, encapsulation |
| 7 | level-07-projets | consolidation : projets guidés en ligne de commande |
| 8 | level-08-tests-bonnes-pratiques | pytest, structure, refactoring, docs |
| 9 | level-09-automatisation-apis-donnees | HTTP, JSON, CSV, automatisation |
| 10 | level-10-autonomie | projet complet, roadmap, lecture de code |