Coding Interview Roadmap
Structured 100-day plan to prepare for software engineering technical interviews. Focus on consistency and pattern recognition.
Phase 1: Weapon of Choice (Days 1-20)
Goal: Master one programming language (Python, Java, or C++).
- Syntax: Loops, conditionals, functions, classes.
- Standard Library: Lists, Maps, Sets, String manipulation.
- Complexity: Understand Big O (Time & Space).
- Debugging: Learn to use debugger or print statements effectively.
- Setup: Configure IDE (VS Code/IntelliJ) with snippets.
Phase 2: Mastering Basics (Days 21-60)
Goal: Learn core Data Structures & Algorithms.
| Week | Topic | Problems |
|---|---|---|
| 4-5 | Arrays & Hashing | Two Sum, Contains Duplicate, Valid Anagram |
| 6-7 | Two Pointers & Sliding Window | Valid Palindrome, Max Subarray |
| 8-9 | Stack & Linked Lists | Valid Parentheses, Reverse Linked List |
| 10-11 | Trees & BST | Invert Tree, Level Order Traversal |
| 12-13 | Backtracking & Heaps | Subsets, Top K Frequent Elements |
Phase 3: Starting Practice (Days 61-80)
Goal: Apply knowledge to medium-difficulty problems.
- Pattern Recognition: Identify if a problem is DP, Graph, or Greedy.
- Blind 75: Start solving the curated Blind 75 list.
- Time Limits: Aim to solve Easy in 15 mins, Medium in 30 mins.
- Mock Interviews: Use Pramp or interview friends.
Phase 4: Getting Better (Days 81-100)
Goal: Refine skills and tackle hard problems.
- Dynamic Programming: Climbing Stairs, Coin Change, LCS.
- Graphs: Number of Islands, Clone Graph, Course Schedule.
- System Design: Basic scalability concepts (Load Balancers, Caching).
- Review: Re-solve previously failed problems.
Daily Routine
- Warm-up: 1 Easy problem (15 mins).
- Deep Work: 1 Medium problem (45 mins).
- Review: Analyze solution & optimal complexity (30 mins).
- Notes: Update personal cheat sheet with new patterns.
Resources
- Practice: LeetCode, HackerRank, Codeforces.
- Learning: NeetCode.io, GeeksForGeeks, Cracking the Coding Interview.
- Tracking: Use a spreadsheet to track solved problems and revisit dates.
Rule: Don't memorize code. Memorize patterns. If stuck for >30 mins, look at the solution, understand it, then implement it yourself the next day.