Back to the bookshelf

Typographic jacket · original cover not fetched

FROM THE SHARED SHELF · 2006–2026 SAMPLE

The Algorithm Design Manual

Steven S. Skiena

19 readers recommend it across 13 discussions

Topics are model-inferred labels.

Keep it on your reading list

THE WORD OF MOUTH

What made it worth passing on?

Original Hacker News comments, in the readers’ own words.

mindcrime
Maybe Clever Algorithms: Nature-Inspired Programming Recipes[1]. These techniques might not be useful to everybody, all the time, but they can be very handy in places. Edit: A couple of other suggestions. Managing Gigabytes: Compressing and Indexing Documents and Images[2] Mining of Massive Datasets[3] Algorithm Design Manual[4] Network Algorithmics[5] Neural Network Design[6] I think all of these fall into the category of "Won't be applicable to everyone, but can be good for those who need this kind of stuff." [1]: https://github.com/clever-algorithms/CleverAlgorithms [2]: https://people.eng.unimelb.edu.au/ammoffat/mg/ [3]: http://www.mmds.org/ [4]: https://www.amazon.com/Algorithm-Design-Manual-Steven-Skiena... (https://www.amazon.com/Algorithm-Design-Manual-Steven-Skiena/dp/1849967202) [5]: https://www.amazon.com/Network-Algorithmics-Interdisciplinar... (https://www.amazon.com/Network-Algorithmics-Interdisciplinary-Designing-Networking/dp/0120884771) [6]: https://hagan.okstate.edu/NNDesign.pdf
dhanna
Yes there’s lots of algorithm books! Too many to learn them all. I had an anxiety attack and bought most of the introductory algo books mentioned in CLRS chapter 1. I liked ALGS4 by Sedgewick as my introduction to Algorithms. I still refer to the Coursera course. I actually started with CLRS and doubled back to ALGS4. I wish I did it in reverse order but it was still useful reading CLRS and refreshing my math skills. I would say grab a few and see which ones you like. CLRS, ALGS4, Algorithm Design Manual, and Algorithm Design by Kleinberg and Tardos are a good start. You can look in the bibliography of each books for more suggestions from the experts themselves.

Also recommended in this reply

ioli
The Algorithm Design Manual by Steven Skiena Amazing book. Very readable. I highly recommend it. The book has a section call "War story" at the end of each chapter in which Skiena shares his real life experience of when the contents from that particular chapter came in handy for him. Go through it. You won't regret https://www.amazon.com/Algorithm-Design-Manual-Steven-Skiena... (https://www.amazon.com/Algorithm-Design-Manual-Steven-Skiena/dp/1849967202)
guiraldelli
I don't think there is a definitive answer for your question because computer science is a relative new area of knowledge and “fundamental books” are still being published. If I had to say one text that is the fundamental one, I would go with a paper: “On Computable Numbers, with an Application to the Entscheidungsproblem” [1], by Alan Turing. --- But if you just started your course in Computer Science, then I will give you some “bookshelf advice" based on my experience. I had the pleasure to study all the books I am going to recommend you, and most of them I was able to read cover-to-cover during the university years. And they are also in my bookshelf for reference. The book order does not represent rank of importance. * “Introduction to the Theory of Computation”, by Michael Sipser. * I also recommend the “Elements of the Theory of Computation”, by Christos Papadimitriou. * Another good complement is “Introduction to Automata Theory, Languages and Computation”, by Hopcroft and Ullman. (Thanks, @reacweb, for the reminder.) * “Graph Theory”, by Reinhard Diestel.…
probably_wrong
I'm going to disagree slightly with your choice (which was also my choice at first). While A.D.M. has all the topics you would be interested in, I think the book assumes that you have already groked the fundamentals behind, say, why a linked list is different from an array. For an absolute beginner, I would suggest the type of book that forces you to go through every step of deleting an item from a list, which is something Skiena's book (luckily) doesn't do. The book is great for learning new ways to think about problems, but IMHO a beginner should learn the basic ways first. "Introduction to Algorithms" by CLRS seems to be the default choice, and it seems to me to be a step in the right direction (based on the TOC). I would also like to second your point that CS is more than algorithms and data structures. I feel Dijkstra would not approve of thinking about CS as "that thing you do after learning a programming language".

Also recommended in this reply

andyljones
Skiena's Algorithm Design Manual: https://www.amazon.com/Algorithm-Design-Manual-Steven-Skiena... (https://www.amazon.com/Algorithm-Design-Manual-Steven-Skiena/dp/1849967202) Far more readable than the usual text (Cormen), the first half is a guide on how to select and design algorithms for the problems you encounter, and the second half is a whistle-stop tour of hundreds of well-known algorithms. The tour helped me a lot with X->Y esque issues where I was building bad solutions because I didn't know anything better could exist. Incidentally, there's a lot more to CS theory than algorithms and data structures, but if you're asking on HN for a generic CS theory book, I reckon it's most likely an algorithms and data structures book that you're after.
m0nastic
So far, Dark Market is a little too "Dateline expose" for my taste, but I'm only about a third of the way in (maybe it gets better). I actually picked up Skiena purely from your recommendation of it on here. I wanted to go back to algo fundamentals, and I was irrationally opposed to buying CLRS for the second time (having bought and then sold it back in college), so I figured I'd give it a try. I like the presentation of material a lot better, but I've just been a lazy git about plowing through it.

Also recommended in this reply

jing
Here's a few I've really liked that have a broader subject matter than only what you asked for. I figure that if you like to read you'd like these books. --- NON-FICTION --- Darkness Visible A Mathemematician's Apology Omnivore's Dilemma Fermat's Enigma The Code Book Born to Run Judgement of Paris Siddhartha Killing Pablo The Victorian Internet Lone Survivor I Hope They Serve Beer in Hell Surely You're Joking Mr. Feynman Papillon Into Thin Air Born on a Blue Day Touching the Void Got Fight The Conquest of Happiness --- FICTION --- Switch Bitch Lost Horizon The Cuckoo's Egg The Simlarillion The Time Traveler's Wife The Alchemist The Count of Monte Cristo A Canticle for Leibowitz Neverwhere My Uncle Oswald Stories of Your Life and Others Invisible Cities Life of Pi Atlas Shrugged --- WALL STREET / FINANCE --- When Genius Failed Liar's Poker Buffett (Lowenstein) Bull! Black-Scholes and Beyond (textbook) Fixed Income Securities (textbook) The Road to Serfdom The Smartest Guys in the Room Fortune's Formula The Fourth Turning Inside the House of Money --- ENTREPRENEURSHIP / COMPUTERS (non-textbook) --- Masters of Doom It's Not About the Bike Dot. Bomb Founders at Work The PayPal Wars…

Also recommended in this reply

ambition
It depends on what you want to get out of them. If all you do is build a library, you'll never get anything out of it, since you actually need to study the books for that. :P If you want a reference, then by all means take aston and Hexayurt's excellent suggestions. Especially CLRS. If you don't know much about algorithms right now, then you'll find Cormen et al. very challenging to start with. If you're like me, you want to be able to use algorithms as a tool to solve real problems. To practice that, I have a few suggestions, if I may be so bold. Pick up a copy of the Algorithm Design Manual and Programming Challenges, by Steven Skiena. Programming Challenges will introduce you to the ACM-ICPC repository of programming problems, which is a great low-pressure area to build some top-notch skill in algorithms. You'll want to get into TopCoder as well. For a slightly different taste, pick up Artificial Intelligence: A Modern Approach, by Stuart Russell and Peter Norvig, also known as AIMA or the Green Book. Its discussion of search algorithms is unrivaled. Good luck!