01 — Books

Books are the highest signal-to-noise ratio resource in DSA learning — no ads, no YouTube algorithm optimizing for watch time, no one padding a 10-minute concept to a 2-hour video. The tradeoff is activation energy: opening a dense textbook is harder than clicking play. The books listed here are the ones where that tradeoff is consistently worth it, based on community consensus from r/learnprogramming, r/competitiveprogramming, and Codeforces blogs (2024-2026 sampling).

One practical note: most of these books have free legal PDFs or university-hosted versions. The paid versions exist, but the content is identical. Where free alternatives exist, they are flagged.


1. Grokking Algorithms — Aditya Bhargava

What it covers: Arrays, linked lists, recursion, quicksort, hash tables, BFS, Dijkstra’s, dynamic programming, K-nearest neighbors. Visual, comic-style illustrations for every concept.

Who it’s for: Absolute beginners or people whose CS foundations are shaky. If you’ve never thought about why quicksort is O(n log n), this is where you start. If you already know this, skip it.

Community verdict: r/learnprogramming (2024-2026) consistently calls it the best introduction. One post with 719 upvotes: “Amazing introductory book, makes algorithms feel approachable for the first time.” It is praised specifically for not assuming mathematical maturity. No one recommends it as a complete DSA education — it’s an on-ramp.

Cost: ~$30-35 paperback. 2nd edition (2024) adds some ML content but core algorithms content is the same. The 1st edition PDF circulates freely; the 2nd edition is worth the price for the updates.

Free alternative: None of equivalent accessibility. CLRS is technically free via library but is not a substitute for this purpose.

Phase alignment: Phase 0 (M1–M1.5) — foundation building. Read cover to cover in 2 weeks.

Time to complete (realistic): 15-20 hours. It’s short and illustrated. This is a weekend sprint, not a semester.

Verdict: PRIMARY for Phase 0. If you have any CS foundation at all, you can skip to CP Handbook. If your foundations are unclear — what is O(n log n) actually measuring, how does memory allocation work conceptually — start here.


2. Competitive Programmer’s Handbook — Antti Laaksonen

What it covers: Time complexity, sorting, data structures (stacks, queues, sets, maps, heaps), graph algorithms (BFS, DFS, Dijkstra, Bellman-Ford, Floyd-Warshall, MST, topological sort), dynamic programming (all standard patterns), range queries (segment tree, BIT/Fenwick), tree algorithms, geometry basics, string algorithms (hashing, suffix arrays, KMP), mathematics (number theory, combinatorics, game theory).

Who it’s for: Someone who knows basic programming and wants to get into competitive programming. Written specifically for this purpose — not academic theory, not interview prep, pure CP. It covers exactly the topics that appear on Codeforces and similar judges.

Community verdict: r/competitiveprogramming and Codeforces community (2024-2026) are consistently enthusiastic. Frequently cited as “the OG book for getting from level 0 to CP level.” r/Btechtards (Indian CS community) references it constantly. The consensus is that if you read this book and solve CSES problems, you are ready for Codeforces Div. 3 to Div. 2.

Cost: Free. Legal PDF on the author’s site. Search “Competitive Programmer’s Handbook PDF” — the first or second result from the official source. (URL: cses.fi/book/book.pdf — verify before use.)

Free alternative: This IS the free alternative. It is the primary recommendation, not the fallback.

Phase alignment: Phases 1-4 (M1.5–M6). Read sections aligned to what you’re practicing. Not a cover-to-cover read — use it topic by topic.

Time to complete (realistic): The book is 296 pages. Topic-by-topic over 4.5 months is very manageable — roughly 10-15 pages per week.

Verdict: PRIMARY SUPPLEMENT for Phases 1-4. Read the chapter before practicing that topic. It is the best free resource for CP theory that exists in 2026.


3. Introduction to Algorithms (CLRS) — Cormen, Leiserson, Rivest, Stein

What it covers: Everything. Sorting, data structures, graph algorithms, dynamic programming, greedy, NP-completeness, approximation algorithms, number-theoretic algorithms, string matching, computational geometry. The 4th edition (2022) adds a chapter on machine learning and updates pseudocode.

Who it’s for: This is a graduate-level textbook used in Stanford, MIT, CMU algorithms courses. It is written to be rigorous, not accessible. The proofs are correct and complete. The explanations assume comfort with mathematical notation and discrete math.

Community verdict: r/learnprogramming is consistent: “Don’t start here. It’s the bible, but it’ll destroy your motivation in week two if you’re not ready.” r/competitiveprogramming is more nuanced: “Use it as a reference — look up the section on segment trees when you need it, not before.” The 4th edition gets a mixed reception; the 3rd edition is still widely referenced and has free PDFs floating around.

Cost: ~$85-90 for the 4th edition (2022). Earlier editions circulate freely; the core content on algorithms you’ll encounter in CP hasn’t changed. 4th edition adds ML chapter (irrelevant here) and some pseudocode improvements.

Free alternative: CP Handbook covers 80% of what you need for this journey. CLRS is for depth on specific topics when you want rigorous proof, not for primary learning.

Phase alignment: Reference throughout Phases 2-6. Open it when you want to understand why an algorithm works at a proof level, not to learn the algorithm for the first time.

Time to complete (realistic): Do not attempt cover-to-cover. That is a 9-month full-time project in itself. Use it as a reference dictionary.

Verdict: REFERENCE (not primary reading). Buy it if you want the physical copy for reference. Otherwise find a library copy or use the free circulation. Do not start your Phase 0 here.


4. The Algorithm Design Manual — Steven Skiena

What it covers: Algorithm design methodology, data structures, graph algorithms, combinatorial problems, and importantly — “war stories” (real-world cases where algorithm choice mattered). It has a “problem catalog” section that maps problem types to known algorithms.

Who it’s for: Practitioners and people who want to learn how to identify the right algorithm for a problem, not just implement known ones. Skiena’s approach is: here’s a real problem, here’s the wrong approach, here’s why the right approach works.

Community verdict: r/learnprogramming and r/cscareerquestions treat it as the more approachable alternative to CLRS for practical problem-solving. The war stories section is praised. It’s less commonly cited in pure CP communities — more in “software engineer wanting to actually understand algorithms” discussions.

Cost: ~$50-60. 3rd edition (2020) is current.

Free alternative: CP Handbook is better for CP purposes. Skiena fills the gap of problem identification — recognizing that a problem is a graph problem, or a DP problem — which CLRS doesn’t address explicitly.

Phase alignment: Phase 2-3 (M3–M5) as a supplement for problem pattern recognition. Not essential for this journey.

Time to complete (realistic): 300+ pages of dense content. 40-50 hours for a thorough read.

Verdict: SUPPLEMENT (optional). If you find yourself solving problems but not recognizing the type of problem, Skiena’s problem catalog section is the fix. Otherwise defer this to post-journey.


5. Elements of Programming Interviews (EPI) — Aziz, Lee, Prakash

What it covers: Java, C++, and Python editions exist. Problems organized by data structure and algorithm category, with hints and solutions. Covers arrays, strings, linked lists, stacks, queues, BSTs, heaps, searching, sorting, DP, graphs, greedy, recursion.

Who it’s for: Interview preparation, specifically for the style of problems asked in FAANG-level software engineering interviews. Problems are harder than CTCI, more aligned to modern LeetCode Hard territory.

Community verdict: r/cscareerquestions (2024-2026) still mentions it for serious interview prep. Less cited than it was in 2018-2020. NeetCode 150 has largely displaced it as the primary interview prep list. Still considered high quality but the “everyone is doing LeetCode now” shift means EPI is less of a cultural reference.

Cost: ~$35-40. Java, C++, Python editions are separate books. Choose your language.

Free alternative: NeetCode 150 (free) covers comparable problem breadth for LeetCode interview prep.

Phase alignment: Phase 5-6 (M7.5–M9) if targeting FAANG interviews specifically.

Time to complete (realistic): 500+ problems with explanations. Not a cover-to-cover read — problem-set style.

Verdict: SUPPLEMENT for Phase 5-6, interview track only. If your primary goal is Hard LeetCode + Codeforces, NeetCode 150 is sufficient and free. Use EPI if you’re explicitly targeting FAANG and want deep interview problem exposure.


6. Cracking the Coding Interview (CTCI) — Gayle Laakmann McDowell

What it covers: Behavioral interview prep, problem-solving approaches, 189 programming problems with solutions. Problem coverage is lighter difficulty than current LeetCode standards.

Who it’s for: Originally the standard for software engineering interviews (2012-2020). Still referenced but now considered the entry point rather than the complete guide.

Community verdict: r/leetcode (July 2026 post, 67 upvotes) still references it for behavioral prep and pattern introduction. The consistent 2024-2026 sentiment: “Good for understanding the interview format and soft skills, but the problems are too easy compared to what companies actually ask now.” It has not been updated recently. Most communities now say: if you’ve done NeetCode 150, you don’t need CTCI for technical prep. The behavioral and non-technical sections are still useful.

Cost: ~$25-30. 6th edition is still current (hasn’t been updated to reflect modern LeetCode difficulty standards).

Free alternative: NeetCode for technical problems. The behavioral content isn’t really replaceable with a free equivalent — but this isn’t a blocker for this 9-month journey which focuses on DSA fundamentals.

Phase alignment: Not relevant to this journey’s technical track. Reference if you’re actively interviewing (Phase 6).

Verdict: SKIP for this journey’s primary track. If you’re doing LeetCode and Codeforces, you will surpass CTCI’s technical difficulty by Month 3. The behavioral content is valuable but not DSA. Use it in the final month if you’re simultaneously job hunting.


7. CP-Algorithms.com

What it covers: Per-topic reference for competitive programming: number theory, algebra, combinatorics, data structures (segment trees, Fenwick trees, sparse tables), graph algorithms (flows, matchings, all standard paths), string algorithms (KMP, Aho-Corasick, suffix automaton), geometry, miscellaneous. Maintained as a translated and expanded version of e-maxx (Russian CP reference).

Who it’s for: Anyone who needs the authoritative explanation for a specific CP algorithm. It’s not structured as a curriculum — it’s structured as a reference. When you need to implement KMP string matching and understand the failure function, this is where you go.

Community verdict: Codeforces community (2024-2026) treats this as essential infrastructure. cp-algorithms.com is to competitive programming what MDN is to web development.” High trust, high accuracy, actively maintained. Last significant update tracked by community: ongoing through 2025-2026. URL: cp-algorithms.com

Cost: Free.

Phase alignment: Phases 2-6 as a reference. Whenever you encounter an algorithm, check this site first for the clean explanation.

Verdict: PRIMARY REFERENCE for Phases 2-6. Not a book to read sequentially — a reference to consult topic by topic. Bookmark it on Day 1.


8. USACO Guide

What it covers: Bronze → Silver → Gold → Platinum structured curriculum aligned to the USA Computing Olympiad. Each section covers specific topics with explanations, problems, and editorial links. Topics are organized by competitive programming relevance, not academic convention.

Who it’s for: Anyone who wants a structured CP curriculum with clear progression. The Bronze → Silver → Gold → Platinum ladder provides the progression structure that LeetCode alone lacks.

Community verdict: r/competitiveprogramming (2024-2026) consistently recommends it as a structured starting point over free-form LeetCode grinding. Community-maintained, active updates. The problem recommendations at each level are well-calibrated. Used by university CP teams (Princeton, MIT, etc.) as a reference. URL: usaco.guide

Cost: Free.

Phase alignment: Phases 1-5 (M1.5–M7.5). Bronze in Phases 1-2, Silver in Phases 2-4, Gold in Phases 3-5.

Time to complete (realistic): Bronze: 1-1.5 months. Silver: 2-3 months. Gold: 3-4 months. This is not a sprint.

Verdict: PRIMARY CURRICULUM for Phases 2-4 on the CP track. The structured progression it provides is the most important gap that LeetCode grinding doesn’t fill.


Summary Table

Book

Phase

Cost

Verdict

Grokking Algorithms

0

~$30

PRIMARY Phase 0 (beginners)

CP Handbook (Laaksonen)

1-4

Free

PRIMARY SUPPLEMENT Phases 1-4

CLRS

Reference

~$85

REFERENCE only

Skiena ADM

2-3

~$55

SUPPLEMENT (problem recognition)

EPI

5-6

~$38

SUPPLEMENT (FAANG track)

CTCI

6

~$28

SKIP (superseded by NeetCode)

CP-Algorithms.com

2-6

Free

PRIMARY REFERENCE per-topic

USACO Guide

1-5

Free

PRIMARY CURRICULUM CP track


Navigation: ← Resources README | → Courses | ↑ Top