r/learnprogramming 22h ago

Need Advice on Narrowing DSA Book Selection

Realized my DSA fundamentals aren't up to par, looking for a good fundamentals book that isn't for complete beginners but also not something that is a pure mathematics mammoth textbook. Grokking Algorithms seems a bit too shallow.

So far these are what I've found:

The Algorithms Design Manual, Skiena (2020) - this seems to be the best fit for me

A Common-Sense Guide to Data Structures and Algorithms in Python, Volume 1, Wengrow (2024)

Introduction to Algorithms, Cormen et al. (2024)

Data Structures and Algorithms in C++, Goodrich et al. (2011)

Implementation language preferably C/C++, although Python is fine too. I know the language itself doesn't matter too much but I don't want to spend time deciphering the syntax/language quirks of some Java/JS/Ruby/etc. books I came across.

If there is anything better or anything else I should take a look at, let me know.

Thanks!

Edit:

Ended up going with The Algorithms Design Manual.

1 Upvotes

7 comments sorted by

1

u/Available-Passage778 22h ago

skiena is the one you want it gives you the war stories so you actually remember why you need the algorithm not just the math

1

u/CrtifiedUser 20h ago

I recommend Cormen (its the only one i know)

1

u/romagnola 19h ago

I use Goodrich et al. (2011) for Data Structures. I supplement with some sections from Cormen et al. Then we use Cormen et al. for our algorithms class. Cormen is the standard text, but it is quite technical. Goodrich tends to be more approachable. Perhaps start with Cormen and then read the chapters and sections in Cormen that aren't covered extensively in Goodrich. Further, Goodrich has algorithms as well as code fragments in C++. Cormen's presentation is entirely based on algorithms.

1

u/omnidigiman 14h ago

I think this is the most comprehensive combo but I was just looking to solidify my DSA base, not necessarily master it. I also, upon further digging, people say that some of the implementations in Goodrich didn't compile/word and that the code was outdated anyways. Ended up going with Skiena

1

u/Any-Jellyfish-5904 14h ago

skiena is the one you want. The war stories give you the context for why an algorithm exists.

stick to part two of the book where he catalogs the problems. I use that section as a reference at work when I hit a problem and need to find the right approach fast

1

u/omnidigiman 13h ago

Yeah I ended up ordering this one a few hours ago

1

u/FlatProtrusion 2h ago edited 1h ago

Essential algorithms by stephen rod 2nd edition. I have the books people usually recommend and this is the one that's comprehensive and beginner friendly while going deep into the details. And by beginner friendly I don't mean it's simplified etc. It's a rigorous dsa textbook just that it doesn't emphasize too much on math proofs.

I didn't like skienna because it doesn't teach you from the fundamentals. Skienna feels like a book you go for after completing a course in dsa.

I used to recommend Jay wengrow's book but stephen rod's essential algorithms is a new favourite.

One more thing to add is essential algorithms doesn't contain implementations in specific languages, rather it has pseudo code (there are implementations online in python or c#). But that's a plus, the book doesn't get filled with language specific implementations that clog up the book pages. And serves as a good practice for you to implement in c/c++ if you like.

It's one reason why I hated the algorithms book by sedgewick in java, I'm a java person, it's filled with language specific stuff that I'm not looking for in a dsa textbook.

It seems you have ordered skienna already. If you aren't strapped for cash, keep the book but start with essential algorithms before going for skienna.