Author: Eben Upton, Gareth Halfacree
Audience: New users of Raspberry Pi
Reviewer: Harry Fairhead
A guide to the Raspberry Pi co-authored by the man who invented it. What more could you want?
This book isn't an official manual, but many readers expect it to be an authoritative guide. It isn't because it is aimed at the non-expert reader. It is an introductory guide to the Pi and its biggest problem is that it tries to cover far too much ground. New in this 4th edition is coverage of the Pi 3. The Pi Zero was already included in the 3rd edition.
After some history of the project and a look at the sorts of things you can do with a Pi, the book starts proper with Chapter 1 of Part 1. This is provides a general introduction to the Pi's hardware, including the recently released Pi 3. There are no insider details, just a fairly standard and complete description.
Next we move on to the topic of connecting the Pi. There are good accounts of connecting video, audio and other USB devices.
Chapter 3 goes into using Linux - mainly about setting up users, file systems and managing software. Next we have a look at troubleshooting which does go into Pi specific issues such as inadequate power supplies and odd keyboard problems.
Chapter 5 is specifically on the topic of networking. Getting connected via wired or WiFi. The command line configuration of WiFi is also discussed including how to download the firmware needed for each chip type - information difficult to find in one place. Chapter 6 moves on to the software configuration tool which is so easy to use it hardly needs a chapter to itself. Chapter 7 extends this to advanced configuration. A lot of the information supplied isn't going to do the average user a lot of good but, who knows,you might need it!
Part II is about using the Pi in various ways. Chapter 8 explains how to us it as a home theatre device - mostly Raspbmc. Chapter 9 is about using the Pi as a desktop replacement - using cloud based apps, then LibreOffice. The final chapter in the section on building a web server using LAMP and WordPress has been removed from this edition for no obvious reason. A lot of the information is perfectly standard for any Linux based machine.
Part III is an introduction to programming with a chapter each on using Scratch, Python and Minecraft. What can you expect a single chapter to do by way of teaching you anything about programming? These are no more than tasters to alert you to the fact the Pi has these facilities already installed. Even so each chapter goes a bit further than it probably should for a complete beginner. So if you find that you get lost, don't worry - you just need more time to let it all sink in. It is a shame that the Python chapter uses Python 2 - if we keep introducing beginners to Python 2 we are never going to be able to forget it and move on to Python 3. There are zero reasons for using Python 2 in a book aimed at beginners.
Part IV does the same for hardware as Part III does for software. It starts off with some explanations of what hardware you need - resistors, colour codes and where to buy components, which has a UK bias. Then comes a section on how to solder, which is also out of place but a lot less so than in previous editions in that it explains how to solder a GPIO header onto a Pi Zero - something your probably are going to have to do.
If you are a beginner then you need a lot more help than this to get started. If you aren't a beginner the chances are you already know where to buy components from - and why not mention of Amazon as an easy-to-use source of otherwise hard to find components?
Chapter 14 explains the GPIO port in more detail and lists its additional features such as the UART, I2C Bus and SPI Bus. However. these explanations aren't enough to actually do anything much with. The only practical application is how to flash an LED and read a switch setting using Python. This isn't enough.
Chapter 15 is a look at using the Pi camera in both still and video mode and the final chapter is a catalog of add-on boards. In this edition we have the Sense HAT and Touchscree diasplay rather than the more adventourous Slice of Pi, Pi Plate and Gertboard. This is only to be expected as the hardware covered is offical Pi hardware and there is a world of third party hardware out there but it doesn't encourage the more basic exploration of what can be done - these are finished products.
Again neither chapter is more than a starter look at the topics and neither provides more than a list of possibilities.
The book closes with Part V which is a collection of appendices and program listings.
It is easy to be hard on this book because it doesn't go far enough, but it is supposed to be a user guide and hence it probably shouldn't go too deep into anything. If it has a failing it is probably trying to aim too high at various points.
In the programming section there is the possibility that the reader will be put off learning Python because the pace is too quick and doesn't emphasise what the key ideas of programming are. Sticking with Python 2 is unjustifiable at this stage and it wouldn't be that difficult to make the switch. In the hardware section the problem is the while it provides resistor codes, and even a section on how to calculate a current limiting resistor for an LED, there isn't much to bootstrap the beginner's knowledge of electricity. It might be better just to go through explaining what the GPIO is and then supply a recipe to flash an LED and detect a switch - and leave soldering for another book.
It is difficult to know what a Raspberry Pi User Guide should look like. This is probably the biggest problem faced by this book and one that can't easily be solved by bringing out a new edition.
If you want a fairly basic introduction to the Pi this is not a bad choice and it has some interesting bits of information that will keep you reading, but an authoritative guide book it isn't and it will disappoint the moderately knowledgeable Pi user.
To keep up with our coverage of books for programmers, follow @bookwatchiprog on Twitter or subscribe to I Programmer's Books RSS feed for each day's new addition to Book Watch and for new reviews.