23 tickets, pagination vérifiée sur le PDF (2e éd.). Un ticket se coche quand la section est lue et qu'un idiome en a été écrit dans la semaine — lue seule, elle ne compte pas. À ~30 min hebdomadaires tu en traiteras une quinzaine d'ici janvier : c'est une réserve ordonnée, pas une liste à finir.
B1 · micrograd + makemore 1 — 21/09 → 05/10
FP-01ch. 1 · Python Data Model, intégralp. 3–18Value.__repr__ et __add__. Le seul chapitre que Ramalho recommande à tout lecteur, quoi qu'il arrive.
FP-02ch. 16 · Operator Overloading 101 → Unary Operatorsp. 562–568__add__, __mul__, __pow__, __neg__, __sub__, __truediv__.
FP-03ch. 16 · Overloading + → Wrapping-Up Arithmetic Operatorsp. 568–577Opérateurs réfléchis. 2 * v échoue sans __rmul__ — tu vas rencontrer le bug avant de lire la section. Pagination corrigée le 10/09 : la matière commence p. 568, pas 576.
FP-04ch. 9 · Variable Scope Rules → Closures → nonlocalp. 308–316_backward est une closure. Le cœur conceptuel de micrograd, pas un à-côté.
B2 · makemore 2 — 05/10 → 16/10
FP-05ch. 17 · Iterables vs Iterators → generator function → genexpsp. 599–613Construction du dataset, minibatchs.
FP-06ch. 2 · Why Slices and Ranges Exclude the Last Item + Slice Objectsp. 47–49view(-1,6), indices de contexte, et la convention de tranche que tu poses avant chaque TAP.
FP-2bch. 2 · Arrays → Memory Views → NumPyp. 59–67Ramalho construit un memoryview sur un array, modifie un octet, voit la valeur changer des deux côtés. Le pont buffer / vue / copie en Python pur — il éclaire keepdim, la contiguïté et le bug « view échoue là où reshape passe ». Ajouté après lecture du PDF complet.
B3 · makemore 3 — 19/10 → 30/10
FP-07ch. 5 · Overview of Data Class Builders → @dataclass field optionsp. 164–186Objets de configuration d'expérience.
FP-08ch. 6 · Variables Are Not Boxes → Identity & Aliases → Copies Are Shallowp. 202–216Recentré le 10/09 : le déclencheur est le modèle d'aliasing (202–207), pas seulement les copies superficielles — c'est lui qui explique vue-vs-copie en torch, tes trois cartes déjà en deck. Puis le dict de config partagé entre runs (214–216).
B4 · makemore 4, backprop manuel — 02/11 → 13/11
FP-09ch. 7 · Higher-Order Functions → operator → functools.partialp. 234–249Comparaison de gradients, fonctions de vérification.
FP-10ch. 8 · Gradual Typing in Practice → Generic Collections → ABCsp. 255–280Annoter les repos from-scratch, mypy sur tinygraph.
B5–B8 · GPT, BPE, from-scratch — 16/11 → 08/01
FP-11ch. 11 · Object Representations → __format__ / __hash__ → __slots__p. 364–388Classes de modules propres.
FP-12ch. 12 · Protocols and Duck Typing → __getitem__ slice-aware → __getattr__p. 402–411Comment nn.Module expose ses paramètres. Le dynamique est en 408–411.
FP-13ch. 13 · Two Kinds of Protocols → Goose Typing → Static Protocolsp. 434–476Ce qu'est vraiment nn.Module ; socle pour lire du code de labo.
FP-14ch. 4 · Byte Essentials → Basic Encoders/Decodersp. 120–128Le BPE opère sur des octets UTF-8. Seul ticket hors ordre du livre : chapitre de la Partie I, déclencheur en novembre.
FP-15ch. 18 · Context Managers and with Blocks → @contextmanagerp. 658–668torch.no_grad() est un context manager.
Phase 3 · LLM engineering — dès le 12/01
FP-16ch. 9 · Implementing a Simple Decorator → functools.cache / lru_cachep. 317–323Caching d'inférence.
FP-17ch. 9 · Single Dispatch → Parameterized Decoratorsp. 324–335Registries de handlers.
FP-18ch. 19 · Processes, Threads and the GIL → The Real Impact of the GILp. 699–713Serving, batching.
FP-19ch. 21 · Downloading with asyncio → Throttling with a Semaphorep. 782–794Appels LLM concurrents avec rate limit — ton quotidien.
FP-20ch. 21 · Asynchronous Generator Functions → Async Comprehensionsp. 812–818Streaming de tokens.
FP-21ch. 21 · A FastAPI Web Servicep. 799–804Ton stack.
FP-22ch. 15 · TypedDict → Overloaded Signaturesp. 519–534Schémas d'API, structured outputs.
Exclus, à ne pas réintroduire — ch. 3 dicts/sets (acquis) · ch. 10 design patterns par fonctions · ch. 14 héritage multiple · ch. 20 Concurrent Executors (redondant avec 19 et 21) · ch. 22 attributs dynamiques, cached_property comprise — le décorateur seul s'apprend en trois minutes de doc le jour venu · ch. 23 descripteurs · ch. 24 métaclasses : aucun round de labo ne les teste, et Ramalho prévient lui-même que l'abstraction prématurée vaut l'optimisation prématurée · ch. 17 yield from (631–634) — le tri topologique de micrograd s'écrit en DFS simple ; si le code le réclame, le ticket sera émis à ce moment-là.
Deux moitiés d'un même système. Pull : les tickets Linear « learn » que Claude Code produit après chaque itération Relaycat — prioritaires, un concept rencontré s'apprend mieux qu'un concept anticipé. Push : boot.dev, où tout est codé à la main, contrepoids au workflow agentique. Objectif : bases solides en software engineering, niveau moyen en web — savoir build correctement avec Claude Code, pas en autonomie complète.
⓪Learn Pandas105 leçonsL'objet de l'item est le verdict, pas le cours. Pandas n'a pas été touché depuis quelques années, et l'incertitude coûte de l'espace mental en permanence — numpy et torch ont été levés de la même façon, en une séance. Point de décision fixé d'avance : après ~2 h ou le premier tiers, on tranche. Revient vite → déprioriser ou exclure. Résiste vraiment → continuer.
①Learn TypeScript105 leçonsRefait il y a longtemps. Prérequis de toute la chaîne web.
②Learn HTTP Clients53 leçonsFetch, async, erreurs. Vérification plus qu'apprentissage.
③Learn HTTP Servers44 restantes · ~20 hEntamé (8/52). Routes, middleware, auth — le squelette de ce que Claude Code écrit dans Medusa. Tombe vers décembre, quand REL-6/7 multiplient routes et middlewares.
④Memory Management in C102 leçons · 24 hLe seul cours du catalogue qui construit des bases au sens strict : pile, tas, pointeurs, GC. Rien à voir avec le web, tout à voir avec l'objectif software engineering. À l'hiver, quand la Phase 2 rend la mémoire concrète — il rejoint Fluent Python ch. 6 et la contiguïté des tenseurs.
⑤JS runtime — sur ticketpas le coursPas les 113 leçons. TypeScript couvre déjà syntaxe et structures ; ce qu'il ne touche pas, c'est la sémantique d'exécution — this et sa liaison, prototypes, event loop, coercion, closures en boucle. Exactement les bugs invisibles au typage que Claude Code produit sans les signaler.
⑥File Servers and CDNs43 leçonsDéclencheur : la slice images fournisseur de Relaycat.
⑦Pub/Sub RabbitMQ (TS)37 leçons · 32 hDéclencheur : Relaycat sort du synchrone. Cher pour 37 leçons.
⑧Web Security (TS)105 leçonsMarketplace avec paiement en ligne : non négociable avant qu'un euro transite. Mais la slice paiement est à ~1 an — le lire maintenant, c'est le relire plus tard. À programmer 2–3 mois avant.
⑨Learn SQL95 leçonsFond de file : déjà maîtrisé.
⑩Learn Docker43 leçonsFond de file : bases acquises, suffisantes pour Relaycat.
⑪CI/CD Actions + Docker + TS36 leçonsFond de file : au-delà des bases.
Exclus, à ne pas réintroduire — toute la piste Python hors Pandas (dix ans de métier, plus Fluent Python en parallèle) · toute la piste Go : le stack est TypeScript et le fil rouge coding est Python, un troisième langage ne sert pas l'objectif · Kubernetes (hors plan de formation) · Git et Linux (métier) · Power BI, Find a Job · First et Second Personal Project — Relaycat est le projet personnel · Pokedex, Web Scraper, Blog Aggregator : déjà fait ou redondant avec Relaycat.
Volume — ~65 h pour ⓪ à ⑤, à ~2 h par semaine dans le créneau : environ 30 semaines. C'est le rythme, pas un retard.