How to use this roadmap
- One stage at a time. Finish the “exit criteria” before advancing.
- Language doesn’t matter. Python, Java, C++, or JavaScript are all fine. Pick one and stay.
- Code every day you study. Passive videos without typing do not count.
- Target time: 2.5–4 months at 45–60 minutes/day for a solid beginner-to-intermediate base.
Stage 0 — Programming comfort (3–7 days if needed)
Skip this if you already write functions, loops, and simple classes without help. Learn or refresh:- Input/output, types, conditionals, loops
- Arrays/lists and strings
- Functions and basic recursion intuition (“function calls itself with smaller input”)
- How to run code and print-debug
Stage 1 — Complexity literacy (4–7 days)
Before optimizing, you must measure. Topics:- What Big O describes (growth, not clock time)
- O(1), O(log n), O(n), O(n log n), O(n²)
- Best / average / worst case (intuition level)
- Space complexity basics
- Cost of common operations: array index, hash map get/put, sorting
Practice:
- Given a snippet, state its time complexity
- Compare two approaches for the same problem
Stage 2 — Core linear structures (2–3 weeks)
2A. Arrays and strings
- Indexing, slicing mental model
- In-place vs extra space
- Two pointers (opposite ends, same direction)
- Sliding window (fixed and variable)
- Prefix sums
Classic drills: reverse string, two sum (sorted and unsorted), max subarray of size k, longest substring without repeating characters, product of array except self (conceptual).
2B. Hash maps and sets
- Frequency counting
- Membership tests
- Grouping (anagrams)
- Complement search (two sum pattern)
2C. Stacks and queues
- LIFO / FIFO
- Valid parentheses
- Monotonic stack intuition (next greater element)
- Queue for BFS preparation
Stage 3 — Linked lists and recursion fluency (1–2 weeks)
Topics:- Singly linked list traversal
- Dummy head technique
- Reverse a list; detect cycle (Floyd intuition)
- Merge two sorted lists
- Recursion call stack; base case discipline
Many beginners fear linked lists. Treat them as “arrays you can only walk forward” plus pointer rewiring drills.
Exit criteria: Reverse a linked list on a whiteboard or blank file from memory.Stage 4 — Trees (2 weeks)
Order matters:- Binary tree traversals (preorder, inorder, postorder, level order)
- Binary search tree property
- Height, diameter, path problems (basic)
- Heap / priority queue as a tool (top K elements)
Templates to memorize:
- Recursive DFS returning a value from children
- BFS with queue for level-order
Stage 5 — Graphs (2 weeks)
Start simple:- Adjacency list representation
- BFS and DFS on graphs
- Connected components
- Cycle detection (undirected first)
- Topological sort (Kahn’s algorithm intuition)
- Grid problems as graphs
Avoid starting with advanced max-flow or heavy theory. Interview-relevant graphs are mostly traversal + state.
Exit criteria: BFS shortest path on an unweighted grid; detect a cycle in a directed graph with help of a template once, then without.Stage 6 — Sorting, searching, intervals (1 week)
- Binary search on arrays
- Binary search on answer (monotonic predicate)
- Merge intervals
- Sorting as a preprocessing tool
Stage 7 — Dynamic programming (2–3 weeks)
DP is a stage, not a weekend. Progression:- 1D DP: climbing stairs, house robber, min cost climbing
- Knapsack family: coin change, 0/1 knapsack basics
- 2D DP: unique paths, LCS / edit distance intro
- Pattern recognition: “define state → transition → base → order”
Rules for beginners:
- If you cannot define the state in one sentence, you are not ready to code.
- Prefer memoization first if top-down feels clearer.
- Limit new DP problems to one pattern family per session.
Stage 8 — Interview packaging (ongoing, 2+ weeks)
Parallel track once Stage 4 is solid:- Timed medium problems (3–4 per week)
- Explain approach before coding
- Edge cases checklist (empty, single element, duplicates, overflow)
- Complexity statement at the end
Optional but valuable: system design is separate—do not mix it into beginner DSA.
What to skip (for now)
Do not block yourself on:- Advanced segment trees / fenwick (unless role-specific)
- Heavy number theory
- Every competitive programming trick
- Memorizing 300 problem solutions by ID
Breadth of patterns beats depth of obscure tricks for most interviews.
Suggested weekly template
| Day | Focus |
|---|---|
| Mon | New concept + 1 guided example |
| Tue | Same pattern, 2 practice problems |
| Wed | Mixed review from previous stage |
| Thu | New concept |
| Fri | Timed easy/medium |
| Sat | Weak-area repair |
| Sun | Light quiz / notes only |
Total: ~5–6 hours/week minimum; 7–8 hours is comfortable.
Resources strategy (minimize thrash)
Pick one primary track:- One structured course or chapter path
- One problem list filtered by topic (not a giant random sheet)
- One notes doc for patterns
Switching resources every week restarts the “beginner clock.”
Beginner mistakes checklist
- Learning five languages’ syntax while learning DSA
- Watching solutions in under five minutes
- Skipping complexity because “I’ll feel it”
- Doing only random hard problems for clout
- No revision cycle—new topics only
Fix: every Sunday, re-solve two old problems cold.
Milestone map
| Milestone | You can… |
|---|---|
| M1 | Explain Big O of everyday code |
| M2 | Two pointers + sliding window + hash maps fluently |
| M3 | Tree BFS/DFS without a reference tab |
| M4 | Graph BFS and basic cycle/components |
| M5 | 5 DP problems across 1D templates |
| M6 | Consistent medium interview practice |
Celebrate milestones, not only job offers.
Practice with PixoQuest
The PixoQuest DSA course follows a chapter-based path similar to this roadmap: foundations, arrays and patterns, then deeper topics—delivered as short lessons and interactive games so beginners get fast feedback. Use PixoQuest for daily concept drills and pattern recognition; use a coding environment for full implementations. A strong combo for beginners:- One PixoQuest lesson (games + quiz)
- One short coding exercise on the same topic
- Three bullet notes in your pattern journal
XP and streaks keep Stage 1–3 consistent—the part where most people drop off.
Bottom line
A beginner DSA roadmap is a queue, not a pile. Complexity → linear structures → linked lists → trees → graphs → search/intervals → DP → timed practice. Finish exit criteria before you advance, protect your weekly rhythm, and measure patterns you can explain. You do not need to learn everything. You need to learn the right things in order, then practice until they feel boring. Boring patterns are interview gold.Sources & further reading
- Cormen et al., Introduction to Algorithms (MIT OCW): https://ocw.mit.edu/courses/6-006-introduction-to-algorithms-spring-2020/
- Python Software Foundation, Tutorial: Data Structures: https://docs.python.org/3/tutorial/datastructures.html
- Dunlosky et al. (2013), practice testing and distributed practice: https://doi.org/10.1177/1529100612453266
Stage durations (for example, 2.5–4 months for a beginner base) are pacing estimates for learners studying 45–60 minutes a day, not guaranteed outcomes; adjust them to your own pace and exit criteria.