DSA Notes
Honest reviews and reading order for the best DSA books: CLRS, The Algorithm Design Manual, Competitive Programming handbook, and Cracking the Coding Interview.
Why Books Still Matter
In the age of YouTube and LeetCode, you might wonder why bother with books. Here is why: books provide depth that videos cannot. A 10-minute video on dynamic programming gives you a recipe; a book chapter gives you understanding of WHY the recipe works, when it fails, and how to derive new solutions. Videos teach you to solve specific problems; books teach you to think.
That said, not all DSA books are equal. Some are encyclopedic references, others are practical guides. Here are the ones worth your time, with honest assessments.
2. The Algorithm Design Manual (Skiena)
Authors: Steven S. Skiena Pages: ~750 | Level: Intermediate
What It Is
A practical guide to algorithm design written by a professor who values real-world application. Split into two parts: Part 1 teaches design techniques; Part 2 is a catalog of algorithmic problems (a "hitchhiker's guide" to algorithms).
Honest Review
This is my top recommendation for most learners. Skiena writes like a human — with war stories, practical advice, and humor. Part 1 teaches you how to THINK about designing algorithms (not just memorizing them). Part 2 is a goldmine: for any problem type, it tells you the best known algorithm, implementation pitfalls, and when to use it.
Strengths
- "War stories" from real-world consulting make algorithms tangible
- Teaches algorithm design thinking, not just individual algorithms
- The problem catalog in Part 2 is uniquely practical
- More accessible writing than CLRS
- Includes practical implementation advice (not just theory)
Weaknesses
- Less rigorous than CLRS (fewer formal proofs)
- Some sections feel rushed compared to CLRS's thoroughness
- Code examples are in C (somewhat dated)
- Not as comprehensive as CLRS on advanced topics
Best For
Working programmers who want to get better at algorithm design, self-learners who find CLRS too academic, and anyone who wants practical problem-solving skills.
How to Read It
Read Part 1 sequentially — each chapter builds on the previous. Use Part 2 as a reference when you encounter a new problem type. The "war stories" are not skippable — they contain the most important lessons.
3. Competitive Programming (CP Handbook)
Authors: Steven Halim & Felix Halim (CP3/CP4) or Antti Laaksonen (CSES Handbook) Pages: ~350-450 | Level: Intermediate to Advanced
What It Is
Focused specifically on competitive programming. Covers algorithms and data structures with emphasis on contest-applicable implementations. Two popular options:
- CP4 by Halim: Comprehensive, structured by UVa Online Judge problems
- CSES Handbook by Laaksonen: Free PDF, concise, covers standard CP techniques
Honest Review
If your goal is competitive programming, these books are essential. They cover topics rarely found in standard textbooks: segment trees, lazy propagation, suffix arrays, flow networks with practical implementations. The Halim book is particularly good because it maps every technique to specific practice problems on UVa Online Judge.
Strengths
- Contest-oriented: only topics that appear in competitions
- Practical implementations (not pseudocode — real working code)
- Maps techniques to practice problems
- Covers advanced topics (segment trees, flow) that CLRS makes seem impossible to implement
- The CSES handbook is free and concise
Weaknesses
- Not suitable for beginners (assumes you know basic CS)
- Limited explanation of WHY algorithms work (focused on HOW to implement)
- UVa Judge references are somewhat dated (Codeforces problems might be more current)
- Jumps to advanced topics quickly
Best For
Anyone serious about competitive programming. Students preparing for ICPC. Those who already know basic algorithms and want to level up to advanced techniques.
How to Read It
Work through it with a judge open. For every technique introduced, solve 3-5 associated problems before moving on. The book is useless without active practice alongside it.
4. Cracking the Coding Interview (CTCI)
Authors: Gayle Laakmann McDowell Pages: ~700 | Level: Beginner to Intermediate
What It Is
The original coding interview preparation book. Contains 189 programming questions with detailed solutions, plus chapters on the interview process, resume tips, behavioral questions, and offer negotiation.
Honest Review
CTCI is the most practical interview-focused book. It does not teach algorithms from first principles — it assumes you know the basics and focuses on applying them to interview problems. The solutions are well-explained with multiple approaches (brute force → optimized). The non-technical chapters about the interview process are genuinely valuable and rarely found elsewhere.
Strengths
- Interview-focused: teaches what actually gets asked
- Solutions show thought process (how to arrive at the answer, not just the answer)
- Covers the meta-game: how interviews work, what interviewers look for
- Problems organized by topic with progressive difficulty
- Behavioral question guidance (unique among DSA books)
Weaknesses
- Not a learning resource for algorithms (need prerequisite knowledge)
- Solutions are in Java (might not match your preferred language)
- Some solutions are not the most optimal (community has found better approaches)
- Does not cover recent trends (system design is thin, no ML interview content)
- Problems are easier than what top companies now ask (problem difficulty has inflated)
Best For
Anyone within 3 months of interviewing. Career switchers who need to understand the interview process. Beginners who want a structured introduction to interview-style problems.
How to Read It
Read the "Before the Interview" chapters first. Then work through problems by topic. Attempt each problem for 20-30 minutes before reading the solution. Do NOT just read solutions passively — that gives a false sense of understanding.
Recommended Reading Order
For University Students (Academic Path):
- Start with: The Algorithm Design Manual (Skiena) — learn to think
- Reference: CLRS for depth on specific topics your course covers
- If doing contests: CP Handbook alongside coursework
- Before internship interviews: CTCI for interview-specific prep
For Self-Learners (Interview Path):
- Foundation: CTCI first — understand what you are preparing FOR
- Depth: Algorithm Design Manual for the thinking skills
- Practice: LeetCode/NeetCode 150 (not a book, but essential)
- Reference: CLRS for topics you struggle with conceptually
For Competitive Programmers:
- Basics: Algorithm Design Manual or equivalent online course
- CP-specific: CP4 (Halim) or CSES Handbook
- Practice: Codeforces problems alongside the book
- Advanced: CLRS chapters on advanced topics (flow, linear programming)
Honorable Mentions
Algorithms (Sedgewick & Wayne): Beautiful visualizations, Java-based. Good alternative to CLRS if you prefer Java and visual explanations.
Grokking Algorithms (Bhargava): Highly illustrated, beginner-friendly. Perfect for visual learners who are completely new to algorithms. Too basic for anyone with CS background.
Elements of Programming Interviews (EPI): 300 problems in Java/C++/Python. Harder than CTCI on average. Good for senior engineers or those targeting Google/Meta specifically.
Algorithm Design (Kleinberg & Tardos): Excellent theoretical book with emphasis on design paradigms (greedy, DP, network flow). More accessible than CLRS but more rigorous than Skiena. Good for graduate courses.
The Truth About Books vs Practice
Here is what nobody tells you: reading books without solving problems is useless. A book gives you the vocabulary and mental models. Practice gives you fluency. The ideal ratio is 30% reading, 70% problem-solving. Read a chapter on dynamic programming, then solve 20 DP problems. Read about graph algorithms, then implement BFS/DFS/Dijkstra from scratch 3 times until you can do it without looking.
Books are maps. Practice is the journey. You need both.
Exam Focus
Revise definitions, diagrams, examples, and short-answer points for Recommended Books for DSA.
Interview Use
Prepare one clear explanation, one practical example, and one common mistake for this Data Structures & Algorithms topic.
Search Terms
data-structures-algorithms, data structures & algorithms, data, structures, algorithms, resources, recommended, books
Related Data Structures & Algorithms Topics