What a disappointment! This book started out very focused and project-path oriented and then devolved into a seemingly random collection of disarticulated topics that were never consolidated into a coherent "workshop" approach to teaching. This type of approach leaves me feeling disoriented, confused, and without a sense that I've learned anything useful.
I really had high hopes for this book and after a good start I felt that I was really let down by the author's rambling approach to teaching. As someone who's been involved with developing course material myself, I see this type of workshop as superficial and lacking direction.
This could have been such a better book if he would have focused on directing the projects towards a final master project like the tank but with building blocks working their way towards that goal. Need to control servos? This project will allow us to use this code later to do that. Want to create a remote control, no problem, let's take some baby steps towards that goal. The book never explains WHY you're doing what you're doing or just how to troubleshoot effectively when things don't go the way you planned. You're left with no help to work your way through it yourself and the online searches I did for forum discussion provided no additional insights.
The last and fatal part of this book is the numerous problems with the project coding itself. Two main examples stand out to me as exemplary of my main complains. Chapter 7 has you interfacing with a 2 line LCD display. You have to use the command lcd.setCursor(column, row); in order to place your text on the display properly. The author proceeds to reverse the columns and rows in the lines of code and causes the LCD to display a garbled version of the example. I was able to figure this out for myself after much headscratching, but his is simply bad editing at its worst.
The second example comes in Project #31 where you are controlling an unrelated stopwatch and the author has the pinouts reversed in the code. It's a simple fix once you recognize the problem, but I shouldn't be troubleshooting his code, he and his editors should be!
Unfortunately, there are simply too many glaring errors, lack of direction, no connection between and among the projects, and simply a wandering approach for this book to warrant a good review. I would give it 2 stars for having some solid examples that can be gleaned if you're willing to wade through the tremendous amount of unrelated content and mistakes throughout the book.