I took a fair amount of time looking at data structures and algorithms while I was studying for my interviews with Google, and based on informed suggestions from Steve Yegge’s infamous post, I decided to buy The Algorithm Design Manual by Steven S. Skiena.
If you don’t care to read my ramblings about this book, here’s a summary: Buy this book if you do ANY serious programming.
What makes The Algorithm Design Manual
2 main reasons I make this blatantly positive assessment:
- The first several chapters are dedicated to the basics of data structures and common problems involving algorithms. This is obviously not a unique feature, but what is unique are the “war stories” from actual field work. The stories include discussion about the failure cases and how Skiena went about solving problems he encountered. This alone is enough to make this book worthwhile.
- Chapters 11-18 are a giant catalogue of algorithmic problems. Again, not a unique trait. However, not only does Skiena describe the basic approaches to solving each type of problem, he includes links to different implementations of in-the-field optimized solutions. He also brings up questions you should ask yourself when choosing an implementation.
The only caveat here is that most of the examples are written in C, which can be troublesome if you don’t know or have forgotten about pointers.
You should buy this book if…
You have at least 1 year of computer science training under your belt. If you are just writing one website in PHP for your cousin’s lemonade stand; then I don’t know why have you read this far. In that case you won’t be interested in this book.
Read more: Eric Wendelin's Blog