How To Use This Track — The Graduated Reading Protocol
Every problem folder has three files. They are meant to be read in a specific order with specific gates between them. Reading them out of order destroys the value.
The Three Files
pXX-problem-name/
README.md ← Graduated reading: 15 sections, each gated
solution.py ← Brute + optimal + stress test (Python, runnable)
hints.md ← 5 progressive hints (only opened when stuck)
The Per-Problem Reading Protocol
Phase 1 — Cold Attempt (mandatory)
- Open
README.md, read only sections 1–2 (Quick Context + LeetCode Link/Attempt Gate) - Click the LeetCode link, read the problem statement on LC
- Set a 20-minute timer. Code on paper or in a scratch file. No IDE autocomplete that helps with the algorithm. No reading further in README.md. No
hints.md. - If you solve it: write down your time and approach. Now jump to Phase 3.
- If 20 min passes: write down where you got stuck. Move to Phase 2.
Why the gate? You cannot build pattern-recognition by reading approaches. You build it by failing to find approaches, then learning the gap. If you skip the cold attempt, you are training your recognition memory, not your derivation skill. Interviews test derivation.
Phase 2 — Hint Ladder (only if stuck)
Open hints.md. Read one hint. Set another 10-min timer. Try again.
- Solved after Hint 1 → write down which insight unlocked it. Move to Phase 3.
- Still stuck after 10 min → next hint.
- After Hint 5 without solving → you’ve hit the conceptual gap. Open
README.mdsection 4 (“How to Approach”) and read straight through. Then Phase 3.
Rule: never read two hints back to back. Always 10 minutes between hints.
Phase 3 — The Real Learning
Now read README.md sections 3–15 in order. This is where the value is.
- Section 3 (Prerequisites): if any link goes to a phase lab you haven’t done, do that lab first
- Section 4 (How to Approach): compare to YOUR approach. Where did you diverge? Why?
- Section 6 (Deeper Insight): the proof or invariant. You must be able to restate this in your own words before moving on.
- Section 7 (Anti-Pattern): “did I almost do this?” — if yes, this is a flag for your weakness log
- Section 10 (Company Context): mental note of how the company you’re targeting twists this problem
- Section 12 (Level Delta): honestly: which level was your answer? Mid, Senior, Staff, or Principal?
- Section 13 (Follow-ups): cover the answer with your hand. Try each follow-up. Then read the answer.
Phase 4 — Code & Test
- Open
solution.py. Read the brute force. Read the optimal. - Close the file. Re-implement the optimal from scratch in your own scratch.
- Diff your re-implementation against the reference. Identify every difference. Some differences are style (fine). Some are bugs (not fine).
- Run the stress test:
python solution.py. It must pass. - Now run your own implementation against the stress test. It must also pass.
Phase 5 — Move-On Gate
Walk through Section 9 (“When to Move On”) — the binary checklist. Every box must be honestly checked. If even one is no, you stay on this problem (re-do tomorrow). No exceptions.
Log the solve in your tracking spreadsheet:
- Date, problem, time-to-solve, hint depth used (0–5), follow-ups answered correctly (count/total), Level Delta self-assessment
- Schedule next review per SPACED_REPETITION.md
What Each README.md Section Is For
| # | Section | Read When |
|---|---|---|
| 1 | Quick Context | Before cold attempt |
| 2 | LeetCode Link + Attempt Gate | Before cold attempt |
| 3 | Prerequisite Concepts | After cold attempt; do prereq labs if needed |
| 4 | How to Approach | After Hint 5 fails OR after solving |
| 5 | Progressive Hints (→ hints.md) | When stuck, one at a time |
| 6 | Deeper Insight | Always, after solving |
| 7 | Anti-Pattern Analysis | Always — check if you fell into it |
| 8 | Skills & Takeaways | Always — note analogous problems |
| 9 | When to Move On | Mandatory gate |
| 10 | Company Context | Read for companies you’re targeting |
| 11 | Interviewer’s Lens | Always — internalize scorecard language |
| 12 | Level Delta | Self-assess honestly |
| 13 | Follow-ups & Answers | Attempt each cold, then read |
| 14 | Full Solution Walkthrough | After re-implementing |
| 15 | Beyond the Problem | Always — production reality |
Common Mistakes (Do Not Do)
- Reading README.md before the Attempt Gate. Destroys the entire training value.
- Reading all hints at once. Same problem.
- Skipping the “re-implement from scratch” step. Reading code ≠ writing code.
- Skipping the Level Delta self-assessment. This is the single highest-signal section.
- Skimming Section 10 (Company Context). This is where the differentiated content lives.
- Marking “When to Move On” green without honestly checking each box. Calcifies bad habits.
- Not stress-testing your own implementation. A solution that passes LC may have a bug a stress test catches.
- Skipping originals (p75, p77, p79, p85, p87, p90). These are the highest-value problems in the track. They’re original because they don’t exist on LC — meaning your competition hasn’t seen them either.
Time Budget Per Problem
| Difficulty | Cold Attempt | Hints + Re-attempt | Reading + Re-implement | Total |
|---|---|---|---|---|
| Easy | 20 min | 10–20 min | 30 min | ~60–70 min |
| Medium | 25 min | 20–40 min | 45 min | ~90–110 min |
| Hard | 30 min | 30–60 min | 60 min | ~120–150 min |
| Original (any) | 30 min | 20–40 min | 60–90 min | ~110–160 min |
Plan accordingly when fitting problems into the weekly schedule.
The One Rule
If you remember nothing else: the Attempt Gate is not optional. Every other shortcut is recoverable. Skipping the cold attempt is not — it permanently degrades the training signal for that problem.