Programming can be some of the most difficult and most exciting parts of working with LEGO MINDSTORMS. Seeing a creation come to life can simply be magical (#mindstormsmagic), but is a daunting task for many. With a slew of books on the market for EV3, few focus almost completely on programming. The Art of LEGO MINDSTORMS EV3 Programming by Terry Griffin does a good job of making programming something anyone can do.
First the quality of the book is simply awesome! No Starch Press has an excellent pulse on the MINDSTORMS community and the durable book in full color goes a long way in helping you learn how to program a robot. Great content can often be impaired by back and white images or cutting corners in the publishing process. This book, like The LEGO MINDSTORMS EV3 Discovery Book and The LEGO MINDSTORMS EV3 Idea Book, is made well and will last a long time. (Comes in handy since I suspect you will referring to the book more than a few times.)
The author guides you though building a basic bot and programming it to complete various tasks. These range from things like line following and navigation. Griffin also goes over sensors in both the education and retail kits of EV3, making it a good resource for just about anyone.
Like any good MINDSTORMS reference, there is good discussion on each sensor and how that relates to programming. Griffin also discusses each programming block in good details. This helps create the logical links for any new programmer. One of the unique parts of the book is how practical it is. Most books present turnkey bots and programs. This does wonders for getting you started, but might not be as much help in the classroom or on your FIRST LEGO League team. The author walks the reader through the process of experimenting with some of the basic sensor views as you can see in the picture, left. These sorts of skills work well there is no one correct solution to the challenge.
Overall I was really impressed with the book. My only criticism is that it very much revolves around one robot. Sometimes how you use a sensor in software varies on physical construction of the bot. Take my latest bot Creep3r for example. While I use the IR and touch sensors in a straight forward way, the use of the color sensors detecting the doors and acting as part of the explosion is quite unique. It makes for a slightly more complex program, but makes the bot more exciting. That said, when you begin to use sensors in more unique ways such as sensing internal robot functions instead of the environment, that is a bit more complex. I would say this is a very minor drawback of the book, but would certainly be an exciting topic for a future book to explore.
Hands downs this is one of the best programming references on the market. I would say that The Art of LEGO MINDSTORMS EV3 Programming is a must have for anyone who is getting starting creating robots. Couple this book with The LEGO MINDSTORMS EV3 Discovery Book and you have an excellent set of references for any new EV3 owner!