DSA Master is a free, 28-chapter course that teaches data structures and algorithms in JavaScript from first principles. Each chapter explains one topic with real-life analogies, dry runs and runnable code, then ends with revision notes, a cheat sheet, 20 MCQs, 20 coding problems, interview questions and project ideas.
- 28Chapters
- 182k+Words
- 540Quiz questions
- 100%Free
Foundations Chapters 1–7
Complexity analysis, recursion and the linear structures every other topic builds on.
Big-O Notation and Time Complexity in JavaScript
Learn Big-O notation from scratch: time and space complexity, best vs worst case, and the hidden costs of JavaScript array and string methods, with examples. 02Recursion in JavaScript: Call Stack, Base Cases and Memoization
Master recursion in JavaScript: base cases, the call stack, Fibonacci dry runs, memoization, recursion vs iteration and how to debug recursive functions. 03Arrays and Strings in JavaScript: Two Pointers, Sliding Window and Prefix Sums
Arrays and strings for DSA in JavaScript: memory layout, dynamic resizing, two pointers, sliding window, prefix sums, difference arrays and in-place rotation. 04Hashing in JavaScript: Hash Tables, Map, Set and Collisions
Learn how hash tables work in JavaScript: hash functions, collisions, load factor, Map vs Object, WeakMap and the 5 hashing patterns behind interview questions. 05Linked Lists in JavaScript: Singly, Doubly and Circular
Build singly and doubly linked lists in JavaScript from scratch. Learn linked list vs array trade-offs, reversal, merging, cycles and the dummy-node trick. 06Stacks and Queues in JavaScript: LIFO, FIFO and Deques
Learn stacks and queues in JavaScript: LIFO vs FIFO, deques, why Array.shift is slow, two-stack queues and real uses like undo, parsing, BFS and scheduling. 07Fast and Slow Pointers: Floyd's Cycle Detection Explained
Master the fast and slow pointer technique: Floyd's cycle detection with proof, finding the cycle start, the middle node, nth from end and happy numbers.Trees, Heaps & Tries Chapters 8–10
Hierarchical structures, traversal orders and the priority-queue patterns.
Trees in JavaScript: Binary Trees, Traversals and Binary Search Trees
Learn binary trees and BSTs in JavaScript: preorder, inorder, postorder and level-order traversal, height, diameter, BST insert and delete, and balancing. 09Heaps and Priority Queues in JavaScript: Min-Heap, Max-Heap and Top-K
Build a min-heap and priority queue in JavaScript from scratch: array representation, sift up and down, O(n) heapify, heap sort, Top-K and median of a stream. 10Trie Data Structure in JavaScript: Prefix Trees and Autocomplete
Learn the trie (prefix tree) in JavaScript: insert, search and startsWith, autocomplete, word break, Word Search II and compressed radix trees, with code.Graphs Chapters 11–14
BFS, DFS, shortest paths, topological sort, minimum spanning trees and Union-Find.
Graphs in JavaScript: Adjacency Lists, BFS and DFS
Learn graph data structures in JavaScript: adjacency list vs matrix, BFS and DFS traversal, connected components, number of islands and cycle detection. 12Shortest Path Algorithms: Dijkstra, Bellman-Ford and Floyd-Warshall
Learn shortest path algorithms in JavaScript: Dijkstra with a heap, Bellman-Ford and negative cycles, Floyd-Warshall all-pairs, and when to use each one. 13Topological Sort and Minimum Spanning Trees: Kahn's, Kruskal's and Prim's
Learn topological sort with Kahn's algorithm and DFS, and minimum spanning trees with Kruskal's and Prim's algorithms, implemented and compared in JavaScript. 14Union-Find (Disjoint Set Union) in JavaScript: Path Compression and Union by Rank
Learn Union-Find (disjoint set union) in JavaScript: find and union, union by rank, path compression, near-O(1) inverse Ackermann time and where DSU is used.Sorting & Searching Chapters 15–16
Every major sorting algorithm and the binary search patterns interviews test.
Sorting Algorithms in JavaScript: Merge Sort, Quick Sort, Heap Sort and More
Every sorting algorithm in JavaScript: bubble, selection, insertion, merge, quick, heap, counting and radix sort, plus stability and how Array.sort works. 16Binary Search Patterns: Boundaries, Rotated Arrays and Binary Search on the Answer
Master binary search patterns in JavaScript: off-by-one rules, first and last occurrence, rotated arrays, binary search on the answer and 2D matrix search.Backtracking, DP & Greedy Chapters 17–20
The three big problem-solving paradigms, each with a repeatable framework.
Backtracking in JavaScript: Permutations, Combinations, N-Queens and Sudoku
Learn backtracking in JavaScript with one reusable template: permutations, combinations, combination sum, N-Queens, Sudoku, word search and pruning. 18Dynamic Programming in JavaScript, Part 1: One-Dimensional DP
Learn dynamic programming in JavaScript with a 5-step framework: memoization vs tabulation, climbing stairs, house robber, coin change and LIS. 19Dynamic Programming in JavaScript, Part 2: Two-Dimensional DP
Learn 2D dynamic programming in JavaScript: grid paths, longest common subsequence, edit distance, the 0/1 knapsack problem and space optimization. 20Greedy Algorithms in JavaScript: When the Local Best Is the Global Best
Learn greedy algorithms in JavaScript: the greedy-choice property, exchange-argument proofs, activity selection, Huffman coding and greedy vs DP.Advanced Techniques Chapters 21–26
Monotonic stacks, string matching, range queries, bit tricks, maths and network flow.
Monotonic Stack and Monotonic Queue in JavaScript
Learn the monotonic stack and queue in JavaScript: next greater element, daily temperatures, largest rectangle in a histogram and sliding window maximum. 22String Algorithms in JavaScript: KMP, Rabin-Karp and Suffix Structures
Learn string matching in JavaScript: why naive search is slow, KMP and the LPS array, Rabin-Karp rolling hash, and an intro to suffix arrays and trees. 23Segment Trees and Fenwick Trees in JavaScript: Range Queries and Updates
Learn segment trees and Fenwick trees (binary indexed trees) in JavaScript: range sum and min queries, point updates, lazy propagation and range update tricks. 24Bit Manipulation and Bitmask Dynamic Programming in JavaScript
Learn bit manipulation in JavaScript: bitwise operators, 32-bit gotchas, XOR tricks, power-of-two checks, counting set bits, subsets as bitmasks and bitmask DP. 25Mathematics for Programmers: Number Theory, Combinatorics and Game Theory
The maths behind DSA in JavaScript: GCD and LCM, the Sieve of Eratosthenes, modular arithmetic, fast power, permutations, combinations and Nim game theory. 26Advanced Graph Theory: Bipartite Matching, Maximum Flow and Min-Cut
Learn advanced graph algorithms in JavaScript: bipartite matching, Ford-Fulkerson and Edmonds-Karp maximum flow, residual graphs and max-flow min-cut.Interview Ready Chapters 27–28
How DSA shows up in system design, plus the complete interview revision kit.
DSA for System Design: LRU Cache, Rate Limiting, B-Trees and Consistent Hashing
See how data structures power real systems: LRU and LFU caches, sliding-window and token-bucket rate limiters, B-trees, consistent hashing and Bloom filters. 28DSA Interview Preparation: Patterns, 90-Day Roadmap and Top 100 Problems
A complete DSA interview prep kit: pattern guide, Big-O reference table, the 100 most asked problems by pattern, 90 and 180-day study plans and a glossary.How to study this course
Read the chapters in order: each one reuses the previous ones, and the cross-links in the text point back to the chapter that introduced an idea. Do the chapter quiz, then the coding problems, before moving on. About 14 hours of reading in total; the 90-day and 180-day plans in Chapter 28 spread it with practice.
DSA Master: frequently asked questions
Is DSA Master really free?
Yes. All 28 chapters are free to read online with no sign-up, paywall or trial. The full text of every chapter is on its own page, including the code, the quizzes and the answer keys.
Can I learn DSA with JavaScript instead of C++ or Java?
Yes. Data structures and algorithms are language-independent, and JavaScript is accepted in almost every coding interview. This course also covers the JavaScript-specific details that matter, such as the cost of Array.shift, the lexicographic default of Array.sort and the 32-bit behaviour of bitwise operators.
In what order should I read the chapters?
Read them in order. Chapters 1 to 7 build the foundations (Big-O, recursion, arrays, hashing, linked lists, stacks, queues), and later chapters on trees, graphs, dynamic programming and greedy algorithms reuse those ideas directly. Chapter 28 is a revision index you can return to at any time.
How long does it take to finish the DSA Master course?
Most learners finish in about 90 days at 1 to 2 hours a day, which is the study plan given in Chapter 28. A slower 180-day plan is also included if you are studying alongside a job or college.
Is this course enough for coding interviews?
It covers every pattern that common interview questions draw on: two pointers, sliding window, hashing, BFS and DFS, binary search on the answer, backtracking, dynamic programming, greedy, monotonic stacks and more. Chapter 28 maps 100 frequently asked problems to those patterns and includes a mock interview protocol.