DSA Roadmap (with Free Resources)
1. Programming Language Fundamentals
👉 Pick one language (C++ / Java / Python).
📖
● Learn basics: Variables, Loops, Conditionals, Functions, OOPs.
Free Resources:
● W3Schools Python / W3Schools C++
● Java Tutorial – GeeksforGeeks
● YouTube: CodeWithHarry (C++/Java/Python)
2. Time & Space Complexity
👉 Learn Big-O notation, best/worst/average case analysis.
📖 Free Resources:
● Big-O Cheat Sheet
● Complexity Analysis – GFG
● YouTube: Abdul Bari Complexity Analysis
3. Basic Data Structures
● Arrays
● Strings
● Linked List (Singly, Doubly, Circular)
● Stack & Queue
📖 Free Resources:
● GeeksforGeeks DSA Playlist
● YouTube: Love Babbar DSA Series
● Practice: LeetCode Easy Problems
4. Recursion & Backtracking
● Factorial, Fibonacci, Tower of Hanoi
● Subsets, Permutations
● N-Queens, Rat in a Maze
📖 Free Resources:
● Backtracking – GFG
● YouTube: Kunal Kushwaha Recursion Playlist
5. Searching & Sorting
● Binary Search & its applications
● Sorting: QuickSort, MergeSort, HeapSort, CountingSort
📖 Free Resources:
● Binary Search Patterns – LeetCode
● Sorting Algorithms Visualized
6. Advanced Data Structures
● Hashing (HashMap, HashSet)
● Trees (Binary Tree, Binary Search Tree, Traversals)
● Heaps & Priority Queue
● Graphs (BFS, DFS, Dijkstra, Floyd-Warshall, Kruskal, Prim)
● Tries
📖 Free Resources:
● VisuAlgo Graphs
● Graph Algorithms – William Fiset (YouTube)
● Trees – GFG
7. Dynamic Programming (DP)
● 1D DP: Fibonacci, Climbing Stairs, Coin Change
● 2D DP: Knapsack, LCS, Matrix Path
● Advanced DP: DP on Trees, DP with Bitmask
📖 Free Resources:
● DP Patterns – LeetCode Discuss
● Aditya Verma DP Playlist (YouTube)
8. Problem Solving & Competitive Programming
● Learn Problem-Solving Strategies
● Practice 500+ Problems gradually
📖 Free Resources:
● LeetCode
● Codeforces
● InterviewBit DSA Track
● A2OJ Ladders
9. System Design Basics (Optional, after DSA)
● Basics of Scalability
● Caching, Load Balancing, Databases
📖 Free Resources:
● System Design Primer (GitHub)
● YouTube: Gaurav Sen System Design
✅ Final DSA Prep Strategy
1. Start with Language + Complexity (1–2 weeks)
2. Cover Arrays, Strings, Linked List, Stack, Queue (3–4 weeks)
3. Learn Recursion + Sorting + Searching (3 weeks)
4. Move to Trees + Graphs + Hashing + Heaps (1–2 months)
5. Dedicate 1 month for DP
6. Daily practice on LeetCode/Codeforces
⚡ Pro Tip: Use LeetCode Top 150 Interview Questions as a checklist.
👉 LeetCode Top 150