Best algorithms book I ever read
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.
Students and professionals alike will find The Algorithm Design Manual useful. In addition to the standard problem sets, I’ve also found the accompanying interview questions to be very interesting.
The only programming book that tops this is The Pragmatic Programmer by Andy Hunt and Dave Thomas.
What are some of the best Data Structures/Algorithms books you’ve found?
Related posts:
- How not to pass the SCJP exam
- Lessons learned from the SCWCD
- Microformats: Add hCard to your blogroll in 2 minutes flat
About Eric Wendelin
Eric writes high-performance web applications with a variety of platforms like Grails, HBase, Node.js and LIFT. He also maintains some interesting Javascript applications like mapping customer downloads, installations and registrations in real-time with Google Maps and a tool that helps debug Javascript in all web browsers (stacktracejs.org).
He often speaks at user groups about Javascript, Hadoop, and other miscellany.
He actively develops and maintains several OSS projects like (CSS Lint) a couple Gradle plugins, Javascript tools on GitHub, and a blog with 1500+ subscribers (eriwen.com).
Eric lives in Westminster, CO, with his wife, Erika and two insane mutts. He tends to interact with other community members via Twitter (@eriwen)
More About Eric »Why Attend the NFJS Tour?
- » Cutting-Edge Technologies
- » Agile Practices
- » Peer Exchange
Current Topics:
- Languages on the JVM: Scala, Groovy, Clojure
- Enterprise Java
- Core Java, Java 7
- Agility
- Testing: Geb, Spock, Easyb
- REST
- NoSQL: MongoDB, Cassandra
- Hadoop
- Spring 3
- Automation Tools: Git, Hudson, Sonar
- HTML5, Ajax, jQuery, Usability
- Mobile Applications - iPhone and Android
- More...
NFJS, the Magazine
May Issue Now AvailableClient-Side MVC with Spine.js, Part 1
by Craig WallsOn Prototypal Inheritance, Part 2
by Raju GandhiMaking use of Scala Lazy Collections
by Venkat SubramaniamIntegration Testing Web Applications Using Gradle
by Kenneth Kousen


