on 4 August 2014
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 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 like 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 a significant amount of time searching and selecting components for your 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!
on 22 July 2016
Really rather good! Many interesting projects, with each piece of code well explained. Lots of stuff on interfacing to the Real World (which is perhaps what the Rapsberry Pi is all about).
The book assumes you are a little way off the starting line with computers and electronics in general, so don't consider it as your primary referrence if you are an absolute beginner.
As is often the case in this fast-moving world, the first (April 2014) edition is already a little out of date, as all the projects are based around the earlier Pi models, prior to the release of the now standard 40-pin IO header. This is no big deal, however. The book is foward-looking, though, in that all the code examples are based around Python3, and not Python2.
All the code examples are downloadable from the publisher's website.
Not cheap, but I'd recomend this book to people who'd like to have a go at building real projects. I find myslef dipping in and out of it - like a cookbook!
on 17 April 2014
My single favourite programming book ever. The detail that Tim Cox has gone into throughout is incredible, with projects as diverse as programming a hexapod to creating your own 3D graphics, stopping along the way to introduce working with an analogue to digital converter. This is an absolute must have book, no exceptions, for anyone interested in programming on the Pi.
Or to put it another way: the mix of software-only with software + GPIO hardware projects is perfectly balanced. If you are still finding your Python feet, or if you are interested in branching out into collecting data from, and interactive with the real world you will absolutely gain from this book and the expert knowledge here-in.
As one of the voluntary technical reviewers of this book I can see the effort that Tim has put into each page, with the end result being that this is a worthy and highly recommended addition to the Raspberry Pi ecosystem.