I really should not be mentioning the name of the book, but the first time I read it (during my under-grad days) I almost concluded that data structure was a bad course to pick.

Which brings me to the question I am asking here. What makes a programming or data structure or algorithm book tick?

Clearly, lucid explanation is one. But I also realize that organization of the material is very important and so is diagrams. What else? Some pointers would obviously help when I hang out in my neighborhood computer book shop the next time.

closed as primarily opinion-based by durron597, enderland, user40980, amon, Ixrec Aug 16 '15 at 13:40

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise. If this question can be reworded to fit the rules in the help center, please edit the question.

  • 5
    Read reviews on stackoverflow for the books you need. Here's one such example: stackoverflow.com/questions/366317/… – Naweed Chougle Jan 4 '11 at 14:45
  • @Jon That perhaps works for popular titles, but for something fresh, not discussed much but yet deserving? Nope. – Fanatic23 Jan 4 '11 at 14:50
  • @Fanatic - agreed, but that just means someone has to be the first to read the book and form an opinion of it. – Steve314 Jan 4 '11 at 16:39
  • @Steve - not necessarily. Yet another test I do is to read a small section discussing already known data structure and see how that goes. Buying a whole book only after reading it through is a tough call. – Fanatic23 Jan 4 '11 at 16:48
  • @Fanatic23 - but any description is easy to understand when you already understand what it describes anyway. If you can't read it, that's a really bad sign, but even if it seems readable, it doesn't necessarily mean you'll understand sections about topics that are new to you. – Steve314 Jan 4 '11 at 17:04

What makes a programming or data structure or algorithm book tick?

It depends on what amount of detail you like. Browse through the book, look if the book covers the topics you are looking for and those topics which were not covered nicely in the books you have used or browsed before. Peer reviews may have some useful information.

Some pointers would obviously help when I hang out in my neighborhood computer book shop the next time.

Before that goto amazon.com and books.google.com search for books on data structure and algorithms and have a read on peer reviews and comments. You can even browse through table of contents, sample pages, etc. That should give you a pretty good idea for you.

  • +1 Must admit a lot of it depends on the detailing. – Fanatic23 Jan 4 '11 at 16:43

Depends upon what the purpose of the book is:

Education - I tend to look for books that are well written and contain clear explanations of the material that is being presented. While you might not be able to understand advanced topics towards the back of the book when you first pick it up, you should be able to read able something towards the front of the book and see what the author is driving at. Since the book is also for educational purposes I also look for a well organized structure that has a gradual progression from the introductory topics to the advanced ones as opposed to just jumping around. Since textbooks tend to be expensive, I also tend to look at what the long term reference value of the book is as well well organized indices are a bonus. So far, one of the best textbooks I've seen in this regards has been Introduction to Algorithms.

Reference - When it comes to reference books I look primarily at the organization of the book, how well written the topics are, and the long time durability of the book. Sometimes you just need a quick reference that you can keep on your desk (e.g. Algorithms in a Nutshell) but there are other times where you are working with an advanced topic and need a full reference that you can pick up and bring yourself back up to date on a topic as well (e.g. Data Compression: The Complete Reference). Unfortunately, when it comes to reference books, it is difficult to say which ones are good or bad without actually picking them up and flipping through them. In some cases, subtle things like not being able to lay the book down flat on my desk has been a bit of an issue for me.

  • +1 for everything, but I want to second your last point about laying a book down flat. So many reference books just can't easily be referenced if you can't leave it open on your desk. – Steven Evers Jan 4 '11 at 14:56

The big question I'd have is what are you trying to get out of the book. For example, something like "Head First: Design Patterns" may work if you want various perspectives on a few design patterns. This is kind of a quick reference under general areas which is different than a comprehensive like "Introduction to Algorithms" which could be considered to be more of a general textbook covering various algorithmic ideas. "Concrete Mathematics" is another idea if you want something that is a bit more Math-heavy. Last but not least, there are books like "Refactoring" that can also be a handy reference as well as having a bit of a story in some of the book. That isn't even a handful of books that come from different areas but attempt to cover what you want in a book that is kind of hard to cover all of programming, data structures and algorithms.

Not the answer you're looking for? Browse other questions tagged or ask your own question.