I've been teaching programming for almost 25 years, mostly in C, and have been a licensed amateur radio operator for over 50 years so I know enough electronics to be dangerous. As an author myself, I know how hard it is to write a book on programming. I can't even imagine adding hardware descriptions to the task. As daunting as that might seem to me, Oxer and Blemings have done a wonderful job of covering both elements in Practical Arduino.
Chapter 1 begins with a discussion of very basic electronics (e.g., Ohm's Law, capacitance, etc.) and elementary safety issues. It also covers the minimal tools one needs to build each project that forms a chapter in the book. There are 16 chapters in the book, and 14 of those chapters discuss a project you can build. Most of the projects can be built with the ATMega128 or 328 CPU, although the last project (a telemetry system for an automobile) requires the horsepower of a 1280 CPU.
Essentially, each chapter begins with short description of the components you need to complete the project. Early in the book they even tell you several places to purchase specialized parts that might not be available at your local Radio Shack or equivalent. By the way, eBay has a bazillion electronic components for sale at very low prices. Amazon is also a good place to look, especially for the Arduino and the tools. If nothing else, they're a good way to discover what you should be paying for components.
Each chapter then proceeds to walk you through the construction of the project for that chapter. The topics were selected to highlight major tasks often encountered when using microcontroller (e.g., sensors, controllers, serial communications, etc.). None of the topics are the "blinky LED" type. All are serious projects and are designed for real work.
Actually, I purchased the book for a very specific problem I was having building a project that required multiplexing. Since that word didn't even exist when I started dabbling with electronics, I hoped this book would provide some answers...which it did, and then some. Not only did I learn how to multiplex an Arduino, I learn how to Charlieplex a circuit! In most cases, the authors not only tell you how to do something, but also why you are doing it. That's an admirable goal for any book that is trying to teach something to the reader and they've done it very well.
While I bought the book to address a single, specific problem, I ended up reading it from cover-to-cover. There are little nuggets of knowledge hidden in each and every chapter...each worth ferreting out. Each chapter also discusses the software necessary to drive the project. Software issues are also discussed, mostly using C code that is easy to follow. While the code is not C++ or purely Object Oriented, if you're into OOP like I am, it's a simple step to make the code OOP-friendly.
I've probably read a half dozen books now on the Arduino, but this is the one that has really answered my questions. It has a useful index, which is always a good sign of a well-written book. If you can only afford one book on the Arduino, make it this one...you won't be disappointed.