This book is very readable and well presented. It has certainly helped me understand how to tackle some problems that I was stumped with using the NXT-G programming tool. It does a good job of covering all the obvious stuff about how each program node works. However, it would have been nice to have a more on the general layout approaches that can be used to tackle certain programming goals - a "10,000 foot" overview of the design patterns that work with NXT-G. This is the area that I most struggle with, and one that's difficult to find a good textbook for. It's easy to document the settings for each program node; it's easy to understand how to create a single-stream application. What I find difficult is finding out how NXT-G should be set up to operate several programming streams in parallel, waiting for an event to happen in any of the streams. For example, a car going forward until it either detects something close, or a loud noise, or a light is shone at it, or it bumps into something. Nevertheless, it's a useful book to refer to.