If you are reading this book and expect to understand the second day after how opensource works, you are plain wrong. You should actually stop reading.
But what this book does, it does with style.
It presents you how opensource projects manage to create the best of the breed software, how you can track changes in those projects and understand why some software got the way it is, how can you alter it to fit your needs. It actually gives you valuable insight upon code analysis, and how to get a grip when you have a real big code in front of you and don't know even where to start.
If you will understand that this books explain you a process of creating software (which in no case happends over night) you will love this book... otherwise this will be just another technical book, explaining sometimes apparent obvious stuff.
Because this book has great insights from the years of experience of the author, I can not give it less then 5 stars and suggest it as a required reading for anyone who considers entering the opensource developer's world.
Programmers need to be able to look at code and analyze what it does in order to change it or fix it. The concept behind this book is to use many of the open source code samples to discuss how to read code and how to spot potential trouble areas in code. Unfortunately the book doesn’t stay focused on this single goal and that detracts from its overall value. The book spends too much time explaining the basics of programming instead of concentrating on reading code. It also bounces around from one language to another, from C to C++ to Perl to Java, which is very confusing. For example, if you are a Java programmer do you really care how the C compiler optimizes strcmp calls? And what does that have to do with reading code? Some of the advice is fairly basic such as try to realign indentations properly and replace complex code structures with simple placeholders when doing analysis. Although there are parts of the book that are excellent, too many of these good parts are wrapped under what should be basic concepts to anyone reading code. How can you debug a Java program, for example, if you are unfamiliar with abstract classes, libraries, or polymorphism? Do you really need a book on code reading to explain basic object oriented programming? Overall, the book seems very unfocused and I really can’t recommend it.