A complete, step-by-step data structures and algorithms tutorial series. Master the core concepts that appear in coding interviews at Google, Meta, Amazon, and every top tech company. Every article includes working code in Kotlin, Python, and Go.
Free. No paywall. From arrays to dynamic programming.
Part 1: Data Structures
| # | Tutorial | What You Will Learn |
|---|---|---|
| 1 | Arrays and Strings (Coming Soon) | Arrays, strings, two-pointer technique, palindromes, anagrams |
| 2 | Linked Lists (Coming Soon) | Singly, doubly, circular lists, reversal, cycle detection |
| 3 | Stacks and Queues (Coming Soon) | LIFO, FIFO, monotonic stack, valid parentheses |
| 4 | Hash Maps and Sets (Coming Soon) | Hashing, O(1) lookup, frequency counting, two sum |
| 5 | Trees — Binary Trees and BST (Coming Soon) | Traversals, BST operations, validate BST |
| 6 | Heaps and Priority Queues (Coming Soon) | Min-heap, max-heap, heapify, top K pattern, priority queues |
| 7 | Graphs — Representation, BFS, and DFS (Coming Soon) | Adjacency list, BFS, DFS, cycle detection, topological sort |
| 8 | Tries (Prefix Trees) (Coming Soon) | Insert, search, startsWith, autocomplete, word search |
| 9 | Union-Find (Disjoint Sets) (Coming Soon) | Path compression, union by rank, connected components |
| 10 | When to Use Which Data Structure (Coming Soon) | Decision framework, complexity cheat sheet, interview strategy |
Part 2: Algorithms
| # | Tutorial | What You Will Learn |
|---|---|---|
| 11 | Big O Notation (Coming Soon) | Time and space complexity, how to calculate Big O, common complexities |
| 12 | Sorting Algorithms (Coming Soon) | Bubble sort, merge sort, quick sort, comparison table, when to use which |
| 13 | Binary Search (Coming Soon) | Templates, search on answer, rotated arrays, 2D matrix search |
| 14 | Two Pointers and Sliding Window (Coming Soon) | Converging pointers, fast/slow, fixed and variable sliding windows |
| 15 | Recursion and Backtracking (Coming Soon) | Call stack, backtracking template, subsets, permutations, N-Queens |
| 16 | Dynamic Programming (Coming Soon) | Memoization, tabulation, 1D and 2D DP, coin change, LCS |
| 17 | Greedy Algorithms (Coming Soon) | Greedy vs DP, interval scheduling, jump game, task scheduler |
| 18 | BFS and DFS Deep Dive (Coming Soon) | Dijkstra, multi-source BFS, grid problems, shortest path patterns |
Part 3: Interview Patterns
| # | Tutorial | What You Will Learn |
|---|---|---|
| 19 | Top 10 LeetCode Patterns (Coming Soon) | Pattern recognition, decision flowchart, 10 core interview patterns |
| 20 | String Manipulation Patterns (Coming Soon) | Palindromes, anagrams, sliding window on strings, KMP algorithm |
| 21 | Tree and Graph Patterns (Coming Soon) | DFS/BFS variants, path problems, LCA, topological sort patterns |
| 22 | Dynamic Programming Patterns (Coming Soon) | Knapsack, string DP, grid DP, interval DP, state machine DP |
| 23 | System Design vs DSA (Coming Soon) | Interview pipeline, study allocation by level, how DSA powers system design |
| 24 | How to Practice DSA Effectively (Coming Soon) | Study plan, spaced repetition, Blind 75, NeetCode 150, mock interviews |
| 25 | DSA Cheat Sheet (Coming Soon) | All data structures, algorithms, patterns, and code templates in one page |
Who is This For?
- Developers preparing for coding interviews at FAANG and top tech companies
- Self-taught programmers who want a solid computer science foundation
- Career switchers entering software development
- Anyone who wants to understand data structures and algorithms from scratch
Prerequisites
- Basic programming knowledge in at least one language
- Familiarity with variables, loops, functions, and classes
- No computer science degree required
Why Kotlin, Python, and Go?
Every article shows solutions in three languages:
- Python — the most popular interview language (60%+ of candidates use it)
- Kotlin — great for Android developers preparing for interviews
- Go — growing fast for backend and systems roles