ROADMAP — progression complète

La progression suit 11 niveaux (00 → 10). Chaque niveau a son dossier dans lessons/, son README de cadrage, ses leçons (format : lessons/TEMPLATE_LECON.md), ses exercices et ses solutions. On ne saute pas de niveau : les critères de sortie (checklist du README de niveau) conditionnent le passage au suivant.

Choix assumés (écarts par rapport à un découpage classique)

Détail des niveaux

Niveau 00 — Environnement et outils (3–5 jours)

Installer/vérifier Python, VS Code, le terminal (Git Bash), fichiers .py, lancer un script, REPL vs script, Git et GitHub, save vs commit vs push, premier commit, premier push. Sortie : un script écrit, lancé, commité et poussé sans aide.

Niveau 01 — Bases (1 semaine)

print, variables et références, f-strings, types simples (int, float, str, bool), type(), arithmétique et pièges des flottants, input() (toujours str), conversions et ValueError, chaînes en profondeur (indexation, slicing, méthodes, immutabilité). Sortie : petit programme interactif complet (mini-convertisseur) sans modèle.

Niveau 02 — Conditions, boucles, logique (1 semaine)

if/elif/else, comparaisons (== vs =), and/or/not, while (et boucles infinies), for, range, break/continue, boucles imbriquées, erreurs de logique (off-by-one, condition toujours vraie). Sortie : jeu de devinette fonctionnel, écrit seul.

Niveau 03 — Structures de données (1–2 semaines) ⚠️ difficile

Listes (indexation, slicing, méthodes), tuples, dictionnaires, sets, parcours, ajout/suppression/modification, mutabilité et références partagées (le premier vrai mur conceptuel — du temps supplémentaire y est prévu), copies, choisir la bonne structure. Sortie : analyseur de texte (fréquences de mots) fonctionnel.

Niveau 04 — Fonctions (1–2 semaines) ⚠️ difficile

Pourquoi des fonctions, def, paramètres/arguments, return (≠ print — erreur n°1 du niveau), valeurs par défaut, scope local/global (deuxième mur conceptuel), décomposer un problème en fonctions, tester à la main. Sortie : calculatrice refactorée en fonctions courtes et testables.

Niveau 05 — Fichiers, exceptions, modules (1 semaine)

open/with, lecture/écriture, pathlib, encodages (UTF-8), try/except/ else/finally, lever des exceptions, créer ses modules, imports, organiser un projet multi-fichiers. Sortie : gestionnaire de tâches avec persistance fichier.

Niveau 06 — POO (2 semaines) ⚠️ le plus difficile du parcours

Pourquoi des classes, class, __init__, self (la difficulté n°1), attributs, méthodes, __str__, encapsulation simple, composition, quand NE PAS faire de POO. Sortie : carnet de contacts en POO, expliqué à voix haute.

Niveau 07 — Projets pratiques (2 semaines)

Aucune notion nouvelle : 4–6 projets guidés en ligne de commande (fiches dans projects/), méthode cahier des charges → découpage → implémentation → relecture. Sortie : deux projets menés seul de bout en bout.

Niveau 08 — Tests et bonnes pratiques (1–2 semaines)

Structure d'un projet, nommage, fonctions courtes, refactoring, pytest (premiers tests, cas limites), docstrings, README, commentaires utiles. Sortie : un ancien projet refactoré ET testé.

Niveau 09 — Automatisation, APIs, données (2 semaines)

pip et venv, requests, HTTP, JSON, APIs publiques, CSV, automatisation réelle (rangement de fichiers, rapports). Sortie : mini-app météo consommant une vraie API, avec gestion d'erreurs réseau.

Niveau 10 — Autonomie (2–4 semaines)

Projet complet : cadrage, roadmap, découpage, branches Git, tests, doc, lecture du code des autres, chercher dans la doc officielle, poser une bonne question. Sortie : LE projet final — fini, testé, documenté, poussé, publié.

Plannings

Quatre parcours réalistes (4 semaines intensif, 8 équilibré, 12 recommandé, rythme lent) : docs/plannings.md.

État de production du contenu

Le cursus est complet (2026-07-05) : les 11 niveaux ont toutes leurs leçons et toutes leurs solutions.

NiveauLeçonsSolutions
003/3 ✅
013/3 ✅
025/5 ✅
035/5 ✅
045/5 ✅
054/4 ✅
065/5 ✅
075/5 ✅
084/4 ✅
095/5 ✅
104/4 (dont projet final) ✅

Tous les exemples de code, sorties et tracebacks ont été vérifiés en exécutant réellement Python 3.14 (et pytest 9, git 2.53, l'API Open-Meteo pour les niveaux concernés). Le contenu reste vivant : des exercices supplémentaires et des variantes s'ajoutent à la demande selon les blocages notés dans le journal (prompts dans PROMPTS.md).