Month 1: Foundations (Days 1-30)
📖 Concept
Month 1 goal: Build a solid foundation in DSA patterns, review Android fundamentals, and establish daily practice habits.
Daily schedule (3-4 hours/day):
Morning (1.5 hours):
- 1 LeetCode medium problem (45 min)
- Review solution + alternative approaches (15 min)
- Study 1 DSA pattern chapter (30 min)
Evening (1.5-2 hours):
- Review 1 Android fundamental topic (60 min)
- Build mini-project applying today's Android topic (30-60 min)
Week 1-2: Data Structures Review
- Day 1-3: Arrays, Strings — Two pointers, sliding window, prefix sums
- Day 4-5: HashMaps — Frequency counting, grouping, two-sum patterns
- Day 6-7: Stacks, Queues — Monotonic stack, BFS fundamentals
- Day 8-10: Trees — BFS, DFS, BST operations, serialization
- Day 11-12: Graphs — Adjacency list, BFS shortest path, DFS
- Day 13-14: Heaps — Top-K, merge K sorted, median
Week 3-4: Algorithm Patterns
- Day 15-17: Dynamic Programming — 1D DP, 2D DP, knapsack variants
- Day 18-19: Binary Search — Sorted arrays, search space problems
- Day 20-21: Backtracking — Subsets, permutations, combinations
- Day 22-23: Greedy — Intervals, scheduling, minimum operations
- Day 24-25: Union-Find — Connected components, redundant connection
- Day 26-28: Mixed practice — Random medium/hard problems
- Day 29-30: Assessment — Mock coding interview (2 problems, 45 min)
Android topics for Month 1:
- Activity/Fragment lifecycle, process death, config changes
- Jetpack Compose vs Views (deep comparison)
- Coroutines, Flow, StateFlow — build a reactive data pipeline
- Room database — design a schema, write complex queries
- MVVM pattern — implement a complete feature
Milestone checkpoint (Day 30): □ Solved 30+ LeetCode problems (20 medium, 10 easy) □ Can identify 6 core DSA patterns □ Built 2 mini Android projects □ Comfortable with Kotlin coroutines and Flow
💻 Code Example
1// Week 1 sample practice schedule tracker2/*3DAY 1: Arrays & Two Pointers4━━━━━━━━━━━━━━━━━━━━━━━━━━━5Morning:6 ✅ Problem: Container With Most Water (Medium)7 ✅ Pattern identified: Two pointers from both ends8 ✅ Time: O(n) Space: O(1)9 📖 Study: Two pointers chapter in "Patterns for Coding"1011Evening:12 📱 Android: Activity lifecycle internals13 🔨 Mini-project: Activity that logs all lifecycle callbacks1415DAY 2: Arrays & Sliding Window16━━━━━━━━━━━━━━━━━━━━━━━━━━━━━17Morning:18 ✅ Problem: Minimum Window Substring (Hard)19 ✅ Pattern: Variable-size sliding window + frequency map20 ✅ Time: O(n) Space: O(k)21 📖 Study: Sliding window chapter2223Evening:24 📱 Android: Fragment lifecycle + communication25 🔨 Mini-project: Fragment-based navigation with shared ViewModel2627DAY 3: Arrays & Prefix Sum28━━━━━━━━━━━━━━━━━━━━━━━━━29Morning:30 ✅ Problem: Product of Array Except Self (Medium)31 ✅ Pattern: Prefix/suffix arrays32 ✅ Time: O(n) Space: O(1) with output array33 📖 Study: Prefix sum patterns3435Evening:36 📱 Android: Process death handling37 🔨 Mini-project: Form that survives process death with SavedStateHandle38*/3940// Track your progress in a spreadsheet or app41// Columns: Date | Problem | Difficulty | Pattern | Solved? | Time | Notes
🏋️ Practice Exercise
Month 1 Problem Set (30 problems):
Week 1 — Arrays & Strings:
- Two Sum (Easy)
- Container With Most Water (Medium)
- 3Sum (Medium)
- Minimum Window Substring (Hard)
- Product of Array Except Self (Medium)
- Merge Intervals (Medium)
- Longest Substring Without Repeating (Medium)
Week 2 — Trees & Graphs: 8. Binary Tree Level Order Traversal (Medium) 9. Validate BST (Medium) 10. Lowest Common Ancestor (Medium) 11. Number of Islands (Medium) 12. Course Schedule (Medium) 13. Kth Smallest Element in BST (Medium) 14. Serialize and Deserialize Binary Tree (Hard)
Week 3 — DP & Binary Search: 15. Climbing Stairs (Easy) 16. Coin Change (Medium) 17. Longest Increasing Subsequence (Medium) 18. Word Break (Medium) 19. House Robber (Medium) 20. Unique Paths (Medium) 21. Search in Rotated Sorted Array (Medium)
Week 4 — Mixed: 22. Top K Frequent Elements (Medium) 23. Merge K Sorted Lists (Hard) 24. LRU Cache (Medium) 25. Task Scheduler (Medium) 26. Find Median from Data Stream (Hard) 27. Meeting Rooms II (Medium) 28. Trapping Rain Water (Hard) 29. Daily Temperatures (Medium) 30. Accounts Merge (Medium)
⚠️ Common Mistakes
Trying to solve hard problems without mastering medium ones first — build up gradually
Only solving problems without reviewing patterns — you need to recognize patterns, not memorize solutions
Skipping Android fundamentals — Google asks Android deep-dive questions that require solid fundamentals
Not tracking progress — without data, you can't identify weak areas to focus on
💼 Interview Questions
🎤 Mock Interview
Mock interview is powered by AI for Month 1: Foundations (Days 1-30). Login to unlock this feature.