Motivation without a plan is just enthusiasm with an expiry date. Every year, thousands of engineers tell themselves they will "start preparing for interviews" and then spend months watching random YouTube videos without measurable progress. The difference between candidates who land offers and those who do not is rarely talent — it is structured preparation. This lesson helps you build a realistic, personalised study plan that you will actually follow.
Step 1: Assess Your Current Level
Before you can build a plan, you need an honest baseline. Spend one day on this self-assessment:
Be brutally honest in your self-assessment. Overestimating your level leads to a plan that skips foundations, and those gaps will surface in interviews at the worst possible time.
Step 2: Choose Your Timeline
Your timeline depends on your starting level, target companies, and available hours per day.
The 4-Week Sprint
Best for: Experienced engineers who need a refresher, or candidates with an upcoming interview.
Best for: Engineers with solid foundations who need systematic preparation.
| Weeks | Focus | Daily Time |
|-------|-------|------------|
| 1-2 | Foundations: arrays, strings, hash maps, two pointers, sliding window | 1.5-2 hours |
| 3-4 | Trees, graphs, BFS/DFS, dynamic programming basics | 1.5-2 hours |
| 5-6 | System design: start with fundamentals, practice 4-5 full designs | 1.5-2 hours |
| 7 | Behavioural preparation: build story bank, practice delivery | 1.5-2 hours |
| 8 | Mock interviews, review weak areas, company-specific prep | 2-3 hours |
The 12-Week Deep Preparation
Best for: Career changers, those targeting FAANG, or candidates who need to rebuild fundamentals.
| Weeks | Focus | Daily Time |
|-------|-------|------------|
| 1-3 | Programming fundamentals: language mastery, basic data structures, easy problems | 1-2 hours |
| 4-6 | Intermediate algorithms: trees, graphs, DP, backtracking, medium problems | 1.5-2 hours |
| 7-8 | Advanced topics: hard problems, pattern recognition, optimisation | 1.5-2 hours |
| 9-10 | System design: distributed systems, trade-offs, case studies | 1.5-2 hours |
| 11 | Behavioural preparation + company research | 1-1.5 hours |
| 12 | Full mock interviews, final review, confidence building | 2-3 hours |
🤯
A study of successful FAANG candidates on Blind found that the median preparation time was 2-3 months, with an average of 150-200 LeetCode problems solved. Quality matters more than quantity — understanding 100 problems deeply beats rushing through 300.
Step 3: Design Your Weekly Schedule
A sustainable weekly schedule is more important than an ambitious daily one. Here is a template for someone working full-time:
Weekday Routine (Monday-Friday)
Morning (30-45 min): Solve one problem or review yesterday's solution
Lunch break (20-30 min): Read one system design concept or watch a short video
Evening (45-60 min): Solve one problem, review notes, or practice a behavioural story
Weekend Deep Dives (Saturday-Sunday)
Saturday (2-3 hours): System design practice or mock interview
Sunday (1-2 hours): Weekly review — revisit problems you struggled with, update your tracking sheet
Total: 10-14 hours per week
🤔
Think about it:Look at your actual calendar for last week. Where could you realistically fit 1.5-2 hours of daily preparation? Be specific — "I'll study after work" is not a plan. "I'll study from 8:00-9:30pm after putting the kids to bed" is a plan.
Step 4: Prioritise Topics by Target Company
Not all topics are equally important for every company. Tailor your focus:
Algorithm-Heavy Companies (Google, Meta, Amazon)
Spend 50% of time on: Data structures and algorithms
Spend 30% on: Algorithms (medium difficulty, practical focus)
Spend 40% on: System design and architecture
Spend 30% on: Behavioural and product sense
Startups
Spend 20% on: Algorithms (usually lighter bar)
Spend 30% on: System design (practical, not theoretical)
Spend 30% on: Take-home project preparation and portfolio
Spend 20% on: Culture fit and "why this startup" narrative
🧠小测验
You are preparing for Google with 8 weeks available and a full-time job. What should be your primary focus area?
Step 5: Track Your Progress
What gets measured gets improved. Use a simple tracking system:
Problem Tracking Spreadsheet
Create a spreadsheet with these columns:
| Date | Problem | Difficulty | Topic | Solved? | Time | Notes |
|------|---------|-----------|-------|---------|------|-------|
| Mon | Two Sum | Easy | Hash Map | ✅ | 8 min | Optimal O(n) solution |
| Tue | LRU Cache | Medium | Design | ⚠️ | 45 min | Needed hint for doubly linked list |
| Wed | Merge K Lists | Hard | Heap | ❌ | 60 min | Review heap operations |
Weekly Review Ritual
Every Sunday, review your week:
How many problems did you solve?
Which topics felt strongest?
Where did you struggle most?
What will you focus on next week?
Are you on track with your timeline?
Progress Milestones
Set concrete milestones to maintain motivation:
Week 2: Solve any easy problem in under 15 minutes
Week 4: Solve most medium problems in under 30 minutes
Week 6: Complete a full system design in 35 minutes
Week 8: Pass a mock interview with positive feedback
💡
Do not count problems — count patterns. If you understand the sliding window pattern, you can solve dozens of problems. If you have memorised 50 individual solutions, you can solve exactly those 50 problems. Focus on recognising patterns, not collecting green checkmarks.
Avoiding Burnout
Interview preparation is a marathon, not a sprint. Burnout is the number one reason candidates abandon their plans.
Burnout Warning Signs
Dreading your study sessions
Spending time "studying" but not actually engaging
Feeling worse about your abilities as you learn more
Comparing yourself to others on forums and feeling inadequate
Prevention Strategies
Take one full rest day per week — no problems, no videos, no interview content
Celebrate small wins — solved a medium without hints? That is worth acknowledging
Study with others — a study buddy or group keeps you accountable and makes it less lonely
Set a hard stop time — preparation expands to fill available time; cap your daily sessions
Remember the goal — you are not trying to become a competitive programmer; you are trying to demonstrate competence in a 45-minute window
🧠小测验
What is the most effective way to track your interview preparation progress?
When Are You "Ready Enough"?
Perfectionism kills more interview timelines than lack of preparation. You are ready enough when:
You can solve most easy problems in 10-15 minutes and most medium problems in 25-35 minutes
You can structure a system design answer even if you do not know every detail
You have 5-8 behavioural stories prepared and practiced
You can explain your thought process clearly as you solve problems
You feel nervous but prepared, not panicked and clueless
You will never feel 100% ready. That is normal. The best time to start interviewing is when you are 80% prepared, because real interviews are the best preparation.
🤔
Think about it:What is your biggest risk: under-preparing and bombing interviews, or over-preparing and never actually applying? Most people fall into the second category. Set a date for your first application and work backwards from there.
Action Items
Complete the self-assessment — rate yourself honestly across all technical and behavioural areas.
Choose your timeline — 4, 8, or 12 weeks based on your level and target.
Block study time on your calendar — treat it like a meeting that cannot be moved.
Create your tracking spreadsheet — start logging problems from day one.
Set your "start applying" date — write it down and commit to it.
Find an accountability partner — share your plan with someone who will check in on you.
📚 Further Reading
NeetCode Roadmap - Structured problem-solving roadmap organised by topic and difficulty