I just received my copy of “Bad to the Bone” by Steven Barret and Jason Kridner. http://www.amazon.com/Bad-Bone-Electronics-Beaglebone-BeagleBone/dp/1627051376?tag=gamlink-20
Interestingly, there are some reviews on Amazon there which were not up when I ordered it - also Amazon may be having problems with the book? Not sure why as I got my copy in only a few days.
I learned about electronics decades ago in college, but never really put those skills to use. In the past couple of years I started playing with small circuits, first with Texas Instruments MSP430 launchpad, and now with the BeagleBone Black. I can read the schematics, but I couldn’t create my own[and as was pointed out recently, my reading of schematics is not 100% up]. Since I am a novice with electronics, there are many things that just are not “drilled” into my mindset. Like I know what a de-coupling capacitor does and sorta why it is important…but when I’m bread-boarding stuff it really doesn’t spring to mind. Same thing with putting a resistor inline with an LED in order to ensure a reasonable current level - I know it has to be done, I know why, but it is not “second nature” so I’ve certainly blown my share of LED’s playing around.
With this background in mind, I have found the book to be an excellent source of material. When they discuss how to design a program in C or Bonescript, they go into enough detail that someone familiar with programming can easily understand it - but they don’t go into the tedious level of detail of teaching you to program from scratch. They do a high level overview of electronics that is not always enough to really explain WHY something works. For example, they explain how to use a capacitor to debounce a switch. They explain why you must debounce the switch. They explain how to do it. They don’t go into the specifics of what the capacitor is doing that makes it work. In my viewpoint this is the perfect amount of data, enough for me to hack around and get something working, without pages of how electronics work that I can find much more easily by reading a book on electronic circuit design if I really want to know the details.
They also explain in sufficient detail many things that are just taken for granted. For example, I have found other books tend to discuss LCD displays in terms of using I2C interface boards because that is most efficient. In Bad to the Bone, they explain how to directly wire up an LCD display module AND then go on to explain how to use a serial to parallel conversion board to save pins.
They make sure to cover development for Linux using the 3.2 kernel[the version originally shipped with the Beagle Bone Black] AND the 3.8 kernel[where there are substantial underlying differences in programming].
All in all, I would say it is a great book for the experienced programmer who is not intensely familiar with electronics design.