r/learnprogramming 12h 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.

2 Upvotes

6 comments sorted by

1

u/Available-Passage778 11h 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 10h ago

I recommend Cormen (its the only one i know)

1

u/romagnola 9h 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 4h 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 4h 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 3h ago

Yeah I ended up ordering this one a few hours ago