Apprendre Python — méthode complète

Un parcours structuré, progressif et exigeant pour apprendre Python sérieusement : des bases absolues jusqu'à l'autonomie (projets complets, tests, APIs, bonnes pratiques).

Ce repo n'est pas un cours à lire passivement. C'est une méthode de travail : des leçons, des exercices corrigés, des mini-projets, une routine, un journal, une discipline Git, et un site permanent qui publie le tout.

Pourquoi Python

La philosophie

  1. Comprendre avant de copier. Chaque ligne de code que tu écris, tu dois pouvoir l'expliquer à voix haute. Si tu ne peux pas, tu ne l'as pas apprise.
  2. Taper le code soi-même. Jamais de copier-coller pendant l'apprentissage. La mémoire des doigts compte.
  3. Les erreurs sont le programme. Un traceback n'est pas un échec, c'est la leçon. Chaque leçon inclut « comment lire les erreurs de cette notion ».
  4. Petit et régulier bat long et rare. 30 minutes par jour > 4 heures le dimanche.
  5. Tout est versionné. Chaque exercice terminé = un commit. Chaque fin de journée = un push. Git fait partie du métier, on l'apprend dès le jour 1.

Structure du repo

/lessons        Les leçons, par niveau (00 → 10). Chaque niveau contient
                ses leçons, ses exercices et ses solutions.
/projects       Les mini-projets progressifs et les projets finaux.
/docs           La méthode : routines, plannings, erreurs fréquentes,
                ressources, guide de déploiement.
/journal        Ton journal d'apprentissage (une entrée par session).
/notes          Tes notes personnelles par notion.
/skills         Les rôles que Claude applique pour maintenir ce projet.
/website        Le générateur du site statique (build.py) publié sur
                Cloudflare Pages.

Fichiers de pilotage à la racine :

FichierRôle
ROADMAP.mdLa progression complète, niveau par niveau
PROGRESS.mdOù tu en es (à cocher au fil de l'eau)
CLAUDE.mdInstructions pour Claude : comment maintenir ce projet
MEMORY.mdMémoire du projet : décisions, conventions, historique
PROJECT_STATE.mdÉtat exact : dernière session, prochaines étapes
GIT_WORKFLOW.mdLa discipline Git complète
PROMPTS.mdPrompts réutilisables pour travailler avec Claude

Comment démarrer

  1. Lis docs/methode.md (15 min) — c'est la routine de travail.
  2. Ouvre lessons/level-00-environnement/README.md et fais la leçon 00-1.
  3. À la fin de chaque leçon : fais le commit indiqué en bas de la leçon.
  4. À la fin de chaque session : remplis une entrée de journal/ et pousse (git push).
  5. Coche ta progression dans PROGRESS.md.

La progression (résumé)

NiveauThèmeDurée indicative
0Environnement : Python, VS Code, terminal, Git3–5 jours
1Bases : variables, types, entrées/sorties1 semaine
2Conditions, boucles, logique1 semaine
3Structures de données : listes, dicts, sets, tuples1–2 semaines
4Fonctions : découper un problème1–2 semaines
5Fichiers, exceptions, modules1 semaine
6Programmation orientée objet2 semaines
7Projets pratiques2 semaines
8Tests, bonnes pratiques, architecture1–2 semaines
9Automatisation, APIs, web, données2 semaines
10Autonomie : projet complet de bout en bout2–4 semaines

Détail complet dans ROADMAP.md. Plannings réalistes (4, 8, 12 semaines, ou rythme lent) dans docs/plannings.md.

Le site

Le contenu est publié sur Cloudflare Pages : https://learnpython-5xq.pages.dev

Chaque page embarque le Tuteur Python (bouton « Poser une question », en bas à droite) : il répond en suivant la pédagogie de la méthode — indices d'abord, solution complète seulement sur demande. Il tourne sur Workers AI (Llama), pas sur Claude : bon pour débloquer, moins fiable qu'une vraie session — en cas de doute, vérifie dans la leçon ou demande à Claude.

Build local : website/README.md. Déploiement : docs/deploiement-cloudflare.md (redéploiement : python website/build.py puis NODE_OPTIONS=--use-system-ca npx wrangler pages deploy).

Honnêteté

Cette méthode ne promet pas « Python en 7 jours ». Certaines notions sont réellement difficiles (scope, mutabilité, POO, exceptions) : les leçons le disent et prévoient plus de temps et plus d'exercices à ces endroits-là. Si tu bloques, c'est normal — c'est prévu dans la méthode (voir docs/methode.md, section « transformer une erreur en apprentissage »).