Author: Kevlin Henney
Publisher: O'Reilly, 2010
Aimed at: Practising programmers
Pros: All the advantages of a paper book plus good indexing
Cons: Same information and more can be found online
Reviewed by: Alex Armstrong
The latest in the 97 Things series presents a well-chosen collection of short essays in a highly accessible way. There is plenty to interest every programmer here.
I approached this book with a prejudice - I've previously not been convinced by the concept summed up elsewhere on iProgrammer as a boolog - that is making a book by amassing material that is freely accessible on the Internet. However, this book succeeds by all the criteria that make us all cling to printed materials even though electronic documents have a lot of advantages. It's portable - with 230 pages this is a slim volume so it is easy to slip into your carry pack and contains short items that can easily be read between stops on the metro. It's sharable - many of the essays are fun to read to the point where I want to pass them on to colleagues and it's got a shelf life - some contributions are for the novice programmer but many are at an advanced level and of these some make you think "I must come back to that when needed".
As part of a series this book has a formula to follow. The general rule is for two pages per entry with lots of white space making most contribution between 500 and 700 words. However the format isn't slavishly followed enabling longer contributions to be accommodated. Every contribution has the author's photo included to the right of its title - all but one that is and the cartoon face of the exception stands out on the cover as well as in the Contributors biographies listed at the end.
Searchability is often cited as the advantage electronic documents have over printed ones but this book takes pains to make its content findable. While the contributors list is arranged alphabetically on first name the index has a complete list (under biographies) arranged by surname. The essays are also arranged alphabetically by title, but to make it possible to locate the advice you might want there is also a Contributions by Category list in which an essay can be included multiple times if it touches on more than one topic. There are nineteen categories from Bugs and Fixes; Build and Deployment; through Professionalism, Mindset and Attitude; Programming Languages and Paradigms; to Simplicity; Teamwork and Collaboration; Test, Testing and Testers; Tools, Automation, and Development Environments; Users and Customers. The index is also useful for locating specific topics.
So far in my reading the essays have all repaid the effort but I'm not going to fall into the trap of choosing the gems as it all depends on the reader. If you are a book-loving programmer buy the book; otherwise visit its website.