A book like this can be judged at two levels - how useful it is to beginners and how useful it is to people that have some experience with embedded programming.
I personally belong to the 2nd category - I'm working in embedded development for about a year now, not much experience by any set of standards (especially taking into account that I did mostly hardware, not software), but I already felt that this book didn't provide me with almost any new information. So I guess that for people a bit more experienced than I am it will be totally useless (something like reading an introductory "dummies" or "12 days" C book for expert C coders).
As for the beginners category, I cannot evaluate the book objectively (since I'm not a beginner), but I can guess that it would be useful. The author's style is light and not heavy on technical details. However, I feel that the author assumes *some* familiarity with the embedded world, though I wouldn't know, as I get this feeling any time I go over a beginners' book on a subject I know.
What this book did give me is a feeling of how things I wanted to do and considered cool are not hard to achieve. As I mentioned in previous posts, embedded programming interests me a lot. I even considered buying a test board that connects to a PC and write code for it. The book goes over this, proposing a test board with an Intel 8051 processor, and explains how to bang C/C++ code that makes the board tick.
Another nice thing is a chapter about operating systems. The author codes a small and simple multi-tasking operating system, with context switches and all. It's pity that he didn't include his ASM code in the book and explained it as well (he refers to a website for the code).
All in all, this book would be nice for beginners (again, it's only a guess), but for people that have their hands already wet in some embedded development it wouldn't be of much value.