-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Samwel Ngusa edited this page Jun 27, 2025
·
2 revisions
Data Structures and Algorithms (DSA) are fundamental skills for software developers. They help you:
- πΌ Ace technical interviews at top companies like Google, Amazon, Meta.
- π§ Improve problem-solving and logical thinking.
- βοΈ Write efficient and scalable code.
- π§ͺ Build systems powering real-world apps and services.
Category | Tools & Links |
---|---|
π Main Book | Hands-On Data Structures and Algorithms with Python by Basant Agarwal |
π₯ Videos | NeetCode, Abdul Bari |
π» Practice | LeetCode, HackerRank, GeeksforGeeks |
π Tracking | Notion, Google Sheets, Notebook |
π§βπ» IDEs | VS Code, PyCharm, Jupyter Notebook |
- Python basics: lists, dicts, loops, recursion
- Big-O notation and time complexity
- Practice: 5 warm-up Python problems
- Read Chapters 1β2 from the book
- Watch: NeetCode βBig-O Notation Explainedβ
- Arrays, Strings, Stacks, Queues
- Linked Lists (Singly, Doubly, Circular)
- Implement from scratch + problems: Two Sum, Valid Parentheses, Reverse Linked List
- Hash maps and sets
- Recursive functions & patterns
- Backtracking basics
- Problems: Group Anagrams, Sudoku Solver
- Trees (Binary, BST), Heaps
- Graphs (BFS, DFS)
- Tries (Prefix Trees)
- Practice: Diameter of Binary Tree, Clone Graph
- Two Pointers, Sliding Window, Binary Search
- Greedy, Backtracking, Dynamic Programming (Intro)
- Problems: Container With Most Water, Jump Game, Climbing Stairs
- Mini projects: Spell Checker (Trie), Pathfinding Visualizer (Graph), Event Scheduler (MinHeap)
- Blind 75 LeetCode problems
- Mock interviews: Pramp, Interviewing.io
Pattern | Example Problems |
---|---|
Sliding Window | Longest Substring Without Repeating |
Two Pointers | Container With Most Water |
Binary Search | Search in Rotated Sorted Array |
Backtracking | N-Queens, Sudoku |
Greedy | Gas Station, Jump Game |
Dynamic Programming | Fibonacci, 0/1 Knapsack, Longest Common Subsequence |
- Maintain a problem log using Notion or Google Sheets.
- Set daily targets (e.g., 2β3 problems/day).
- Revise weekly by re-solving tough problems.
- Use VS Code snippets or a notebook for notes.
- Join coding groups or study buddies for accountability.
- Consistency beats speed β steady daily practice wins.
- Revisit problems after 1 week and 1 month to retain knowledge.
- Master problem-solving patterns β they cover 80% of interview questions.
- Approach DSA as a long-term investment for career growth.
This roadmap is open-source under the MIT License.
Feel free to fork, improve, and share. Contributions are welcome!
Happy coding! π