Every track · one week at a time
One week at a time, every track, only the part that is due — and a tick here is a tick on the track page, because there is one copy of everything.
Aug 2026 onward · all tracks, one scale
The week page is deliberately short-sighted. This one is the corrective: every dated block on every track, drawn to the same scale, so the weeks that are quietly impossible are visible in September rather than discovered in October.
Every deadline, each class weekend, each four-day and the vacation, and the plan's own turning points — the next six months. The chart above is the shape; this is the list.
Three tracks, one calendar, and only one of them has deadlines set by somebody else. That settles the order — the rest is making the consequences explicit rather than letting them happen quietly.
NIC-6913 runs four class weekends and five quizzes between 22 August and 25 October. The dates are fixed, the room is ICC-B in Bethesda, and a missed quiz is a graded event. Nothing else on this site has that property, so nothing else gets to argue with it.
What that costs. The CS plan was written in August against an August calendar and has not been on it since. That gap does not close by being read every morning; it closes by re-basing the phase dates once, on a date that is already chosen — 26 October, the Monday after the last taught weekend. Until then CS is on a maintenance floor of about three hours a week, which is enough to stop it going cold and not enough to pretend it is the priority.
What it does not cost. Fitness is not a project and does not get paused for a term, because the thing that makes it work is that it never stops. What it gets instead is a split that already knows about the class weekends: sessions that fall on one are removed from that week rather than carried as a debt you were never going to pay.
Further out. The position is military, so nothing here ends the degree. Separation is roughly eighteen months away — spring 2028 — which puts the transition window (TAP, clearance disposition, the move) around spring 2027. Not a track yet; a date to have on the horizon so it is not a surprise.
National Intelligence College · MSTI · MEP weekend program
Two courses on the same four weekends. NIC-6913 Science & Technology Intelligence with Dr. Rocco Blais, and NIC-6122 Peacekeeping and Stability Operations with Professor Bill Colligan. Weekend 1 was 22–23 Aug; the rest are 12–13 Sep, 3–4 Oct and 24–25 Oct.
Friday — travel, FBNC to ICC-B. Saturday — 6122 seminar at 0730 · 6913 class 1340–1700. Sunday — 6122 seminar at 0730 · 6913 class 1200–1520, then the drive home.
All four weekends are in person, so each one is a three-day commitment: roughly thirteen hours of class and ten of travel. That is the fact the rest of this planner is built around. Three of the four also carry a 6122 deliverable due at 0730 — before the day begins, not at the end of it — which means finished Thursday night, because Friday is the drive. A class weekend is not a buffer; it is the most expensive time in the term.
Both courses are discussion-led rather than lecture-led, which changes what preparation means. Blais runs 6913 Socratically — dialogue over lecture, probing questions, shared responsibility. Colligan runs 6122 as a graduate seminar with short framing talks, structured discussion, small-group exercises and student presentations, and grades participation at 10%. In a lecture course the reading is how you keep up. In both of these it is the price of admission.
Each course's cycles are split into read-ahead and the weekend itself, because that is how the work actually falls. Three weeks of runway per weekend, shared between two syllabi, and every failure mode of this term is the same one: leaving the runway unused and then meeting the weekend at speed.
Dr. Rocco Blais · Saturdays 1340–1700, Sundays 1200–1520 · ICC-B Roberdeau Hall 2E-200E · office 2E-500V. Ten sessions across the four weekends — weekends 2 and 3 run three sessions each. Textbooks are OpenStax Chemistry: Atoms First 2e (ch 1–2) and Muller, Physics and Technology for Future Presidents (ch 1–9, PDF on Blackboard).
Professor Bill Colligan, Strategic Studies · Saturdays and Sundays 0730 · classroom TBD · office 2E-300T. Eight seminar sessions and four graded deliverables. Three are due at 0730; the End State brief is presented in the Sunday session of weekend 3.
FBNC to ICC-B, roughly 300 miles, four times. The hours are counted here rather than assumed away — about ten per weekend on top of thirteen hours of class, which is what makes a class weekend the most expensive time in the term.
The three written ones are due at 0730, before the session rather than after it; the End State brief is presented live on 4 October.
Turabian 9th edition, or ICD 203 for classified sources — and if an assignment is classified, an unclassified placeholder goes into Blackboard by the deadline while the real submission is coordinated with the instructor.
Late work. Nothing higher than a B for the first 48 hours. After 48 hours it is an F, and a referral to the Dean of Faculty and Academic Programs. An extension has to be requested in advance and confirmed in writing — email or Blackboard message is enough. Trouble uploading is explicitly not a reason for a delay; you email it to Colligan and fix the upload afterwards.
AI. Different for every assignment, so it is written into each row. The Reading Review permits none at all. The Mid Term allows it to organise but not to write. Both briefs allow it for gathering data and producing graphics.
Attendance. More than one missed session in an eight-week term risks academic penalty or withdrawal. Eight sessions across four weekends means a missed weekend is two sessions.
| Assignment | Weight | Due | What it is |
|---|
The quizzes are 15% of this course. The written work is 75%, and nearly half of the whole grade is decided at weekend 2.
Two approval gates. The STEM Summary Paper needs its topic approved by session 4 and the Formal Oral Presentation needs its NIC report approved by session 6. Neither is a deliverable, both are easy to miss, and together they gate 30% of the course.
One conflict to resolve with Blais. The schedule table says every assignment is due at the start of class; the submission section — and his mail of 22 August — say 2359 on the due date. Those are fourteen hours apart on a day you are in a classroom. This planner assumes the earlier one, which is the only assumption that cannot hurt you. Ask, and correct it.
Late work. Identical to 6122: nothing above a B for the first 48 hours, an F after that, and extensions must be requested in advance and confirmed in writing.
| Assignment | Weight | Due | What it is |
|---|
Multiple-choice and short answer on the readings and the concepts from class, due before sessions 2, 4, 6, 8 and 9. Answered in Blackboard under Assignments — the rubric applies only there — and filed as Edmonds_6913_Quiz N. Worth 15% of the course between them.
| Quiz | Topic | Due | Status |
|---|
Four of them, three weeks apart, each carrying both courses across both days. These are the fixed points the rest of the calendar has to bend around — including the training split, which already knows about them and drops any session that lands on one.
| Weekend | Dates | Subject | Status |
|---|
Twelve courses and a thesis. Six are behind you or in front of you this term, which means the back half is exactly as long as the front half was — and every course in it is a choice, where the first four were not.
| Requirement | Done | This term | Left | Constraint |
|---|
Two courses a term, four terms a year, so the six remaining courses are three terms: winter, spring and summer 2027. The thesis follows them. Nothing about that is tight — but nothing about it has slack either, and a term missed is a quarter added at the far end.
Spring is partly assigned already. MCR 701 runs for MEP students in the spring only, so one of the spring two is spoken for and the other is an elective. That makes winter the term that carries the last core, and summer the term that has to carry two electives with no core left to hide behind.
Four of the five remaining electives must be MSTI. One is free. Spend the free one deliberately rather than discovering in summer 2027 that it was used on whatever had a weekend section open.
| Term | Course one | Course two | Status |
|---|
Terms after this one are the shape, not the schedule: the courses are named as core or elective because which specific course fills each slot is the decision the RODC conversation and winter registration settle. Once a term is registered, it gets dated blocks like this one.
RODC — Research Options for Degree Completion, AY2027. The route to finishing, and a decision rather than a form. It wants making while the faculty are still in front of you every three weeks, not in the quiet after the term ends.
MCR 701. Offered to MEP students in the spring only — confirmed by Dr. Bailey in July, after you asked about a weekend section in the fall. So the spring is already partly spoken for, and the open question is which research route it feeds rather than when to take it.
Not local. You are at FBNC, the classroom is at ICC-B, and all four weekends are in person, staying at hers in DC and driving the half hour out to Bethesda each morning — so the term costs roughly forty hours of driving on top of everything the two syllabi ask for, and no lodging. Those hours are on the travel blocks above rather than left implicit, which is why a class week reads as expensive as it actually is.
Every session, reading, weight, due point, approval gate, late policy and AI rule on this page is transcribed from the two syllabi rather than summarised. Where a syllabus says something exact, this page says it exactly.
The open question is 6913's due time. Its schedule table says assignments are due at the start of class; its submission section and Blais's mail of 22 August both say 2359 on the due date. This page plans to the earlier reading because that is the assumption that cannot cost you a grade — but it is an assumption, and one email settles it.
Two smaller ones: 6122's classroom is still listed as TBD, and the 6913 syllabus gives the presentation as due at session 10 (25 Oct) while the session entry asks for visual materials by 23 Oct. Both are on the page as written rather than reconciled by guesswork.
The house · standing · the sink, then fifteen minutes somewhere
The sink first — straight after the cook while the pans are warm, or last thing before the focus on a night you do not cook. It keeps a run, and the run ends the first night at home you skip it. Then one reset at 2100, before the wind-down, and each weekday owns a different part of the house — so no evening is ever given over to cleaning and no room goes a week untouched. Saturday takes the job that never gets done, from a rotation, because choosing which job it is has always been the thing that stops it.
Meals · standing · dinner tonight is lunch tomorrow
Four cooks on a normal week, each under thirty minutes and each making at least two portions: tonight's dinner and tomorrow's lunch. The air fryer and the rice cooker are what make thirty minutes true — protein in one, grain in the other, vegetables into the air fryer for the last eight minutes — so most of the half hour is waiting. The Tovala keeps one job: its steam mode brings the lunch portion of chicken, salmon or rice back better than a microwave or a basket ever will.
The week's shape comes from the fixtures already on the planner. Tuesday and Thursday are tennis nights, so Monday cooks three portions and Tuesday is a ten-minute reheat at 2045; Thursday and Friday are the nights out, each paired with the next day's lunch out. On a class week Monday and Wednesday cook three each, Thursday packs the weekend, and Friday to Sunday are eaten in DC, at hers.
The grocery list is generated, not written: this week's recipes times their portions, plus the breakfast and post-training staples, grouped by aisle and tickable on the phone in the store. Twelve recipes rotate so nothing repeats inside a fortnight. No red meat anywhere.
The parts of eating that do not change week to week, and the one rule each of them carries.
Around 2,600 kcal and 160–180 g of protein a day, which is maintenance at 162 lb on a push-up-led training week. A dinner or lunch portion here averages about 730 kcal and 48 g protein — estimates from raw-weight ingredient values, and the one figure you control is the cooking oil, at 120 kcal a tablespoon. Breakfast and the post-training food carry another 60 g of protein between them. That adds up without anyone counting, which is the only way it ever adds up.
Chicken is tenderloin — already cutlet-thin, so no knife and eight minutes in the air fryer — and never cooked past 160°F, because overcooking, not the cut, is what makes it chewy the second time — and it never lands on a three-portion night, where the last portion is reheated after tennis; on ground turkey because it is the fastest protein there is; on canned beans, tuna and eggs because they close a protein gap for almost nothing; and on a rice cooker because rice made while you are not watching it is the cheapest satisfying calorie in the kitchen.
Strength and conditioning · standing · no end date
Built from the record AFT of 15 September: 442 of 500, at 6'0" and 162 lb. Sprint-drag-carry 100, run 92, plank 88, hand-release push-ups 83, deadlift 79. The deadlift is the lowest score and the most expensive to raise; push-ups are the gap this plan is arranged around, and the plank, which slipped from 94 in March, is the cheapest points on the sheet.
Push-ups are the only event in every version of the Army test ever fielded. The run is the second. The plank is in the current test and in the reported three-event version. The deadlift and the sprint-drag-carry are in the current test only — and they are the two you already score highest on.
So if the reporting is right and it goes back to push-ups, plank and run, the two events carrying your score today stop counting, and push-ups go from a fifth of the test to a third. The weakest event becomes more important, not less. That is a rare case where the change-proof move and the highest-value move are the same move.
What follows. Push-ups get frequency — two sessions a week, and in the last block one of them becomes a timed simulation, never to failure, prescribed as a percentage of a tested max. The plank is trained twice a week, in test position, back toward the 3:35 where the points stop. The run gets real interval and tempo work instead of easy miles. The lifting stays for strength and durability rather than for score.
Where the sessions live. In the PT window before work — up at 0635, the session 0650 to 0740, cool down, breakfast, shower, out of the door at 0845 — fifty minutes, and every session is written to fit it. Tennis on Tuesday and Thursday evenings shapes the week: those mornings get the light session, nothing leg-heavy and no intervals; Sunday is a true rest day; Saturday's long run is optional on a week where both lessons happened, because they were the conditioning. On a weekend away — flagged on the week page — the Saturday session travels: the hike is the long easy, a hill or a flight of stairs is the hard part, and the plank needs only a floor.
Sixteen weeks below, from 14 September to the first week of January: push-up base, push-up build, the record AFT on 17 November and a week of recovery, then a peaking block that teaches the raised ceiling to appear inside a two-minute window. They are generated rather than written — a block is a split plus a number of weeks, so writing them out by hand would only be a way of introducing typos.
The generator knows about the NIC class weekends and the travel Fridays. A session that lands on a class day is removed from that week; one that lands on a travel Friday moves to the Thursday. That is why some weeks below have four sessions and others six — the plan working, not the plan slipping.
Each has one aim and one rule. The rule is the part that gets broken first, so it is written down.
Five dates on which the plan finds out whether it is working, instead of finding out on the test. Each floor is the straight line from September to the November target, rounded down a rep, on a day that already tests: the block A retest, a test-order session in block B, the record itself, and the two simulations in block D. Type the actual in and the box turns green or red. A red box changes the next block, and the last column says how; it never moves the record date.
| When | Where | Push-ups | Plank | Run | If short |
|---|
Measured in September, ordered by how much score is available in each. The last column is yours to fill in from the record AFT on 17 November. Scores are estimates against the published male 22–26 tables and worth re-checking against the current scorecard — but the ranking is not in doubt, and the ranking is what the plan is built on.
| Event | Points | 15 Sep AFT | Target | Why it sits here | Retest |
|---|
Every session above has a 💬 note on it. Put the numbers in it — 5×14 HRP @ 40% or 6×400 @ 1:42 is enough. It syncs with everything else and it is what next week's session is written from.
The one number to keep current is the tested 2-minute push-up max, because every push-up prescription in the plan is a percentage of it. Retest at checkpoint 1 on 10 October, checkpoint 2 on 31 October, and on the record test. Between those, train the percentage and resist the urge to find out.
And the rule that makes the rest work: a repeated week is not a failed week. If a session was missed or the reps got ugly, run the same week again rather than taking the scheduled jump. The blocks are built to absorb that; what they cannot absorb is a percentage you did not earn being carried forward for five weeks.
Track three of three · keep warm until 25 Oct · run-up from 26 Oct
The eight-phase plan below was written for ten hours a week that stopped existing when the fall term started, and re-dating it would only pretend otherwise. It is shelved — the pages, the content and every tick you made all stay — and what replaces it on the calendar is shaped by one fact.
The August trial produced an offer of a military position. Only the report date is open. So there is no interview to prepare for, and the question the window has to answer is how useful on day one, whenever day one is — which has the same answer whether that day is in January, in June, or never: work in their stack, against real code, closing the gap list the trial produced. The August plan called this the run-up track and never scheduled it.
In your words, from the trial: Kubernetes, Rancher, Argo; being able to intuit how a full codebase interacts; FastAPI; and more you did not know than you did. Against that, one thing that worked — getting a great deal out of Claude Code — and it is the reason there is an offer. The plan is built on both halves.
The gaps are the three things the tool helps least with when the model in your head is missing. You cannot prompt your way to intuiting an architecture, and you cannot debug a cluster without knowing what a Deployment is. So the run-up builds those models by hand — manifests written before they are generated, request paths drawn on paper, five breakages diagnosed from kubectl alone — and puts one rule over all of it that turns the strength into a learning engine: Claude Code writes; you explain. Nothing merges that you cannot walk through with the tool closed.
The sharpest single move for gap 1 is writing the repo's CLAUDE.md. A good one needs you to know how it runs, how it tests, where things live and why — a forcing function for exactly the gap, and something you hand the team on day one. It is week 1, and it is revised in weeks 7 and 9 as the map gains paths.
Where CS50AI went. Its first four units are minimax and propositional logic, which an agent shop does not use; its two lectures that matter, neural networks and attention, are watched inside the run-up. The rest is the next window, listed below undated. Until the term ends: a keep-warm floor on non-class weeks, with the kata in the stack the gap list names.
Ranked by how much each would hurt on day one. The last column is the test — a gap is closed when its sentence is true, not when its week is over. The first keep-warm week writes the trial summary — the full list, ranked — and week 1 promotes its top three extras into the slots in weeks 2, 4 and 8.
| # | Gap | Where it closes | Closed when |
|---|
Seven units, twelve projects, roughly sixty hours. It runs in the spring at spring-term pace if the start date is still open by 17 January, or in the first quiet stretch after it if not. Undated on purpose — a date here would be a guess dressed as a plan.
| Unit | Hours | What it is |
|---|
The CS major with the fluff removed — eight phases, ordered, to scale. Kept as written, dates included, as a record of what August thought. Nothing here is scheduled and nothing here is behind. The ledger and the phase pages still work; when a window opens that can hold one of these, it comes down.
The plan runs downward into the machine and never ran upward into operations. These are disciplines rather than topics — they get concentrated hours in Phase 04, but a phase that ends is the wrong shape for them, so each one also has a standing rule that applies from now on.
The prescription for shipping unstable changes, and the fastest way to stop looking junior in review. Standing rule: no phase project is finished until it has tests that fail when you break it on purpose.
Logs, metrics and tracing — reading a system you didn't write while it's failing. Standing rule: when something breaks, find it from its output before you read its source.
For an AI system this is the testing story: a question set with known answers, scored, so you can tell whether a change helped. Standing rule: never claim a retrieval or prompt change improved anything you didn't measure.
Who can see which document, enforced inside the query rather than after it. Carried as a work-track deep dive on the OpenSearch side, where you already have the domain, and revisited in Phase 08.
Every one of these is in the JHU catalog. Each is cut for a reason, and each has a known cost you can pay later if you need to.
Two lab sciences. Zero relevance to the capability you're building.
You need integration for probability and partials for gradients — one week of it, in Phase 06. Nothing else earns its hours.
Estimator theory and hypothesis-testing ritual. Come back only if you go deep on ML or research.
Skim decidability and halting for the ideas. A full course is philosophy, not leverage.
Phase 04 gives you the working model. The full courses are specialization, not core.
Replaced by contributing to a real open-source codebase — reading 100k lines you didn't write is the actual skill.
Phase 00 · 12-day sprint + trial fortnight · Aug 5–27 · ~68 hours
Twelve days, Aug 5 through 16, with the 17th as the deadline rather than a work day. Weekdays run 3.5 hours; the two weekends run 5.5, which is where the lost day gets paid back without raising the weekly average above 25.
The order matters more than the hours: a crude version of the whole pipeline runs by Day 4, and everything after that is improvement rather than assembly. Nothing of yours deploys on the 17th — the point of building it end to end is that you'll be reading and changing someone else's version of the same thing.
Then the phase continues, lightly, through the trial itself. Blocks 13 and 14 run about an hour a day from the 17th to the 27th, and almost none of it is planned in advance — the fortnight generates the syllabus and you close the gaps it exposes. Phase 01 starts on the 28th, once the trial is behind you rather than on top of it.
Ten lectures, nine problem sets, one final project — and under a deadline you're not doing all of it. Six modules block the build and get days assigned; four wait until after the 17th.
| Module | What it gives you for the target | When |
|---|
Your Deep Agents build is the CS50P final project. Submit it as such if you want the certificate later. It's the only part of the course with no starter file, no given signature, and no spec — which is exactly why it's the real work rather than an assignment.
Twelve days, longer on weekends. At this pace the shape matters more than the hours — these are what keep a sprint from becoming a blur.
Ten modules, nine psets, final project. Your current spine.
cs50.harvard.edu/python146 exercises across 17 concepts, free human mentoring. Not for this sprint — there aren't spare windows. This is what you move to after the 17th, in place of Mimo.
exercism.org/tracks/pythonThe harness. Overview, quickstart, then tools, subagents, backends, permissions, skills, memory, streaming.
docs.langchain.com · deepagentsRead it, don't just import it. The best architecture lesson available to you right now.
github.com/langchain-ai/deepagentsList pods, stream logs, apply manifests, watch events. pip install kubernetes
Operator framework. A full operator in two files: a Dockerfile and a Python module. Stable, v1, well documented.
kopf.devMoved off the top of the page. None of it is required before starting — it is here for when you want the reasoning behind a decision, or a rule you half-remember.
Tracing a bad answer backwards to retrieval-versus-generation is the single most useful skill in this domain, and most people conflate the two. Work down, never sideways:
Bad answer → Was the right evidence in the model's context? Yes → prompt or generation problem. No → was it in the search results? Yes → context-selection problem. No → was it indexed at all? Yes → retrieval or ranking problem. No → ingestion, extraction or chunking problem.
Do not touch the prompt until you know which box failed. Saturday's mastery challenge enforces this: five bad answers, prompt edits forbidden, fix retrieval instead.
The whole system reduces to six operations, and everything else is sophistication around them. By Sunday you write all six from memory: chunk_document, embed, index_chunks, search, build_context, answer.
Deliberately not this week: LangChain internals beyond the closing bridge, LangGraph, agents, MCP, fine-tuning, GraphRAG, multimodal RAG, Kubernetes, HNSW mathematics, cluster tuning, custom plugins, anything with a frontend. Know that graph RAG, agentic RAG and long-context-instead-of-retrieval exist; nothing more.
Six days before the trial, the employer said what the work actually is: integrating their existing retrieval-augmented generation system into another AI offering, starting with several days of reading both implementations, and arriving with at least a passing familiarity with RAG and OpenSearch.
The plan at that moment contained zero mentions of RAG, OpenSearch, chunking, reranking or hybrid search — and seven hours of Kubernetes operators, which the task description does not mention at all. Days 8 through 12 are now a single four-day bootcamp building one cumulative project: OpenSearch without RAG, then vector RAG end to end, then retrieval engineering against an eval set you write yourself, then production thinking and a cold rebuild from an empty directory.
The hours fit, once the travel is accounted for properly. Wednesday is a conference evening and gets two hours, no more. Thursday's 9–11 flight is two usable offline hours for the paper and mechanical work — the architecture drawing, the vocabulary, git — with the hands-on starting when you are home at 12:45. Friday is a full working day from 8 to 4, and the five-hour drive afterwards is additional time rather than a subtraction: ninety minutes of deliberate verbal work in the car and then music, because you will have been at a keyboard for seven hours. About 34 hours across the five days. Against eight-hour Thursdays and Fridays that leaves about three hours of slack — and that slack is buffer, not capacity. Day 2 runs long by design because PDF extraction is a swamp, and the plan's own rule is that hour markers are sequence rather than schedule. Let Friday bleed into Saturday rather than skipping a step. If it all runs clean, the optional closing item is LangChain's RAG tutorial, done last of all, so you can see which parts are the framework's framing and which are the machinery underneath — and that is your on-ramp back to Deep Agents.
The operator work is deferred rather than deleted, on the same terms as the four CS50P modules — genuinely useful, not on the critical path for the next six days. Day 10's first operator is the cheapest version of it and worth coming back to once the trial is behind you.
Async. CS50P never covers it, and both halves of this sprint assume it: the harness runs on an async runtime and kopf handlers are async def. Now an hour on Day 3.
Logging. A container has no console. Logs are the whole debugging surface on the cluster, and retrofitting them on Day 9 is miserable. Now Day 2.
In-code runaway controls. The one genuinely agent-specific risk. Step limits, tool timeouts, retry caps with backoff, a circuit breaker, a token budget checked in state. Day 4, before the first surprise rather than after it.
LangGraph underneath the harness. Deep Agents is a wrapper. If the team writes LangGraph directly, knowing only the wrapper is the gap that surfaces fastest. Ninety minutes on Day 11 building one graph by hand.
Provider swap and reproducibility. Point the harness at a different model — hosted or local — to find where that seam is, and make sure the repo runs from a clean clone. Both are Day 12, both are cheap now and annoying later.
The per-task minutes after the CS50P modules are budgeted for someone meeting this material cold. You aren't, on the infrastructure half, so expect to come in under on most of the build days. That's fine and it doesn't break anything: the pace meter compares budgeted minutes done against budgeted minutes expected, so finishing a 90-minute task in 50 still credits 90 and the verdict stays honest. Only the "hours done" figure overstates.
When a day runs short, the reclaimed time goes to the kata ladder rather than to finishing early — that's the weak point, and it's the one thing here a decisive fortnight will actually test. The ladder tops out at difficulty 4 on purpose, but if you're clearing those comfortably the next rungs are all-your-base and spiral-matrix (4), then forth and zebra-puzzle (5). forth is a stack-machine interpreter and the best reasoning exercise on the track at that level.
Phase 01 · six weeks · Aug 28 – Oct 8 · 70 hours
Straight on from the sprint: still Python, still building things that run, no new mathematical machinery and no prerequisites you don't have. Six weeks at roughly twelve hours — a different pace from Phase 00 on purpose, because this one doesn't compress the same way.
One rule governs the whole phase. Build the structure from scratch before you solve a single problem with it.
The task lists below specify about 55 of the 70 hours. The rest is unallocated on purpose — your own implementations will have bugs, and debugging code you wrote is the learning rather than an interruption to it. If a week runs clean, spend the slack on drilling.
It was the original recommendation here and it was wrong for this point in the plan.
6.006 is an MIT sophomore course that lists discrete mathematics as a prerequisite, and lecture one opens with models of computation and proving solutions correct. Coming off CS50P you'd burn your energy fighting the framing rather than learning the structures — and the framing isn't what you're here for yet.
The Runestone book is built for exactly this gap. Its own preface says it assumes you may still be struggling with basics from a first course and are ready to go further anyway. It's Python, it's free, and the code runs in the browser, which suits how you learn better than a lecture hall recording does.
6.006 isn't discarded — it moves to week six, as a sharper second pass over material you've already built. Read that way it lands as tightening rather than teaching. And the proofs it does are the ones you'll be equipped for after Phase 02.
The argument above still stands: 6.006 is the wrong spine for this phase. What's been added since is a parallel lecture track, for weeks where leading with a lecture and using the book as reference suits you better. The spine is unchanged — Runestone, build first, drill second.
Read the table below before you rely on it. Two of the six weeks have no lecture behind them at all, and one has only half. A parallel track you assume is complete is worse than no track, because you find out in the week it fails you.
The optional lecture track is UC San Diego's Data Structures on Coursera — Python-friendly, free to audit, and paced for this point rather than for an MIT sophomore. It does not cover the whole phase. This is what it covers and what it leaves you.
| Week | Lecture coverage | Verdict |
|---|
Where a week has coverage, watch the lectures instead of reading the corresponding Runestone chapter, not in addition to it. This phase specifies 55 of its 70 hours and the remaining fifteen are for debugging your own implementations — which is the learning. Adding a lecture track on top of the reading is how a twelve-hour week quietly becomes eighteen.
Weeks 2 and 5 are the ones to plan around. Recursion and graphs are both weeks where you'd be back on the book regardless, so don't schedule them expecting a lecture to carry you.
Everything you write from nothing, and the few things you only read about. Each of these lands in one repo with tests, and by week six it's the artifact that proves the phase.
| Structure | What building it teaches | Verdict |
|---|
Handed an unfamiliar problem, your first instinct is to ask what structure it wants — and you're usually right.
The concrete test: twenty problem statements you haven't seen, and for each one you name the structure and justify the choice in a sentence, without solving any of them. If you're above sixteen, you're done. Below twelve, you skipped the implementing.
The spine. Free, interactive, code runs in the browser. Chapters 2 through 7 are the whole phase: analysis, basic structures, recursion, sorting and searching, trees, graphs.
runestone.academy · pythonds3Week six only, as a second pass. Free lectures, notes, and problem sets, taught in Python. Come back to it properly after Phase 02.
ocw.mit.edu · 6.006 Spring 2020The optional lecture track. Free to audit, paced for this point rather than for a sophomore course. Covers weeks 1, 3 and 4; see the coverage table above for what it leaves out.
coursera.org · ucsd data structuresOnly if you want week 5 on lectures. A separate course, so it's a second enrolment for two weeks of material — Runestone chapter 7 is the cheaper path.
coursera.org · algorithms on graphsProblems organized into a deliberate sequence rather than a pile. Start it only after you've built the structure a problem uses.
neetcode.io/roadmapReference, not reading. Look things up in it; don't work through it. 6.006 uses it as an optional companion for exactly this reason.
mitpress.mit.edu · CLRSAfter you've built your own dynamic array and hash table, read how the real ones work. The comments are unusually good.
github.com/python/cpython · ObjectsMoved off the top of the page. None of it is required before starting — it is here for when you want the reasoning behind a decision, or a rule you half-remember.
The standard failure mode is going straight to problem sites. You get fast at recognizing which structure a problem wants and never learn what the structure costs — so you can pick a hash table but can't tell me why it degrades, or why a poor key choice quietly turns your O(1) into O(n).
Writing your own is what makes the costs real. Every week here is implement first, drill second, and the drilling is much faster afterward because you're recognizing machinery you've already built.
Where the problems are. Every problem named in this phase is on LeetCode's free tier — search it by name, none of them are premium. NeetCode's practice list groups the same problems by topic, marks their difficulty, and has a free video walkthrough for most, which makes it the better front door. Use the roadmap for ordering and LeetCode for the judge.
Attempt in your own editor first, not the web one. Keep a drills/ directory next to structures/ in the same repo. That is not tidiness — it is so you can reach for the hash table you built rather than for dict. Solve it once with your own structure, then once with the built-in, and notice where yours is slower and why. That comparison is the entire reason this phase drills after building rather than instead of it.
Then paste into LeetCode to check. Their edge cases are the genuinely useful part — empty input, one element, duplicates, the enormous case that times out. That is what the site is for; the editor is not.
One timer for the session, not per problem. When it rings you stop, wherever you are. If you stall for twenty-five minutes on a medium, read the topic tag or the first hint — never the solution — and write down which stage you stalled at: understanding the problem, choosing the structure, or writing the code. After six weeks that log tells you what to fix, and it is more useful than the count of problems solved.
Each week's drill names specific problems in three tiers — easy, then medium, then hard — and they are meant to be done in that order. The easy ones are not filler: they are where you confirm the structure you just built behaves the way you think it does, and they should take minutes. The hard one is usually not finishable in the time allotted, and attempting it anyway is the point. Stop when the clock runs out, wherever you've reached.
This is still drilling after building, not instead of it. The rule above doesn't change — if you haven't written the structure from scratch, the problems teach you pattern-matching and nothing else, which is the failure this phase is arranged to avoid. Roughly eleven of the phase's fifty-five specified hours are drill; the ladder is there so none of that time goes on deciding what to attempt.
Phase 02 · six weeks · Nov 20 – Dec 31 · 45 hours · +1 optional
So the whole phase is built around that. Week one contains no proofs at all. The first proofs you write are about data structures you built yourself in Phase 01. And every technique here has a fixed shape you can look up — proofs are far more formulaic than their reputation suggests.
Six weeks at about seven and a half hours. Slower than anything else on the plan, deliberately. A seventh week on automata and computability sits at the bottom as an optional extension — take it and Phase 03 starts a week later.
The single most anxiety-reducing fact about proofs: each type has a fixed skeleton. You're not inventing an argument from nothing — you're picking a form and filling it in. Keep this table open for the first month.
| Type | Reach for it when | The skeleton |
|---|
When you're stuck on a proof, the question is almost never "what's the clever idea." It's "which shape is this." Work down the table: can I go direct? Is the contrapositive easier? Is there a smallest counterexample to rule out? Is there a recursive structure to induct on?
Nine times in ten, choosing the right shape does most of the work, and the rest is bookkeeping.
Not typed. Handwriting is slower, and the slowness is the mechanism — you can't autocomplete your way past a step you don't understand. This is also the one phase where the assistant does the most damage. Struggling with a proof is how the skill forms; watching someone else's finished proof is how you learn to recognize proofs without being able to write one.
Hammack develops proofs the way you'd actually think them through rather than presenting them finished, and there are fully written-out solutions in the back. That combination is the whole reason it's the right book here — but only if you write your attempt before you look. Reading a worked proof feels like learning and isn't.
Given a recursive function, you can write a correctness proof by induction without a template in front of you.
The concrete test: take a recursive function you wrote in Phase 01 that you haven't proved anything about — the BST search, or the recursive flatten. State precisely what it returns, then prove it. Base case, inductive hypothesis, inductive step, no reference material. If you can do that in twenty minutes, Phase 03 will work.
The spine. Free, and the Runestone version has interactive exercises with instant feedback. The 4th edition reorganized to start with logic and proofs, then practise those proofs on graph theory — which is exactly the order you want.
runestone.academy · dmoi-4The proof-technique companion. Free PDF. Assumes very little, develops proofs as a thought process rather than a finished artifact, and has fully worked solutions in the back.
richardhammack.github.io/BookOfProofstructures/ repoPhase 01's output, and the source of nearly every proof you write in weeks 2 through 4. Proving things about code you wrote beats proving things about arbitrary objects.
LocalOptional. Free lectures and a well-regarded textbook, considerably more rigorous. Dip into a lecture when you want a second explanation; don't adopt it as the spine. This is the one phase that deliberately has no parallel lecture track — watching finished proofs is how you learn to recognise proofs without being able to write one, which is the exact failure this phase exists to prevent.
ocw.mit.edu · 6.042JMoved off the top of the page. None of it is required before starting — it is here for when you want the reasoning behind a decision, or a rule you half-remember.
This isn't hard math in the sense that decayed on you. There's almost no computation in it. It's careful argument — stating exactly what you're claiming, then showing it holds in every case rather than the cases you happened to test. That's structurally much closer to building an appellate argument than to integration by parts, and you already do the hard version of that professionally. What's unfamiliar is the notation, not the reasoning.
Two things are true about the difficulty. It genuinely feels foreign at first — expect roughly two weeks. And almost nobody quits after that point. The risk window is narrow and it's at the very start, which is why the first fortnight here is deliberately gentle.
Their proof course, CS103, states plainly that there are no math prerequisites — high-school algebra is enough. What it does require is the programming course before it, and it leans on recursion from that course throughout. That's the same ordering you're running: structures and recursion first, proof second, and no calculus anywhere near it.
They also run an entire optional companion course, CS103A, purely for extra proof practice and problem-solving strategy, described as existing because math is a skill that takes practice to develop. A university with Stanford's admissions bar staffs a support course specifically for this transition. The wall you're anticipating is real, institutionally acknowledged, and routinely got over.
Phase 03 · nine weeks · Jan 1 – Mar 4 · 90 hours · trim pending
Twice the size of anything else here. This is where you stop being someone who can code and start being someone who can say whether a plan is feasible before anyone builds it — and where the two phases before it finally pay off at once.
Nine weeks at about ten hours, including one deliberately fallow week over the holidays. One algorithmic idea per week, each closed out by a small implementation — the structure UC San Diego's Algorithmic Toolbox uses, and it works because a week's idea sticks better when it ends in something that runs.
The task lists specify roughly 77 of the 90 hours. The remaining thirteen are slack for the weeks that overrun — and in this phase that will be weeks 4 and 5, because dynamic programming always takes longer than the estimate says.
The counterpart to Phase 02's proof shapes card, and the harder of the two. Most algorithm problems are not hard because the technique is hard — they're hard because you picked the wrong technique and spent an hour before noticing. Work down this table before writing anything.
| Paradigm | The tell | What you must verify |
|---|
Each week's twenty-minute task is the minimum; the better version is a small implementation that uses the week's idea on data you care about. Karatsuba on big integers. Dijkstra on your own dependency graph. Edit distance on two versions of a file you wrote. It takes an hour and it's the difference between having read about an idea and having used one.
Go down the list, not to your favourite. The single most common failure is reaching for dynamic programming when a greedy choice is provably safe, or reaching for greedy when it isn't — and the second one produces code that passes your tests and is wrong.
When you can't tell, write the brute-force recursion first. It's always correct, it makes the subproblem structure visible, and if the subproblems overlap you've just discovered you're in dynamic programming territory. That path is the whole design of weeks 3 through 5.
You can look at a proposed system and give a defensible answer on whether it scales — before it's built.
The concrete test, in three parts. Given an unfamiliar problem: name the paradigm and justify the choice. Write the recurrence and solve it for a bound. And when the honest answer is that no efficient algorithm exists, recognise that and propose an approximation instead of searching for one that isn't there. The third part is the one that separates this from interview preparation.
The spine. Free, Creative Commons, grew out of years of lecture notes at Illinois. Chapters 0 through 8 and 12 are this phase; the flow chapters are the deliberate skip. Appendix II on solving recurrences is worth reading in week 1.
jeffe.cs.illinois.edu · algorithmsCo-spine, not a footnote. You met it as a second pass in Phase 01; here it paces the phase alongside Erickson — lectures lead, the book is the reference underneath. It lists discrete mathematics as a prerequisite, which is exactly why it belongs after Phase 02 rather than before it. Ninety hours across nine weeks is the one budget on the plan that absorbs a lecture course comfortably.
ocw.mit.edu · 6.006Not the course; the assignments. Autograded implementations on large datasets, which is the one thing neither Erickson nor 6.006 gives you. Take them as each week's closing implementation and skip the sixteen-week shape.
coursera.org · algorithms specializationVolume, especially for the dynamic programming section in weeks 4 and 5. Use it after Erickson's treatment, never instead of it.
neetcode.io/roadmapReference only. Look things up; don't work through it. Useful when you want a second statement of a proof.
mitpress.mit.edu · CLRSMoved off the top of the page. None of it is required before starting — it is here for when you want the reasoning behind a decision, or a rule you half-remember.
Erickson's Algorithms — the spine for this phase — states its own prerequisites plainly: discrete mathematics including predicate logic, sets, functions, recursive definitions, trees and graphs as abstract objects; and proof techniques including direct, indirect, contradiction, exhaustive case analysis, and induction, especially strong and structural induction.
That is Phase 02's syllabus, almost line for line. You'll arrive holding exactly the tools this book assumes, which is the difference between reading it and fighting it. Its author also notes it isn't suitable as a first course in data structures and algorithms — which is why Phase 01 came first.
Phase 04 · six weeks · Oct 9 – Nov 19 · 55 hours · moved up
The phase that answers "why is it slow" and "why did it crash" — questions nothing at the language level will ever explain. Six weeks at about nine hours, and structurally the most enjoyable stretch on the plan.
Nand2Tetris is the spine and it's built for how you learn: you construct a working 16-bit computer from NAND gates upward, with automated tests at every layer.
The task lists specify about 45 of the 55 hours. The rest is slack, and in this phase it goes to weeks 2 and 3 — a chip that fails its test script can eat an evening, and that debugging is the learning rather than an interruption to it.
The organising idea of the phase, and the third of these tables after Phase 02's proof shapes and Phase 03's paradigms. Each layer exists to let you ignore the one below it. That works until it doesn't — and when something breaks, the question is which layer you're actually in.
| Layer | What it lets you ignore | What leaks when it breaks |
|---|
When something is slow or wrong, walk down rather than sideways. Most debugging failure is staying at the language level — rereading your code — when the symptom is actually a cache miss, a page fault, a linker mismatch, or a cgroup limit. The symptom tells you the layer if you know what each one sounds like.
That's the whole reason this phase exists, and it's why the two layers you already met in Phase 00 sit near the top of the table rather than at the bottom.
You can profile something slow and form a real hypothesis about why, rather than guessing at the code.
The concrete test: take a program that's underperforming and, before changing anything, name the layer you think is responsible and say what evidence would confirm it. Then go get the evidence. Being right isn't the bar — having a falsifiable hypothesis instead of a hunch is.
The spine. Build the gates, the ALU, the registers and RAM, the CPU, and the assembler. Automated tests at every step, and there's a browser IDE so there's nothing to install.
nand2tetris.org/courseThe same six projects with the authors' lectures attached, free to audit — you only lose graded submission and the certificate, and the projects self-test anyway. The cheapest lecture track on the plan: same spine, same order, nothing to reconcile.
coursera.org · build a computerThe hardware simulator, in the browser. Load your HDL, run the supplied test script, get told immediately whether the chip is right.
nand2tetris.github.io/web-ideTargeted chapters only — data representation, the memory hierarchy, linking, and concurrency. Reference for weeks 4 through 6, not a book to read cover to cover.
CSAPP, 3rd edition
Phase 00's output, and the thing this phase explains. Every week has something in it you can point at running.
Local
Moved off the top of the page. None of it is required before starting — it is here for when you want the reasoning behind a decision, or a rule you half-remember.
Nothing depends on this and it has no prerequisites, so it's the one to pull forward if the math phases start to grind. But it also compounds harder than anything else with the work you'll have been doing since August: you borrowed ten hours of it back in Phase 00 to make containers legible, and this is where the layer underneath that arrives.
The through-line is the abstraction stack at the bottom of this page. Every layer hides the one below it until something breaks, and then the layer you don't understand is the one you're stuck in. By March there shouldn't be one.
Phase 05 · four weeks · Mar 5 – Apr 1 · 30 hours
The shortest substantial phase on the plan, and the one with the most immediate payoff for the work you'll have been doing since August. Embeddings, similarity, attention, retrieval — all of it is this, and none of it makes sense without it.
Four weeks at about seven and a half hours. No calculus needed, which is why it comes before the calculus refresher rather than after.
The fourth of these reference cards, after proof shapes, paradigms, and the abstraction stack. Every row is one object, its picture, and where you've already met it without knowing its name.
| Object | The picture | Where you meet it |
|---|
The exit criterion for this phase is reading the linear algebra in an ML paper as description rather than as noise. That's a translation skill: the notation is dense, but it's describing operations on shapes, and the shapes are what you're building intuition for.
When you hit an unfamiliar expression, ask what it does to the space rather than what it computes. That question is answerable from four weeks of work; the arithmetic question mostly isn't, and mostly doesn't matter.
You can read the linear algebra in an ML paper as description rather than as noise.
The concrete test: open a paper on something you actually care about — retrieval, attention, embeddings — and read the equations. For each one, say what it does to the space in a sentence. You don't need to derive anything. If you can narrate the shapes, you're done.
The spine for intuition. Fifteen short chapters, entirely geometric, and the single best explanation of the subject that exists in any medium. Watch it twice if needed; it's under four hours.
3blue1brown.com · linear algebraWhere the arithmetic lives after week one. Build each operation by hand once, then use the library and never hand-compute a determinant again.
numpy.org · absolute beginnersOptional, and the classic. Lectures free on OCW. Dip in when you want a second explanation with more rigour; don't take it as the spine — its emphasis on hand computation isn't what you need.
ocw.mit.edu · 18.06Free book. Part one is linear algebra written specifically for where you're heading, which makes it a better second source than a general textbook.
mml-book.github.ioMoved off the top of the page. None of it is required before starting — it is here for when you want the reasoning behind a decision, or a rule you half-remember.
Learn it geometrically, then implement it. Do not learn it as arithmetic. Most linear algebra courses teach you to row-reduce matrices by hand, which is the one skill you will never use and the one that makes people believe they hate the subject.
Every concept here has a picture attached — a matrix is a transformation of space, a determinant is how much it stretches area, an eigenvector is a direction the transformation doesn't rotate. Get the picture, then write the code, then let NumPy do the arithmetic forever after.
Phase 06 · one week · Apr 2 – Apr 8 · ~10 hours
You took Calc I and lost it, which is fine, because you need about four ideas from it and none of the mechanics. This is intuition repair, not a course — the smallest phase on the plan, placed one week before the only phase that uses it.
Three blocks: watch, drill, then code it. The last one is what makes it stick.
Essence of Calculus is twelve chapters and roughly three hours. You need about half of it. The skips aren't laziness — they're the parts that exist to gate engineering majors rather than to serve you.
| Chapter | Why | Verdict |
|---|
One artifact settles it.
You can write gradient descent from scratch on a function of two variables — no library, no reference — and explain out loud what every term in it is doing and why the minus sign is there.
That single program uses all four things this phase exists to give you: derivative as rate of change, the chain rule, partial derivatives, and the gradient. If you can write it cold, you're done. If you can't, you know exactly which of the four is missing.
Twelve chapters, geometric intuition rather than mechanics. The whole watch block.
3blue1brown.com · essence of calculusWhere partial derivatives and the gradient live. Grant Sanderson wrote and narrated much of this series, so it's continuous with the videos above.
khanacademy.org · multivariable calculusChain rule drills only. Ignore the rest of the unit.
khanacademy.org · differential calculusYour answer key. Differentiate and integrate symbolically to check what you computed by hand or in code.
sympy.orgMoved off the top of the page. None of it is required before starting — it is here for when you want the reasoning behind a decision, or a rule you half-remember.
This was Phase 01 on the first draft, which was wrong. Nothing in data structures, proof, algorithms, systems, or linear algebra needs calculus — it's load-bearing only for probability and for reading the gradient in an ML paper.
Learning it first would have meant six months of decay before first use, on material that is pure intuition and therefore decays fastest. Here it sits one week ahead of Phase 07, which is the only thing that consumes it.
Phase 07 · five weeks · Apr 9 – May 13 · 35 hours · last of the fundamentals
The last phase of the core, and the one that underwrites the most: machine learning, randomized algorithms, average-case analysis, cache behaviour, cryptography, and every honest claim anyone makes about whether a system works.
Five weeks at seven hours. Also the subject most improved by already having Python — for every concept, write the Monte Carlo version and watch it converge.
The last of these reference cards. Every distribution is a story about how something is generated — and picking the right one is almost entirely a matter of recognising which story you're in. Blitzstein's book builds a flowchart showing how they all relate through conditioning or through limits; this is the practical version of that.
| Distribution | The story it tells | You meet it when |
|---|
Read the middle column first and ask which one describes your situation. Almost everyone reaches for the normal distribution by reflex, and it's frequently the wrong answer — latency isn't normal, retry counts aren't normal, and assuming otherwise is how confident people produce badly wrong estimates.
When none of the stories fits, that's real information too: it means you should simulate rather than reach for a closed form. Which is the whole method of this phase anyway.
You can quantify uncertainty in a system you built, and you reach for simulation before you reach for a closed form.
The concrete test: take a claim you'd want to make about your own work — this agent is better, this change reduced latency, this failure rate is acceptable — and state it with an honest interval around it. Say how many observations you'd need to believe it, and what would change your mind. If you can do that without looking anything up, the core is finished.
Nine months, 383 hours, eight phases. What comes next is on the electives page: probe three in mid-May, then one concentration with real depth. Neuromatch's prerequisites are Python, linear algebra, probability, statistics and calculus — you'll have finished the last of those the week before their July cohort opens.
Worth doing on the last day: reread the plan page. Not for nostalgia — to notice which of the things that looked hardest in August turned out not to be, because that recalibration is what you'll use to scope the next thing you decide to learn.
The spine. Free online, second edition. Notable for story proofs — proving results by interpretation and by counting the same thing two ways, rather than by algebra. That technique is Phase 02 cashing in.
probabilitybook.netThe lecture track, and the best-matched one on the plan: the book's own author teaching the book, free on YouTube, chapter for chapter. One caveat — it's 34 hours of video against a 35-hour phase, so take half the lectures at most. Probability is a doing subject and the problem sets are where it lands.
stat110.hsites.harvard.edu · youtubeThirty-four lectures, free, Blitzstein teaching the book. Watch selectively rather than all of it; the chooser table tells you which topics you actually need.
stat110.hsites.harvard.edu/youtubeThe interactive version — animations, embedded problem-solving, complementary to the lectures rather than a substitute. Free to sign up, and it suits how you learn better than passive video.
stat110.hsites.harvard.eduWhere every concept gets tested. One notebook per week, one simulation per idea. By May this is the most useful artefact the phase produces.
LocalMoved off the top of the page. None of it is required before starting — it is here for when you want the reasoning behind a decision, or a rule you half-remember.
Simulate before you derive. Every concept gets twenty lines of Python that generate the thing and count outcomes, run before you work through the algebra. You'll be nine months into a plan that started with Python; this is where that becomes a genuine mathematical advantage rather than just a skill you happen to have.
Bayes in particular clicks permanently the first time you simulate a counterintuitive result and watch the number arrive exactly where the maths promised. That experience is not available to someone learning this from a textbook alone, and it's most of the reason this phase sits at the end rather than the beginning.
Phase 08 · five weeks · May 14 – Jun 17 · 40 hours
Added late, because the destination changed. Everything before this phase makes you someone who can build; this is the one that gets you hired to. It is also the round most experienced candidates fail, and the only major interview topic the rest of this plan does not touch at all.
Five weeks at eight hours. Four of content and one of pure performance — because system design is a skill you demonstrate live, not one you recall.
Handed an unfamiliar system to design, you clarify the requirements before drawing anything, estimate before choosing, and can defend every component with what it costs rather than what it is called.
The concrete test: five designs run against a clock, out loud, with the retrospective written. If you are still rushing the requirements stage by the fifth, that is the drill — not more reading.
The spine, and the reason this phase is forty hours rather than a hundred. Chapters 5, 6 and 9 are the core; it teaches the concepts rather than the interview.
dataintensive.netFree online. SLIs, SLOs and error budgets in week four — the framing that turns "how reliable should this be?" from a guess into a budget.
sre.google · sre-bookFree, comprehensive, and the right shape for week five rather than week one. Use it as a checklist against your own designs, never as the syllabus.
github.com · system-design-primerWeek one asks you to watch two end to end and note the sequencing rather than the content. This is the phase where watching genuinely helps, because the thing being taught is a performance.
hellointerview.comMoved off the top of the page. None of it is required before starting — it is here for when you want the reasoning behind a decision, or a rule you half-remember.
Most system design material is a question bank: memorise fifteen designs, recognise which one you have been handed. That works until an interviewer asks why, and it produces engineers who can name a pattern but not price it.
So the spine here is Kleppmann's Designing Data-Intensive Applications, which teaches the concepts underneath — replication, partitioning, consistency, the actual content of CAP — rather than the shapes on top. The question bank is week five, once you have something to reason with.
Timeouts, retries with backoff, circuit breakers and a token budget were Day 4 of Phase 00. Delivery semantics, idempotent consumers and backpressure were November's stack-gap weekend. Indexes, transactions and isolation levels were that weekend and Phase 01's SQLite work. Access control through a retrieval layer was the RAG bootcamp.
What you lack is not the ideas — it is their vocabulary, their failure analysis, and the reflex to price a choice rather than name it. That is a much shorter distance than starting cold, and it is why forty hours is enough here.
Electives · probes · concentration · Sep 2026 – 2027
The core plan makes you competent. This decides what you're competent at. Three cheap probes spread across the core, then one concentration with real depth — plus the two habits and one weekend that cost almost nothing because they run on hours you're already spending.
The first block is the exception to "electives are optional." The August fortnight was the trial, and it produced an offer; only the report date is open. Either way the four months between are the only stretch of this plan where you never work with another person — that block fixes it for about an hour a week.
Nothing here competes with core hours. The failure mode for this plan was never difficulty, it was attrition.
The last column is yours. Fill it in after each probe, in your own words, while it's fresh — the whole point of a probe is that it produces evidence, and evidence you don't write down turns back into a hunch within a fortnight.
| Interest | How you described it | What the probe tests | Verdict |
|---|
The concentration question and the business school question are the same question in different clothes. If the honest end state is research-adjacent work connected to neuroscience, an MBA is a strange instrument for getting there. If it's leading AI organisations, it's a very good one.
That's not a call anyone else should make. But notice the sequencing: probe one lands in early October 2026, probe two in March 2027, and the concentration in the summer. Every one of those produces information the Darden decision needs, and all of them arrive before it has to be made.
The worst version is deciding by default — letting the deadline choose because the probes never happened.
Free, complete, self-paced curricula in Computational Neuroscience and NeuroAI. Notebook-based. This is probe one and, quite possibly, the concentration.
neuromatch.io · open resourcesThe taught version: pods, TAs, projects, a global cohort. Runs each July, so July 2027 lands almost exactly where the core plan ends.
neuromatch.io/coursesPython, linear algebra, probability, basic statistics, and calculus including derivatives and ODEs. Read this list against Phases 05, 06, and 07 — the overlap is close to exact.
compneuro.neuromatch.io · prereqsEvery probe extends what you already built rather than starting fresh. Green-field probes don't get finished; extensions do.
LocalMoved off the top of the page. None of it is required before starting — it is here for when you want the reasoning behind a decision, or a rule you half-remember.
You described the three differently, and the difference is the useful signal. AI is a bet about where the world is going. Data science and economics is justified by what's already on your CV. Neuroscience is the only one you described in terms of wanting.
And "everything will be AI-adjacent soon" is an argument against AI as a concentration. If it becomes the substrate, it stops being the differentiator — and Phases 00 through 07 are its foundation regardless. The concentration is what you bring to it.
One caveat, added later. That argument originally rested on your already getting forty hours a week of AI at work. The premise now depends on how the August fortnight goes — the role is decided there, and January is only when it would start. If January lands, the argument stands unchanged. If it doesn't, you aren't getting those forty hours from anywhere, and AI as a concentration becomes a more serious candidate than this page currently allows. Worth rereading in January rather than assuming the conclusion survived.