Study Plans and Roadmap
Every page on this site teaches one topic well, but nobody studies one topic at a time in isolation — you have a deadline, a target company, or a target rating, and a limited number of hours per week. This page turns the phases you’ve already read (or are about to read) into an actual schedule: an 8-week interview plan, a competitive-programming ladder, and a system for tracking what’s actually sticking.
What you’ll learn
- An 8-week interview prep plan mapping each week to specific phases on this site.
- A competitive-programming ladder from beginner to advanced, tied to Codeforces-style rating bands.
- How to use spaced repetition and a weak-area log instead of just grinding problems linearly.
- Rough problem-count targets by difficulty for interview readiness.
- How to structure mock interviews in your final two weeks.
An 8-week interview prep plan
This assumes roughly 8-12 hours a week. Compress it to 4-5 weeks if you’re already comfortable with Phases 1-4, or stretch it if you’re starting from zero.
| Week | Focus (this site’s phases) | Goal | Problems |
|---|---|---|---|
| 1 | Phase 1: Foundations, Phase 2: Python for DSA and CP | Complexity analysis, fast I/O, recursion basics | 10-15 easy array/string problems |
| 2 | Phase 3: Core Data Structures | Arrays, linked lists, stacks, queues, hash maps | 15 problems, mostly easy |
| 3 | Phase 4: Sorting and Searching, start Phase 5 | Sorting fundamentals, two pointers, sliding window | 15 problems, easy-to-medium |
| 4 | Phase 5 (continued) | Fast/slow pointers, merge intervals, cyclic sort, top K, monotonic stack, prefix sums, backtracking, binary search on answer | 20 problems, medium |
| 5 | Phase 5 (BFS/DFS), start Phase 7 | Graph traversal basics, connected components | 15 problems, medium |
| 6 | Phase 6: Dynamic Programming | 1D and 2D DP, knapsack-style problems | 20 problems, medium-to-hard |
| 7 | Phase 7 (continued), light Phase 8 if senior-level | Union-Find, Dijkstra, topological sort; segment trees if expected | 15 problems, medium-to-hard |
| 8 | Review + this phase, mock interviews | Close weak areas, rehearse the seven-step framework | 10-15 mixed problems + 4-6 mock interviews |
A competitive-programming ladder
Codeforces rating bands (or the rough equivalent on any other judge) map reasonably well onto a progression through this site’s phases.
| Rating band | Focus | Tied to this site |
|---|---|---|
| Newcomer (unrated - 1200) | Implementation, basic math, brute force, simple greedy | Phases 1-4 |
| Pupil / Specialist (1200-1600) | Two pointers, sliding window, binary search, basic DP, BFS/DFS | Phase 5, start of Phase 6 |
| Expert (1600-1900) | Full DP toolkit, graph algorithms (Dijkstra, Union-Find, topological sort), basic number theory | Phases 6-7 |
| Candidate Master and above (1900+) | Segment trees, advanced DP optimizations, string algorithms, heavier number theory | Phase 8 |
graph LR
N0["Phase 1: Foundations"] --> N1["Phase 2: Python for DSA and CP"]
N1 --> N2["Phase 3: Core Data Structures"]
N2 --> N3["Phase 4: Sorting and Searching"]
N3 --> N4["Phase 5: Interview Patterns"]
N4 --> N5["Phase 6: Dynamic Programming"]
N5 --> N6["Phase 7: Graphs Advanced"]
N6 --> N7["Phase 8: Advanced CP Topics"]
N7 --> N8["Phase 10: Interview and Contest Strategy"]
N8 --> N9["Phase 11: Problem Sets"]
Climbing the ladder doesn’t require finishing every phase before starting the next one — most competitors cycle back through earlier phases as gaps show up in harder problems, which is exactly what spaced repetition below is for.
Spaced repetition and tracking weak areas
Solving a problem once and moving on is the least efficient way to make a pattern stick. Instead:
- Log every problem you attempt: name, pattern/tag, difficulty, date, and whether you solved it independently, with a hint, or by reading the solution.
- Re-attempt problems you struggled with after about a week, and again after about a month, from scratch (no peeking at your old code) — if it’s still slow the second time, the pattern hasn’t stuck yet.
- Tag by pattern, not just by problem name, so you can see which patterns (from the Pattern Recognition Guide) keep showing up in your “struggled” column — that’s your actual weak-area list, and it’s more useful than a raw count of problems solved.
- A plain spreadsheet with columns for problem, pattern, difficulty, date, and outcome is enough — the tracking matters more than the tool.
Mock interviews
Reading about the seven-step framework is not the same as running it under time pressure with someone watching.
- Do 4-6 mock interviews in your final two weeks, ideally with a peer, a platform built for it, or even by recording yourself narrating a solve out loud.
- Alternate roles. Interviewing someone else sharpens your sense of what “good communication” actually looks like from the other side of the table.
- Time-box each mock to about 45 minutes, matching real onsite rounds, and force yourself to talk through every step of the framework even on problems you recognize instantly.
- Review afterward, not just the code — did you clarify first? Did you state the brute force before optimizing? Did you test your own code before being asked?
Recap
- An 8-week plan moving through Phases 1 through 8 (with a review week using this phase) covers the full interview syllabus at a sustainable pace.
- The competitive-programming ladder ties Codeforces-style rating bands directly to phases on this site — climb it by cycling back to close gaps, not by rushing forward.
- Log every problem by pattern and revisit struggles after a week and a month — spaced repetition beats one-and-done grinding.
- Aim for roughly 150-250 problems total, and close out prep with several timed mock interviews.
Next: Problem Sets — curated problem lists organized by pattern and difficulty, ready to plug straight into the plan above.
If this helped you, consider buying me a coffee ☕
Buy me a coffeeWas this page helpful?
Let us know how we did
