Month-by-Month Execution Map¶
9-Month DSA Fortress · M1–M9¶
This document is the operating calendar. Every month has a theme, a phase assignment, sprint numbers, concrete deliverables, and a hard exit check. Read this at the start of each month. Update the exit check at the end. If you miss an exit check, do not advance — revisit the sprint calendar and compress.
Valley of Despair window: M4–M5 (Nov–Dec 2026). Named, not hidden. You will want to quit here. The plan accounts for this.
M1 — August 2026 · “The Ground Floor”¶
Theme: Lay the mathematical and computational foundation you skipped the first time around.
Primary Phase: Phase 0 — Foundations & Complexity
Sprints: S1 (Aug 1–14), S2 (Aug 15–28)
Key Files: 01_foundations_complexity/ — all 6 files in order
Deliverables¶
Big-O derivation fluency: can derive time + space for any loop/recursion without lookup
Master Theorem: can apply all 3 cases from memory
15 problems solved on LeetCode Easy with written complexity analysis per problem
Lab notebook: 8 entries minimum (predict → run → measure → reconcile)
Portfolio Rung 1 started: complexity audit outline drafted
Learning Targets¶
01_big_o_mastery.md— complete with all exercises02_recurrence_relations.md— complete03_mathematical_thinking.md— complete04_pseudocode_and_invariants.md— skim if pressed for time; return in M2MIT 6.006 Lecture 1-3 (free on OCW): watch before LeetCode sprint
Abdul Bari’s Recursion playlist (YouTube): first 5 videos
Background Alignment (Zoho ML)¶
Your ML work involves runtime optimization (inference latency, batch sizing, memory footprint). This month, formally analyze one production model’s time/space complexity. Write it in your lab notebook. You don’t need to publish this — just connect the concept to something you already live inside.
India-Specific Warnings¶
None critical this month. August is pre-festival, moderate workload at Zoho. Use the calm.
Exit Check (Aug 31)¶
Solved 15 Easy problems with written complexity per problem?
Can derive O(n log n) for merge sort from recurrence without notes?
Lab notebook has ≥ 8 entries?
No problems solved using AI to generate the solution (hints only)?
If 3/4 pass: advance. If 2/4 pass: take first week of S3 as buffer before Phase 1.
M2 — September 2026 · “The Scaffolding”¶
Theme: Build the core data structures from scratch — not “use the library,” but implement and own.
Primary Phase: Phase 1 — Core Data Structures
Sprints: S3 (Aug 29–Sep 11, Phase 0→1 transition), S4 (Sep 12–25)
Key Files: 02_core_data_structures/ — all 7 files in order
Deliverables¶
From-scratch implementations: dynamic array, linked list, stack, queue, hash table, min-heap
25 LeetCode problems solved (mix of Easy/Medium): arrays, strings, stacks, queues, hash maps
Monotonic stack pattern: can recognize and apply within 10 minutes on a new problem
Portfolio Rung 1 complete: complexity audit published (GitHub Gist or blog post, minimum)
Portfolio Rung 2 started: DS library repository initialized
Learning Targets¶
02_core_data_structures/01_arrays_and_strings.mdthrough05_heaps.md— completeNeetCode Arrays & Hashing playlist (free): all videos, pause after each, implement before watching solution
Java
StringBuildervs string concatenation — must be able to explain from memory (hidden O(n²))C++ custom hash with splitmix64: read, understand, save as template
Background Alignment (Zoho ML)¶
Implement a LRU cache from scratch this month. It uses a hash map + doubly linked list under the hood — both of which you just built. The LRU cache is also a legitimate production interview question (LC 146). This is the first convergence point where “what I’m learning” and “what I could propose at work” overlap.
India-Specific Warnings¶
September is relatively clean. If Zoho has quarter-end deliverables, protect your Sunday blocks.
Exit Check (Sep 30)¶
6 from-scratch implementations working and tested?
25 problems solved across the phase topics?
Rung 1 published (link in portfolio README)?
Can explain why
unordered_mapis a competition liability in C++?
M3 — October 2026 · “Recursive Descent”¶
Theme: Own recursion completely — the call stack, the trust, the base case. Then extend it to trees.
Primary Phase: Phase 2 — Recursion & Trees (first half)
Sprints: S5 (Sep 26–Oct 9), S6 (Oct 10–23, Diwali buffer Oct 20–24)
Key Files: 03_recursion_and_trees/ — README through 04_binary_search_trees.md
Deliverables¶
Solve 20 tree problems on LeetCode (Easy + Medium): can solve 90% without hints
BST validation: can implement correct bounds-propagation version from memory
Recursive leap of faith: can articulate the two failure conditions without notes
Portfolio Rung 2 in progress: DS library has all Phase 0–1 structures committed
Learning Targets¶
03_recursion_and_trees/01_recursion_mechanics.mdthrough04_binary_search_trees.mdStriver’s A2Z Tree section: use as problem bank (free on takeuforward.org)
For BST: implement insert, delete, successor, predecessor from scratch — no lookup
Background Alignment (Zoho ML)¶
Decision trees and gradient boosting use tree traversal implicitly. This month, connect your ML intuition to actual tree traversal mechanics. What does in-order traversal of a BST correspond to conceptually? Write it in your lab notebook. It will feel abstract — that’s fine. The point is to make the bridge visible.
India-Specific Warnings¶
Diwali 2026: October 20–24 (5 days). These days are fully protected. No practice obligations. Family time, full human being mode. The plan has already accounted for this in the sprint calendar (S6 is a light sprint). Do not attempt to “make up” Diwali. The neuroscience supports the rest.
Exit Check (Oct 31)¶
20 tree problems solved?
BST validation: can implement correct version cold?
Diwali taken fully off?
Rung 2 repository has ≥ 5 committed structures?
M4 — November 2026 · “Into the Forest”¶
Theme: Complete trees, learn backtracking and tries. Enter the Valley of Despair knowing it’s named.
Primary Phase: Phase 2 (completion) + Phase 3 start — Graphs & Search
Sprints: S7 (Oct 24–Nov 6), S8 (Nov 7–20), S9 (Nov 21–Dec 4, overlaps M5)
Key Files: 03_recursion_and_trees/05_backtracking.md, 06_tries.md; 04_graphs_and_search/README.md, 01_graph_fundamentals.md
Deliverables¶
Backtracking: solve N-Queens, permutations, subsets without reference
Tries: implement insert/search/startsWith from scratch
Graph fundamentals: adjacency list vs matrix representation — can implement both
Portfolio Rung 2 complete: DS library published and linked in portfolio README
Portfolio Rung 3 started: first algorithm visualizer post drafted
Learning Targets¶
Remaining
03_recursion_and_trees/files: complete04_graphs_and_search/01_graph_fundamentals.mdNeetCode Backtracking playlist: first 5 videos (implement each before watching solution)
Background Alignment (Zoho ML)¶
Graph structure is everywhere in ML: computation graphs in PyTorch, dependency graphs in ML pipelines, feature graphs in GNN work. This month, sketch the computation graph of one model you work with. Identify the topological order of operations. It’s not an assignment — it’s you making your ML work legible to your new CS vocabulary.
India-Specific Warnings¶
Valley of Despair begins. Problems are harder. Progress feels slower. This is expected and documented. The mechanism: you are entering Phase 3 graph content while still consolidating Phase 2 trees. The overlap creates the sensation of regression. It isn’t. Read 99_pre_mortem/05_motivation_collapse.md this month. Not when you’re in crisis — before.
Exit Check (Nov 30)¶
Backtracking: 3 problems solved without reference?
Trie: can implement from scratch?
Graph representation: both formats implemented?
Rung 3 first post: any medium (blog, GitHub doc, thread) — published?
M5 — December 2026 · “Graph Territory”¶
Theme: Fully inhabit graph algorithms. BFS, DFS, shortest paths, union-find. The hardest month.
Primary Phase: Phase 3 — Graphs & Search
Sprints: S9 (Nov 21–Dec 4), S10 (Dec 5–18), S11 (Dec 19–Jan 1, Christmas buffer)
Key Files: 04_graphs_and_search/02_bfs_and_dfs.md through 06_minimum_spanning_trees.md
Deliverables¶
BFS/DFS: solve 15 graph problems — can distinguish which to use at problem read time
Dijkstra: implement from scratch in Java (stale-entry skip pattern, no decreaseKey)
Union-Find: implement with path compression + union-by-rank from scratch
Directed vs undirected cycle detection: can explain the correct technique for each
Portfolio Rung 3: 2+ algorithm visualizer posts published
Learning Targets¶
04_graphs_and_search/— all remaining files: completeStriver’s Graph series: first 15 videos
The BFS snapshot pattern (
int levelSize = queue.size()): drill this on 5 problems specifically
Background Alignment (Zoho ML)¶
None assigned this month. Graph content is dense. Your one alignment task: if you encounter any ML debugging session involving cyclic dependencies or execution order bugs, note in your lab notebook whether topological sort would have surfaced it. Passive observation only.
India-Specific Warnings¶
Christmas/New Year: December 25–January 2 (8 days). Fully protected. If you’re ahead of schedule, treat this as a bonus review period. If on schedule, fully off. If behind, use it to catch up on one specific topic only — not to “make up” the month wholesale.
Valley of Despair is active. Read 99_pre_mortem/07_motivation_sustainment.md if needed.
Exit Check (Dec 31)¶
15 graph problems solved?
Dijkstra from scratch (with stale-entry skip)?
Union-Find from scratch (path compression + rank)?
Can explain directed vs undirected cycle detection correctly — without notes?
M6 — January 2027 · “Patterns Emerge”¶
Theme: Exit the Valley. Dynamic programming begins. The fog starts clearing.
Primary Phase: Phase 4 — Dynamic Programming (first half)
Sprints: S12 (Jan 2–15, Pongal buffer Jan 14–17), S13 (Jan 16–29)
Key Files: 05_dynamic_programming/01_dp_foundations.md through 03_2d_grid_dp.md
Deliverables¶
DP foundations: can answer the 5-question state-definition framework for any new problem
1D DP: solve Climbing Stairs, House Robber, Coin Change — all without reference
2D grid DP: solve Unique Paths, Minimum Path Sum, Edit Distance — all without reference
Lab notebook: DP state definitions written out for every problem before coding
Portfolio Rung 4 started: LeetCode milestone tracker initialized (Medium 100 target visible)
Learning Targets¶
05_dynamic_programming/01_dp_foundations.mdthrough03_2d_grid_dp.mdNeetCode 1D/2D DP playlist: implement each problem first, then compare approaches
The 5-question framework from
01_dp_foundations.md: memorize it. It is your first weapon against state definition paralysis.
Background Alignment (Zoho ML)¶
DP is literally dynamic programming. HMMs, Viterbi algorithm, CTC loss — all DP. This month, look up the Viterbi algorithm and trace through one step by hand. It is exactly the kind of “optimal substructure + overlapping subproblems” problem you’re now equipped to understand structurally. Write 3 sentences in your lab notebook on what it shares with Coin Change.
India-Specific Warnings¶
Pongal 2027: January 14–17 (4 days). Protected. Sprint S12 is designed to have light load over this window. Do not feel guilty.
Valley of Despair should be receding this month. If it isn’t — if motivation is still flat — read 99_pre_mortem/09_summary_and_reset_protocol.md. Not the full document: the decision tree.
Exit Check (Jan 31)¶
5-question framework: can apply it without notes?
6 core DP problems solved without reference?
State definitions in lab notebook for every DP problem?
Rung 4 tracker initialized (Medium count visible)?
M7 — February 2027 · “The DP Crucible”¶
Theme: The hardest DP patterns. Knapsack. Interval. Subsequences. Write the state. Break it.
Primary Phase: Phase 4 — Dynamic Programming (completion)
Sprints: S14 (Jan 30–Feb 12), S15 (Feb 13–26)
Key Files: 05_dynamic_programming/04_knapsack_patterns.md through 07_dp_pattern_recognition.md
Deliverables¶
Knapsack: can explain loop order direction (0/1 vs unbounded) from mechanism, not memory
Interval DP: solve Burst Balloons — allowed to take 4 hours; mark the session in lab notebook
LIS O(n log n): implement patience sorting variant with binary search
Bitmask DP: solve Assign Work to Workers or equivalent — with full written state definition first
Portfolio Rung 6 started: DP pattern handbook structure outlined
Learning Targets¶
05_dynamic_programming/04_knapsack_patterns.mdthrough07_dp_pattern_recognition.mdAditya Verma’s DP playlist (YouTube): Knapsack series — watch after independent attempt
For Tree DP and Bitmask DP: budget 3 hours per topic. These are not sprint material — they are marination material.
Background Alignment (Zoho ML)¶
The knapsack family of problems is foundational to resource allocation algorithms used in ML infrastructure: batch scheduling, memory allocation for model serving, NAS (neural architecture search). This is not abstract. Write down one specific Zoho ML problem that is structurally a knapsack problem in your lab notebook.
Exit Check (Feb 28)¶
Knapsack loop order: can explain from mechanism without reference?
Burst Balloons: solved (time doesn’t matter — correctness does)?
LIS O(n log n): implemented and passing on LeetCode 300?
Rung 6 handbook: ≥ 3 patterns documented?
M8 — March 2027 · “The Advanced Layer”¶
Theme: Segment trees, greedy, bit manipulation, string algorithms. The layer that separates competent from exceptional.
Primary Phase: Phase 5 — Advanced Algorithms
Sprints: S16 (Feb 27–Mar 12), S17 (Mar 13–26)
Key Files: 06_advanced_algorithms/ — all 7 content files
Deliverables¶
Segment tree: implement with lazy propagation from scratch — range update + range query
Fenwick tree: implement from scratch — point update + prefix sum query
KMP: implement and trace the failure function derivation on one custom example by hand
Portfolio Rung 5 complete: graph algorithm showcase published
Portfolio Rung 6 HARD GATE: DP Pattern Handbook complete by Mar 20 (mid-month)
Learning Targets¶
06_advanced_algorithms/— all files in orderCP-Algorithms.com: Segment trees and Fenwick trees entries — use as reference, not primary
For greedy: focus on exchange argument pattern — this is what makes greedy proofs rigorous
Background Alignment (Zoho ML)¶
Fenwick trees are used in ranking systems and recommendation engines for efficient prefix-sum operations. If your team does any kind of running aggregation, there is a potential BIT optimization waiting. This is the quarter where you propose one concrete technical improvement at Zoho that uses a concept from your DSA journey. (See 06_background_alignment.md for the Q3 protocol.)
India-Specific Warnings¶
March is typically stable in India. No major festivals. If Zoho has financial year-end work (India FY ends March 31), protect your Sunday blocks explicitly.
Exit Check (Mar 31)¶
Segment tree with lazy propagation: working on LeetCode 307 or equivalent?
KMP: failure function traced by hand on one custom example?
Rung 6 (DP handbook): published before March 26?
Rung 5 (graph showcase): published?
M9 — April 2027 · “The Arena”¶
Theme: Enter the arena. Competitive programming with real stakes. Consolidate and demonstrate.
Primary Phase: Phase 6 — Competitive Mastery
Sprints: S18 (Mar 27–Apr 9), S19 (Apr 10–27, FINAL)
Key Files: 07_competitive_mastery/ — all 7 files
Deliverables¶
5 rated Codeforces contests minimum (Div. 3 or Div. 2)
Codeforces rating ≥ 1200 (Pupil) — HARD GATE
Template library finalized: DSU, SegTree, BIT, Dijkstra, KMP, binary search, modular math
Stress testing framework: working for any contest problem
Portfolio Rung 7 complete: Codeforces rating screenshot + contest log published
Portfolio Rung 8 started: capstone showcase outline
Learning Targets¶
07_competitive_mastery/— all files. Read01_contest_strategy.mdbefore your first rated contest.The upsolving habit: after every contest, solve all problems you couldn’t during the contest — within 48 hours
Template library (
05_template_library.md): read and understand every template before using it. The 3-problem rule applies.
Background Alignment (Zoho ML)¶
This month the alignment is simple: you’ve done it. April 27, 2027, you can make the statement. Whatever conversation you want to have about your engineering depth — at Zoho or anywhere — you now have the receipts. See 07_nine_month_pitch.md for the exact language.
India-Specific Warnings¶
April is typically pre-summer in South India. If heat affects your sleep or energy, guard your sleep hygiene — see 13_discipline/08_health_burnout.md. No major festivals this month.
Exit Check (Apr 27, 2027 — THE FINAL CHECK)¶
5 rated Codeforces contests completed (timestamps visible)?
Codeforces rating ≥ 1200?
Rung 6 (DP handbook) published?
Rung 7 (Codeforces rating) documented?
Can say the M9 pitch sentence out loud in 10 seconds?
“An applied ML engineer who rebuilt CS foundations from scratch — complexity theory through competitive solving — over 9 months, shipping 6 public proof-of-work artifacts that demonstrate systematic algorithmic thinking.”
That sentence is true. You made it true.
Return to [README.md] · Next: [02_sprint_calendar.md]