Grokking Algorithms — Aditya Bhargava. The friendliest possible print introduction — hand-drawn illustrations, no heavy math. Basically this guide's spirit, in book form.
A Common-Sense Guide to Data Structures and Algorithms — Jay Wengrow. Plain-English explanations with a strong focus on why Big-O matters in real code.
Cracking the Coding Interview — Gayle Laakmann McDowell. The standard reference once you're comfortable with the basics and want interview-style practice problems.
Introduction to Algorithms (CLRS) — Cormen, Leiserson, Rivest, Stein. The rigorous, formal textbook (a.k.a. "the DSA bible") — dense, but the definitive reference once you want proofs and deep detail.
The Algorithm Design Manual — Steven Skiena. Great for connecting algorithms to real engineering problems, with a "war stories" section of applied case studies.
Algorithms, 4th Edition — Robert Sedgewick & Kevin Wayne. Clean Java-based explanations; pairs well with the free Princeton course below.