This is a really good book and if you are interested in working with hardware - mostly the Arduino and its surrounding eco-system then don't let anything I say subsequently put you off. Any problems with the book are minor compared to its successful content.

But there is a problem, a big problem, that might cause you to buy it under false pretenses. This book is not about speech chips, speech synthesis or recognition. It is not about making toys talk even though the cover has some soft toys that look as if they should talk. As long as you don't interpret the title to mean actually making things talk you won't be misled.

What the "Talk" referes to in the title is making one bit of machinery communicate with another. From the preface:

"Making Things Talk teaches you how to make things that have computational power talk to each other, and about giving people the ability to use those things to communicate".

The book consists of a lot of projects put together in chapters with common themes. Chapter 1 outlines the basic tools and skills - mostly Arduino and Processing. The first small project should get you started. The hardware layout is shown as both a schematic and a breadboard photo. What is missing at this early stage is any theory - no Ohm's law and no calculations of any sort. This is forgivable but it would be nice if the point was made that without some math you can't do everything you might want to.

Chapter 2 is about basic point-to-point communications - serial, USB serial and Bluetooth. This also presents the first big project and its associated software which is introduced in small chunks. Chapter 3 moves on to more complex networks - the Internet to be precise. After some theory on packet switched networks the project demos how to use an Arduino connected to a portable to send email when the cat is actually sitting on the mat (no - really - this is no joke).

The next step in sophistication in Chapter 4 is to get rid of the portable and put the Arduino on the Internet using an off-the-shelf shield. This is also a chance to learn about SPI - a lower level network protocol. Chapter 5 moves on to using UDP for near real time communications. Chapter 6 is about general radio communications - Xbee, Bluetooth and WiFi and Chapter 7 deals with broadcast communications

Chapter 8 moves back to consider sensors for location rather than communications - infrared distance, ultrasonic distance, radio signal strength, GPS, digital compass and accelerometer. Chapter 9 continues the sensor and location theme with a look at how to use RFID tags.

Chapter 10 returns to networks and communications big time, with a look at how to use a cell phone to transfer data - this is a long chapter. The final chapter goes over the protocols and throws in a few projects. The book closes with an appendix on where to buy the modules and this does list suppliers in places other than the US.

As well as the broad topics covered in each chapter, there are tiny little ones thrown in because they are necessary - like how to use an SD card. The projects are all well described and the presentation is impressive - full color photos and lots of nice artwork. Overall the book looks attractive, exciting and full of things that would make you want to learn. The only missing element is some electronics theory - and perhaps some programming theory, but these can be found in plenty of other books. This particular volume is inspirational and a great source of how-to knowledge.

Author: Lee WittenbergPublisher: Mercury LearningPages: 200ISBN: 978-1683920847Print: 1683920848Kindle: B071CMSFHF Audience: Student developersRating: 4Reviewer: Mike JamesData structures are the core of many a computer science course and a book explaining them in C++ is a great idea.