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:

  1. Problems you’ve solved (especially failed-then-solved ones)
  2. Concepts (patterns, data structures, algorithms)

The 6-Tier Interval Schedule

TierIntervalAction
1Same day (within 4 hours of first solve)Re-solve from scratch
22 days laterRe-solve from scratch
31 week laterRe-solve from scratch
42 weeks laterRe-solve from scratch + try a harder variant
51 month laterVerbal explanation + complexity + sketch tests
63 months laterVerbal 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:

  1. Fresh editor / blank file.
  2. Re-read the problem statement.
  3. Solve from scratch.
  4. 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):

  1. Restate the problem in your own words.
  2. State the brute force.
  3. State the optimal approach.
  4. State the key insight.
  5. State the complexity (time + space) and why.
  6. State 3 edge cases and how they’re handled.
  7. 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:

TierIntervalAction
1Same day as learningSolve 2 problems applying it
22 daysSolve 1 problem (different difficulty)
31 weekTeach the concept verbally (recorded or to a peer)
42 weeksSolve 1 problem in a domain you don’t usually associate with it
51 monthCompare/contrast with a related pattern
63 monthsSolve 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 ProblemsDaily ReviewsNew Problems
0–500–54–6
50–1505–123–5
150–30010–202–3
300+15–251–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:

  1. Don’t panic-skip. Don’t mark them all done.
  2. Triage by tier. Tier 1 + 2 are the most fragile — do those first.
  3. Drop tier 5 + 6 for 1 week — they decay slowly.
  4. Reduce new intake to 0 until reviews are caught up.
  5. 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_category tag.
  • 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.