On the technical side, the explanations are more suited for at least a Junior Level college course where students have had a couple of years of microcontroller interfacing and are knowledgeable about the ARM processor and the peripherals. The author only provides a vague overview with programming stubs stating that the details are left for exercises at the end of the chapter.
He provides only a cursory introduction on BoneScript. He does not present how the user loads, launches, or interacts with the interpreter.
He lists two different robot platforms for his exercises, one from Graymark International and a DFROBOT ROB00003 from Jameco. Both examples could utilize the DFROBOT and save the person trying to learn some money.
He provides a very poor explanation of the interface headers. He does not go into the different processor modes and why one would or would not choose one over the other. The person trying to learn Beagle is left to trial and error. Pick a header (8 or 9) and guess at what pin you should use. If you guess wrong, or if the processor is in the wrong mode, oh well, that is your problem.
He tries to push the use of UML Charts as some type of 'visualization' tool for embedded design. These charts appear to be nothing more than a torturing of the charts used in The Jackson Design Methodology (Ref. Creating Effective Software, Computer Program Design Using the Jackson Methodology, David King, Yourdon Press Computing Series, ISBN 0-13-189242-8. Yes, I know the Jackon approach is a transaction analysis and not embedded design. Or refer to Chapter 10 Transform Analysis in Structured Design, Fundamentals of a Discipline of Computer Program and System Design, Yourdon and Constantine, Prentice-Hall, Inc., ISBN 0-13-854471-9.
Or,if you really want to learn Object Oriented Programming (event driven programming) I would recommend Object-Oriented Analysis and Design, with Applications by Grady Booch, Benjamin/Cummings Publishing, Inc., ISBN 0-8053-5340-2. Or if it is still available, purchase a copy of the Object Oriented Programming in C++ by David S. Burris, Ph.D in Computing Science, Sam Houston State University, Huntsville, TX 77340. An embedded system could be designed as a Top-down program, but Object-Oriented Programming is more suited to this paradigm. The purpose of Object-Oriented Programming (OOP) is to develop an efficient system that is driven by events and not a top-down iteration. By nature, embedded systems are event driven. That is, the environment (albeit the user or some sensor) triggers an event and the processor must respond to the event. Events are not necessarily sequential or linear in their occurrence and frequency. They are random and the system should conform to the world it is trying to control.
All-in-all, I was greatly disappointed in this book. Being a first to market book, I thought it might be the "Beagle Bible". Instead, IMHO, it is the "Beagle-boondoggle." Hopefully Dale Wheat will write a BeagleBoneBlack Internals so everyone can learn the ins-and-outs of Beagle.