No-brainer for Raspberry Pi owners...
If you are considering buying this book then you probably have a general interest in learning about the Raspberry Pi ("RPi" for short) and/or you have a specific objective in mind and looking to use the RPi to achieve it. Don't worry, this book has you covered both ways, more than adequately. It nicely complements the hacker spirit that the Raspberry Pi project is aiming for.
First some facts and a few small niggles but keep these in perspective, it's a large book and these are minor in comparison to the majority of the content...
Old school hacking was first about getting the machine and plain software to do your bidding. It was also about getting the machine connected to other devices and home-brew circuits. Finally, for the hard core, it was about mastering subsystems and low level hardware, what they called "scraping the metal". It's not entirely possible to this last type of hacking on the Raspberry Pi due to the need to protect intellectual copyright, though to be fair the RPi Foundation and Broadcom continue to make progress in this direction.
So it is no surprise that this book sticks to the first two types of old-school hacking and often employs high level libraries to do it's bidding where low level access is needed. This is fair enough but note that there are lower level API's to be explored once you become proficient in what the book has to offer. As the book itself states, consider the content as a "starting point". It makes a fine launchpad no matter which directions your technical interests are heading.
The format of the material is generally code-followed-by-explanation. Personally I like to see new/important concepts introduced before the code so that the code makes a bit more sense on first reading. Your preference may differ so this is not a big deal. However, to Python beginners, I would recommend manually entering the smaller programs rather than simply opening up a ready-made file. Typing means you are *doing* something and this speeds up your learning.
The choice of Python3 over Python2 might be contentious for some. I'm ok with it and if you are a beginner then you may as well learn the latest version. If you have a strong preference for Python2 then I don't think it would take much effort to back-port the code.
The book makes no mention of opto-isolators/couplers which is a common way to provide circuit protection. Possibly a small oversight and doesn't impact any/most the circuits used in the book. In fact I'm pretty sure the relay module on page 320 uses them anyway (probably the two small 4-pin packages on the right-hand side)
An oscilloscope is an essential tool for serious hardware hackers and while the book makes use of "scope traces" (page 327) it doesn't actually explain where they come from. This is a little surprising since chapter seven deals with reading and dynamically plotting ADC data so it's already more than halfway towards creating a hobbyist level oscilloscope. It would be good to see this as a project in a future revision.
The camera add-on is potentially one of the most interesting things to people like me who are into computer vision and computational photography so I would have liked to have seen OpenCV/SimpleCV examples. Ultimately the author will have had to draw a line somewhere but this would have complimented the chapter on robotics.
Putting the above into perspective...
This is a large well written book that works thoroughly through every example and adds tips and advice that you would struggle to compile from other sources. The breadth and depth of topics covered is amazing even for a book that runs to nearly 400 pages. Cookbooks don't usually attempt to cater for the absolute novice but this one does and is therefore an excellent choice for beginners.
I am pleased to see the much under appreciated IDLE and Tkinter being used as well as many excellent third party modules. Many aspects of Python programming are covered but in a way that is very relevant to the task in hand. Many people will find this way of learning programming much more enjoyable than a book solely focused on programming concepts.
With such a wide variety and range of topics it would be difficult and a little unfair to single out any particular chapter so I'm going to suggest you look over the list of contents and read the sample chapter. I doubt this book will disappoint anyone, more likely it will pleasantly surprise many.
The "Hardware & Appendix List" appendix will save you a significant amount of time searching and selecting components for your own projects.
In summary, this is a fantastic way to learn not only about the Raspberry Pi but also about Linux, Python, GUI's, graphics, interfacing with the real world and a whole host of other topics & concepts. I fully expect this book to be quoted in the future as being the inspiration for budding hi-tech entrepreneurs!