Author: Adam Barr
Publisher: Addison Wesley, 2004
Aimed at: Experienced programmers
Pros: Could be seen as fun
Cons: There are too many bugs in the world to want to add to them on purpose.
Reviewed by: Harry Fairhead
This is a book that contains bugs in programs and your challenge is to find them. What can I say?
The world is full of enough bugs without needing tame caged examples for us to experiment on! Much of the early part of the book is fun to read and full of what should be obvious stuff to any practicing serious programmer – give variables sensible names, make sure functions do what they claim and don't have side effects, watch out for variable that have a restricted range. If some of this isn't familiar to you then it should be and you probably need to read this book. Even if it is familiar there is a warm glow to be gained from reading it again and shaking your head knowingly.
The latter part of the book is more radical. It consists of example programs in C, Java, Python, Perl, and 86x assembly language complete with bugs. Your task, should you choose to accept it, is to find the bugs. How useful this is depends on your approach to the whole programming problem. It's almost a matter of psychology. What is clear is that this book is too short and ephemeral to actually be successful in training you to be better at debugging. The best it can do is to sensitise you the nature of the problem and the sorts of approaches – logic, logic and more logic – that tend to be successful. In truth a good bug finder is either born or serves a much longer apprenticeship at the hands of a master than this book can offer. A good fun read that might reveal the truth to those ready to receive.