Recently I was reading a book titled Programming Interactivity from O'Reilly books.
This huge book (the PDF I was reading weighed in at over 700 pages) appears to be targeted at the non-technical hobbyist or possibly an artist or designer covering the basics of programming, Arduino Microcontroller environment, Processing (subset of Java and IDE) and openFrameworks. It even has some circuits for the hobbiest building with embedded devices. The main focus is interaction design, looking at how to enable better computer/human interaction from a technical perspective.
The book appears to be the most complete coverage of physical computing techniques and Interaction Programming available anywhere. The book starts out with expert interviews and background related to the interaction between people and computers and the role of design. It then dives right into the basics of programming and some of the software tools and libraries used for hobbyists with embedded systems.
The three main topics covered early in the book are: Processing (java), Arduino (a micro controller), and openFrameworks (a C++ environment). It then shows how to physically interact with people (using knobs, lights and sensors) before providing a great deal of detail about using graphics, sound… and sensors to share information.
For the hobbyist interested in Arduino this book will be a very useful tutorial and reference. It is definitely not something you can just sit down and read, but refer to the parts you need as you need them.