Related Roadmaps Find the interactive version
of this roadmap and more at
Computer Science
Programming Languages
roadmap.sh
System Design
Data Structures & Algorithms
Software Design & Architecture
C# JavaScript
Language Syntax
C++ Java
Pick a Language Control Structures
Python Go
Programming Fundamentals Pseudo Code
Rust Ruby
Functions
OOP Basics
What are Data Structures?
Common Runtimes
Array Linked Lists Why are Data Structures Important?
Queues Stacks Basic Data Structures Constant
Hash Tables Logarithmic
Linear
Time vs Space Complexity Polynomial
How to Calculate Complexity? Algorithmic Complexity Exponential
Asymptotic Notation Factorial
Big-O Notation
Sorting Algorithms Binary Search
Big-θ Notation
Linear Search
Big-Ω Notation
Bubble Sort Merge Sort
Insertion Sort Quick Sort Search Algorithms
Directed Graph
Selection Sort
Undirected Graph
Heap Sort
Graph Data Structures Tree Data Structures
Search Algorithms Binary Trees Tree Traversal Search Algorithms
Breadth First Search Binary Search Trees In-Order Traversal Breadth First Search
Depth First Search AVL Trees Pre-Order Traversal Depth First Search
B-Trees Heap Post-Order Traversal
Shortest Path Algorithms
Dijkstra's Algorithm
Trie
Bellman-Ford Algoritm
Segment Trees
A* Algorithm
Advanced Data Structures Fenwick Trees
Minimum Spanning Tree
Disjoint Set (Union-Find)
Prim's Algorithm
Suffix Trees and Arrays
Kruskal's Algorithm
Linear
2-3 Trees Complex Data Structures Indexing
Tree-Based
B/B+ Trees
Skip List
Brute Force Backtracking
ISAM
Greedy Algorithms
Island traversal Randomised Algorithms Problem Solving Techniques
Multi-threaded Divide and COnquer
Leetcode
Two Heaps Kth Element Recursion
Edabit
Merge Intervals Dynamic Programming
Cyclic Sort Two Pointer Technique
Platforms to Practice
Fast and Slow Pointers Sliding Window Technique
Continue learning with following roadmaps
Computer Science System Design