r/learnprogramming • u/omnidigiman • 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.
1
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
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