Study plan

Pick the timeline
you actually have

Same pattern sequence either way. The difference is pace, depth per pattern, and how hard the job search runs alongside it.

✓ 12 weeks
3-month intensive
20–25 hrs/wk
24 weeks
6-month sustained
8–10 hrs/wk
Laid off, between roles, or interviewing on a deadline
01 calendar blocks

Your week, blocked out

Put these in a real calendar with real alerts. The times are a template — shift them to your chronotype, but keep the shape: hardest work first, review daily, one long intake block, one full day off.

Mon–Fri · 9:00 – 10:30
New problems (2–3)
new problems · 90 min

Hardest cognitive work goes first, when you are freshest. Never start the day with email.

Mon–Fri · 10:45 – 11:15
Spaced review queue
review · 30 min

Re-solve what is due today. This is the step that converts "I have seen it" into "I can write it".

Mon–Fri · 14:00 – 15:00
Applications + outreach
job search · 60 min

Median time-to-hire runs about two months, so the pipeline has to run in parallel with prep — not after it.

Tue / Thu · 15:15 – 16:15
System design
mock / design · 60 min

Weighted heavily at mid-level and above. One design per session, spoken aloud, whiteboard or Excalidraw.

Sat · 10:00 – 13:00
New pattern intake
pattern intake · 180 min

Read the next pattern end to end, work the visualizers, write the templates from memory.

Sun · off
Rest — genuinely
rest

Burnout at week 8 ends more searches than weak dynamic programming does.

Weekly total

About 20–25 hrs. If you miss a block, skip it — do not stack two into one day. The schedule works because it repeats, not because any single session is long.

Imports as a repeating series for the whole 12 weeks, each with a 10-minute heads-up. A calendar alert you already trust beats another app asking for your attention.

02 week by week

The 12-week schedule

Dependency-ordered: nothing asks you to know a pattern you have not met yet.

Foundations

Hash maps, stacks, queues — the structures every other pattern is built on. Plus the Python stdlib moves that make interview code fast to write.

Your first two real patterns. Both are one-pass linear scans; learn to spot which one a problem is asking for.

Prefix sums, Kadane’s and in-place tricks, then string-specific machinery: expand-around-center, frequency keys, and why += in a loop is quadratic.

◆Resume + LinkedIn rewritten. Start applying this week.
Core

Binary search — including binary search on the answer, which most candidates never practise — then the bit tricks that turn a whole Blind-75 category into code you can actually explain.

Pointer surgery. Reversal and dummy heads must be muscle memory; Floyd’s cycle detection is the classic follow-up.

Tree structure and the BST invariant, then depth-first search proper: recursion, explicit stacks, islands, path problems. The highest-leverage block in the plan.

◆You can now solve most Easy and many Medium problems unaided.

Breadth-first search for unweighted shortest paths, then weighted graphs: Dijkstra, topological sort, and minimum spanning trees.

Advanced

Heaps that stay size k, and the sort-then-sweep interval pattern. Both are formulaic once seen.

Monotonic stack (next-greater-element family) and greedy — including how to tell greedy is actually safe.

◆First mock interview. Do it before you feel ready.

Choose, explore, unchoose — plus tries. Slow down here; the recursion tree is the whole game.

Dynamic programming. The heaviest block by design — memoise first, convert to tabulation second, and practise naming the state out loud.

Interview mode

Union-find, then no new patterns: recognition drills, timed mocks, and re-solving everything you flagged.

◆Full simulated onsite: 2 coding rounds + 1 design + behavioral, back to back.
03 the review loop

Solving it once is not learning it

Retrieval beats re-reading, and spaced retrieval beats massed retrieval. When you solve a problem, it re-enters your queue on this schedule.

same day

If you needed the solution, re-solve it from a blank file before you sleep.

+2 days

The first interval where forgetting has started but recovery is still fast.

+7 days

If you get it clean here, the pattern is sticking.

+21 days

Final check. Clean at 21 days means it is yours.

04 how to work a problem

The 25-minute rule

1
Read once, then hide it

Read the problem, restate it out loud in your own words, and state the brute force before optimizing.

2
Name the pattern first

Before writing code, say which pattern this is and why. Wrong guesses here are cheap; wrong guesses 20 minutes in are not.

3
Set a 25-minute timer

Stuck at 25 minutes is not failure, it is the signal to look. Grinding for 90 minutes teaches you almost nothing.

4
Read the approach, not the code

Take the idea, close the page, and write the implementation yourself. Copying code creates the illusion of competence.

5
Re-solve from blank

Same day, empty file, no reference. This is the rep that counts.

6
Schedule the review

Tick it off, and let the +2 / +7 / +21 day queue bring it back.

05 readiness

You are ready when

Not "when I have done N problems" — problem count is an input, not an outcome. These are the outcomes.

01Given a new Medium, you name the right pattern within 2 minutes.
02You can write the sliding window, DFS, BFS, binary search, and backtracking templates from a blank file.
03You narrate your thinking continuously while coding, without being prompted.
04You state time and space complexity without being asked.
05You find your own bugs by walking through a small example, not by staring.
06You have completed at least one full mock onsite, back to back, with a real person.