Spaced Repetition System
The brain forgets new information on a curve. Without re-exposure, ~70% of what you learn today is gone in 7 days. Spaced repetition counteracts this with strategically-timed reviews.
This system applies to two things:
- Problems you’ve solved (especially failed-then-solved ones)
- Concepts (patterns, data structures, algorithms)
The 6-Tier Interval Schedule
| Tier | Interval | Action |
|---|---|---|
| 1 | Same day (within 4 hours of first solve) | Re-solve from scratch |
| 2 | 2 days later | Re-solve from scratch |
| 3 | 1 week later | Re-solve from scratch |
| 4 | 2 weeks later | Re-solve from scratch + try a harder variant |
| 5 | 1 month later | Verbal explanation + complexity + sketch tests |
| 6 | 3 months later | Verbal explanation only — proves it’s in long-term memory |
Graduation criterion: if Tier 6 is unaided in <120% of your best time, the problem is “owned” — drop it from active rotation. Otherwise, restart at Tier 3.
What “Re-solve” Means
Re-solving is not reading your old solution. It is:
- Fresh editor / blank file.
- Re-read the problem statement.
- Solve from scratch.
- Compare to your previous solution after.
If you can’t do it without peeking → demote one tier (tier 4 → tier 3) and continue.
What “Verbal Explanation” Means (Tier 5+)
Without writing code, explain out loud (record yourself if alone):
- Restate the problem in your own words.
- State the brute force.
- State the optimal approach.
- State the key insight.
- State the complexity (time + space) and why.
- State 3 edge cases and how they’re handled.
- Sketch 2 follow-up answers.
Listen back. Did you stumble? Demote one tier. Did you flow? Tier graduated.
Concept-Level Spaced Repetition
For patterns and algorithms (not problems), use a similar schedule but with different review actions:
| Tier | Interval | Action |
|---|---|---|
| 1 | Same day as learning | Solve 2 problems applying it |
| 2 | 2 days | Solve 1 problem (different difficulty) |
| 3 | 1 week | Teach the concept verbally (recorded or to a peer) |
| 4 | 2 weeks | Solve 1 problem in a domain you don’t usually associate with it |
| 5 | 1 month | Compare/contrast with a related pattern |
| 6 | 3 months | Solve 1 hard problem cold; if you spot the pattern in <2 minutes, owned |
Logistics: How To Maintain The Schedule
Option 1: Spreadsheet
Columns: Problem | Last Solved | Tier | Next Review Date | Difficulty | Pattern | Notes
Sort by Next Review Date. Top of the list = today’s reviews.
Option 2: Anki (or SRS app)
- One card per problem.
- Front: problem name + difficulty.
- Back: pattern + key insight + complexity.
- Use the SRS scheduling.
Custom intervals matter — the default Anki intervals are tuned for vocabulary, not problems. Use 1d, 2d, 7d, 14d, 30d, 90d.
Option 3: Folder structure (no tooling)
reviews/
today.md # editable list of today's review problems
upcoming/
2026-05-22.md # problems due that date
2026-05-29.md
...
archive/
YYYY-MM-DD-problem-name.md
Each evening: move tomorrow’s file to today.md.
Daily Volume Guidelines
When you have N problems in active rotation, your daily review load looks like:
| Active Problems | Daily Reviews | New Problems |
|---|---|---|
| 0–50 | 0–5 | 4–6 |
| 50–150 | 5–12 | 3–5 |
| 150–300 | 10–20 | 2–3 |
| 300+ | 15–25 | 1–2 |
When daily reviews exceed your capacity:
- Graduate aggressively (drop owned problems).
- Slow down new problem intake.
- Consolidate easy/owned problems into “weekly batch reviews” instead of individual reviews.
What To Do When You Fall Behind
Inevitable. When you have 50+ overdue reviews:
- Don’t panic-skip. Don’t mark them all done.
- Triage by tier. Tier 1 + 2 are the most fragile — do those first.
- Drop tier 5 + 6 for 1 week — they decay slowly.
- Reduce new intake to 0 until reviews are caught up.
- Audit: what made you fall behind? Too many new problems? Underestimated review time? Adjust intake rate.
Why This Matters
Without spaced repetition, your interview prep is a leaky bucket. You add 10 problems a week, lose 8 to forgetting, net +2.
With spaced repetition, you add 5 problems a week, retain 5, and after 3 months you have 60 deeply-owned problems instead of 30 vaguely-remembered ones.
In an interview:
- Vaguely-remembered → “I think I’ve seen this before, but I can’t quite…”
- Deeply-owned → “This is a [pattern] problem. The key insight is [X]. I’d solve it with [approach].”
The latter is a hire signal. The former is not.
Integration With The Curriculum
- Every problem solved during the curriculum enters Tier 1 automatically.
- Every problem in phase-11-mock-interviews/ you fail enters Tier 1 with a
failure_categorytag. - Every concept in a phase README enters Tier 1 the day you finish the phase.
- The Tier 6 graduation criterion is also part of the READINESS_CHECKLIST.md.