Skip to content

abdulazizkhatamov/dsa

Repository files navigation

DSA — From Zero to Strong

What you will learn

Starting from absolutely nothing — no assumed knowledge. Every concept explained simply. Math taught when needed. One topic per day. No rush.


The Full Roadmap

Phase 0 — Foundations (Before DSA)

Understanding what DSA even is, and the small amount of math you need.

Day File Topic
1 phase-0-foundations/day-01-what-is-dsa.md What is DSA? Why learn it?
2 phase-0-foundations/day-02-math-exponents.md Math: Exponents (powers)
3 phase-0-foundations/day-03-math-logarithms.md Math: Logarithms
4 phase-0-foundations/day-04-math-modulo.md Math: Modulo (remainder)

Phase 1 — Big O Notation

How to measure if your code is fast or slow. You need this before anything else.

Day File Topic
5 phase-1-big-o/day-05-big-o-intro.md What is Big O?
6 phase-1-big-o/day-06-big-o-common.md O(1), O(n), O(n²), O(log n), O(n log n)
7 phase-1-big-o/day-07-big-o-practice.md Reading code and finding its Big O

Phase 2 — Arrays

The most basic and most used data structure.

Day File Topic
8 phase-2-arrays/day-08-arrays-intro.md What is an array? How does it work in memory?
9 phase-2-arrays/day-09-arrays-methods.md Array methods and their Big O
10 phase-2-arrays/day-10-arrays-problems-1.md First easy problems
11 phase-2-arrays/day-11-arrays-two-pointers.md Two Pointers technique
12 phase-2-arrays/day-12-arrays-sliding-window.md Sliding Window technique
13 phase-2-arrays/day-13-arrays-prefix-sum.md Prefix Sum technique

Phase 3 — Hash Maps

The second most important data structure. Makes many problems easy.

Day File Topic
14 phase-3-hashmaps/day-14-hashmaps-intro.md What is a Hash Map? How does it work?
15 phase-3-hashmaps/day-15-hashmaps-problems-1.md Frequency counter pattern
16 phase-3-hashmaps/day-16-hashmaps-problems-2.md More hash map problems

Phase 4 — Strings

Working with text.

Day File Topic
17 phase-4-strings/day-17-strings-intro.md Strings — how they work, methods
18 phase-4-strings/day-18-strings-problems-1.md Palindromes, anagrams, reversal
19 phase-4-strings/day-19-strings-problems-2.md Substring problems

Phase 5 — Linked Lists

A different way to store a sequence of items.

Day File Topic
20 phase-5-linked-lists/day-20-linked-lists-intro.md What is a Linked List?
21 phase-5-linked-lists/day-21-linked-lists-problems-1.md Traversal, reverse, find middle
22 phase-5-linked-lists/day-22-linked-lists-problems-2.md Cycle detection, merge

Phase 6 — Stacks & Queues

Two structures with strict rules about how you add/remove items.

Day File Topic
23 phase-6-stacks-queues/day-23-stacks-intro.md What is a Stack?
24 phase-6-stacks-queues/day-24-queues-intro.md What is a Queue?
25 phase-6-stacks-queues/day-25-stacks-queues-problems.md Problems using stacks and queues

Phase 7 — Recursion

Functions that call themselves. Needed for trees, graphs, and more.

Day File Topic
26 phase-7-recursion/day-26-recursion-intro.md What is recursion? How does it work?
27 phase-7-recursion/day-27-recursion-problems-1.md Basic recursion problems
28 phase-7-recursion/day-28-recursion-problems-2.md Harder recursion problems

Phase 8 — Sorting Algorithms

How to put things in order — and why some ways are faster than others.

Day File Topic
29 phase-8-sorting/day-29-bubble-sort.md Bubble Sort (simple, slow)
30 phase-8-sorting/day-30-selection-insertion-sort.md Selection Sort & Insertion Sort
31 phase-8-sorting/day-31-merge-sort.md Merge Sort (fast, uses recursion)
32 phase-8-sorting/day-32-quick-sort.md Quick Sort (fast, commonly used)

Phase 9 — Searching

How to find things efficiently.

Day File Topic
33 phase-9-searching/day-33-linear-search.md Linear Search
34 phase-9-searching/day-34-binary-search.md Binary Search (O(log n) — very fast)
35 phase-9-searching/day-35-binary-search-problems.md Binary search problems

Phase 10 — Trees

Hierarchical data. Used everywhere (file systems, databases, HTML DOM).

Day File Topic
36 phase-10-trees/day-36-trees-intro.md What is a Tree? Terminology
37 phase-10-trees/day-37-binary-search-tree.md Binary Search Tree
38 phase-10-trees/day-38-tree-dfs.md DFS — Depth First Search on trees
39 phase-10-trees/day-39-tree-bfs.md BFS — Breadth First Search on trees
40 phase-10-trees/day-40-tree-problems.md Tree problems

Phase 11 — Graphs

The most general structure. Everything connects to everything.

Day File Topic
41 phase-11-graphs/day-41-graphs-intro.md What is a Graph?
42 phase-11-graphs/day-42-graphs-bfs-dfs.md BFS and DFS on graphs
43 phase-11-graphs/day-43-graphs-problems.md Graph problems

Phase 12 — Dynamic Programming

Breaking big problems into smaller ones. Most feared topic — made simple.

Day File Topic
44 phase-12-dynamic-programming/day-44-dp-intro.md What is DP? Memoization
45 phase-12-dynamic-programming/day-45-dp-tabulation.md Bottom-up DP (tabulation)
46 phase-12-dynamic-programming/day-46-dp-classic-problems.md Classic DP problems
47 phase-12-dynamic-programming/day-47-dp-more-problems.md More DP problems

Phase 13 — Advanced Patterns

Techniques that appear in many interview problems.

Day File Topic
48 phase-13-patterns/day-48-two-pointers-advanced.md Two Pointers — advanced
49 phase-13-patterns/day-49-sliding-window-advanced.md Sliding Window — advanced
50 phase-13-patterns/day-50-backtracking.md Backtracking

Rules for Learning DSA

  1. Do not skip days. Each day builds on the previous one.
  2. Read slowly. Don't rush to the code. Understand the idea first.
  3. Write the code yourself. Don't copy-paste. Type it out.
  4. Solve the practice problems before looking at the answer.
  5. If something is unclear — re-read it. Then re-read it again.

How each file is structured

Every day file has:

  • Simple explanation — what is this thing, in plain English
  • Real-world analogy — connect it to something you already know
  • How it works — step by step, no skipping
  • JavaScript code — with every line explained
  • Practice problems — you solve these yourself
  • Solutions — with full explanation

About

Data Structures & Algorithms

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors