DSA ROADMAP

Crafting awesome DSA roadmap

Hey, it’s me arajAnkit AKA Ankit Rajpoot. I’m a self-thought full stack engineer skilled in data structures & algorithms, full stack web development and landing page designing. I know basic of web development, React ecosystem for frontend development and Node.js ecosystem for backend development. And most of the time I work on it.

DSA is hard unless you follow this roadmap. In this roadmap, I cover everything. This will help you master DSA and become a legend in problem solving.

I have solved around 1700 problems on Leetcode (you can check my profile by clicking here). I have observed many patterns that make problem solving easier. If you master these patterns, you can solve most of the problems on Leetcode and other platforms like Leetcode.

Follow this guide and keep learning! Give a shout-out to arajAnkit and contribute to this roadmap by clicking here.

Download Roadmap Flow

Module 1 - Getting Started with C++ Programming

Mandatory

Learn the fundamentals of programming and dive into C++ concepts, including execution process and programming paradigms.

Programming BasicsC++Software DevelopmentComputer Science

Module 2 - Fundamentals of C++

Mandatory

Learn the foundational concepts of C++ programming, including variables, data types, and their scope within programs.

Programming BasicsC++Software DevelopmentComputer Science

Module 3 - Control Flow & Loops

Mandatory

Understand the core concepts of control flow in C++, including conditional statements, loops, and jump statements to structure logical execution in programs.

Programming BasicsC++Control FlowLoops

Module 4 - Functions & Pointers

Mandatory

Learn the fundamentals of functions and pointers in C++, including their importance, types, memory management, and common interview questions.

C++FunctionsPointersProgramming BasicsSoftware Development

Module 5 - Object-Oriented Programming in C++ and Java

Mandatory

This module provides a structured approach to mastering Object-Oriented Programming (OOP) in Java. It covers fundamental concepts such as classes & objects and access modifiers, focusing on encapsulation, reusability, and best practices for developing robust Java applications.

Object-Oriented ProgrammingJavaC++EncapsulationInheritancePolymorphism

Module 6 - Standard Template Library (STL)

Mandatory

Explore the fundamentals of STL in C++, including sequential and associative containers, their advantages, and implementation in programming.

C++STLData StructuresProgramming BasicsSoftware Development

Module 7 - Data Structures & Algorithms

Mandatory

Learn the fundamentals of data structures and algorithms, their significance in problem-solving, efficiency considerations, and performance analysis techniques.

Programming BasicsData StructuresAlgorithmsComputer ScienceProblem Solving

Module 8 - Arrays & Strings in C++

Mandatory

Understand the fundamental concepts of arrays and strings in C++, including memory allocation, common operations, and their functions in programming.

C++Data StructuresArraysStringsSoftware Development

Module 9 - Recursion and Its Use Cases

Mandatory

Learn the fundamental concepts of recursion in programming, its types, applications, best practices, and how it is used in algorithms and problem-solving.

RecursionC++AlgorithmsProgramming BasicsData Structures

Module 10 - Searching and Sorting

Mandatory

Learn the fundamental concepts of searching and sorting algorithms, their efficiency, implementation strategies, and real-world applications.

SearchingSortingData StructuresAlgorithmsProgramming BasicsComputer Science

Module 11 - Array & String Patterns

Mandatory

Learn various array and string problem-solving techniques including Two Pointers, Sliding Window, and Prefix Sum, along with practical applications.

AlgorithmsData StructuresArraysStringsProblem SolvingCompetitive Programming

Module 12 - Array & String Algorithms

Mandatory

Learn key algorithms for arrays and strings, including searching, partitioning, pattern matching, and optimization techniques used in competitive programming and real-world applications.

AlgorithmsData StructuresArraysStringsPattern MatchingCompetitive Programming

Module 13 - Backtracking and Its Applications

Mandatory

Learn the principles of backtracking, recursive exploration techniques, optimization strategies, and applications in graph traversal and combinatorial problems.

BacktrackingData StructuresAlgorithmsProblem SolvingGraph TraversalRecursion

Module 14 - Hashing and Its Applications

Mandatory

Learn the fundamentals of hashing, its role in data structures and algorithms, collision resolution techniques, and practical applications in competitive programming and real-world scenarios.

Data StructuresAlgorithmsHashingComputer ScienceCompetitive Programming

Module 15 - Linked Lists for DSA

Mandatory

Learn about linked lists, their types, operations, advantages, and practical implementations in data structures and algorithms.

Data StructuresAlgorithmsLinked ListsC++Programming

Module 16 - Linked List Patterns

Mandatory

Explore different techniques for solving linked list problems, including slow & fast pointers and in-place reversal methods. Learn efficient problem-solving strategies used in data structures and algorithms.

Linked ListsData StructuresAlgorithmsProblem SolvingProgramming

Module 17 - Stack, Queue, and Deque

Mandatory

Learn the fundamental concepts of stack, queue, and deque, their operations, applications in problem-solving, and advanced techniques like monotonic structures.

Data StructuresAlgorithmsStackQueueDequeProblem SolvingProgramming

Module 18 - Tree Data Structures

Mandatory

Learn about tree-based data structures, including binary trees, binary search trees, and N-ary trees, along with traversal techniques and problem-solving strategies.

Data StructuresAlgorithmsTreesBinary Search TreeGraph Traversal

Module 19 - Tree Patterns

Mandatory

Explore advanced tree traversal techniques, different tree views, and various methods for constructing trees used in data structures and algorithms.

Data StructuresAlgorithmsTreesTree TraversalGraph Theory

Module 20 - Heap and Priority Queue

Mandatory

Learn about heap data structures and priority queues, their operations, variants, applications in real-world scenarios, and practice problems.

Data StructuresAlgorithmsHeapPriority QueueSortingGraph Theory

Module 21 - Heap & Priority Queue Patterns

Mandatory

Explore key problem-solving patterns using heaps and priority queues, including Kth element selection, K-way merging, and dynamic median tracking.

Data StructuresAlgorithmsHeapPriority QueueSortingGraph Theory

Module 22 - Trie (Prefix Tree)

Mandatory

Explore the Trie data structure, its operations, variants, algorithms, and applications in text processing, network routing, and efficient searching.

Data StructuresAlgorithmsTriePrefix TreeString SearchingOptimization

Module 23 - Interval & Design-Based Problems

Mandatory

Learn various techniques for solving interval-based problems efficiently and explore key design patterns for real-world applications.

AlgorithmsData StructuresSystem DesignIntervalsOptimizationCompetitive Programming

Module 24 - Graph Data Structure

Mandatory

Explore the fundamental concepts of graph theory, including representations, traversal techniques, shortest path algorithms, and applications in real-world scenarios.

Data StructuresAlgorithmsGraphsOptimizationNetwork DesignGraph Traversal

Module 25 - Dynamic Programming

Mandatory

Master dynamic programming concepts, including problem-solving approaches, optimization techniques, and real-world applications to improve algorithmic efficiency.

AlgorithmsData StructuresDynamic ProgrammingOptimizationRecursionCompetitive Programming

Module 26 - Greedy Algorithm for Problem Solving

Mandatory

Learn the principles of greedy algorithms, their approaches, and applications in optimization problems, scheduling, graph traversal, and resource allocation.

AlgorithmsData StructuresOptimizationGreedy AlgorithmsGraph TheorySorting

Module 27 - Bit Manipulation

Mandatory

Explore the power of bitwise operations in programming, optimization techniques, dynamic programming, and graph algorithms using bit manipulation strategies.

AlgorithmsBitwise OperationsOptimizationCompetitive ProgrammingDynamic ProgrammingGraph Theory

Module 28 - Segment Tree

Mandatory

Learn the fundamentals of segment trees, their applications in range queries, lazy propagation, advanced techniques, and their use in graph algorithms and string processing.

AlgorithmsData StructuresRange QueriesCompetitive ProgrammingGraph TheoryString Processing

Module 29 - Combinatorics

Mandatory

Learn the principles of combinatorics, including counting techniques, permutations, combinations, and their applications in probability, graph theory, and dynamic programming.

AlgorithmsCounting TechniquesProbabilityGraph TheoryDynamic ProgrammingCompetitive Programming

Module 30 - String Matching

Mandatory

Learn string matching algorithms, including exact and approximate matching techniques, their applications in search engines, DNA sequencing, plagiarism detection, and advanced computational strategies.

AlgorithmsString ProcessingPattern MatchingCompetitive ProgrammingGraph TheoryDynamic Programming