My textbook for school is "Beginning C for Arduino" and it falls short of explaining the concepts involved I feel. So can anyone recommend a good book on the subject? To the best of my knowledge I will not need any programming outside of Arduino. So a full blown C or C++ course is not necessarily necessary . But if that will help me understand things, I will definitely consider it.
For Arduino you also have the tutorial and reference section on arduino.cc that have lots of sample sketches that should help you learn the most important constructs.
"Beginning C for Arduino" ... falls short of explaining the concepts involved...
I'd really like to know in what ways the book "falls short". The reason is that I'll be writing a second edition of the book starting in a few weeks. Reading the reviews on Amazon, the biggest complaint seems to be the lack of hardware coverage, which was never my intent, as pointed out in the book's intro. The goal was to teach C, not electronics, and most readers are complimentary about the book.
That said, the new edition will include more projects in the chapters to augment the language concepts. There will also be new chapters on OOP (mainly as it applies to libraries), interrupts, and interfacing to external devices (e.g., I2C, SPI, data logging, etc.)
Any ideas that readers have for improvement would be welcomed.
I learned C off the old K&R blue book, and I believe there's a similar one for C++. It would be an interesting approach to teach C++ by way of arduino programming.
-On 2nd thought, the truth is that I've used the online resources listed at the bottom of my article above as my primary resources, and the 3 books above have been the supplements to my list of online resources. Nevertheless, I still highly recommend the books as well, as online material isn't enough. Books are generally more methodical, more complete, and sometimes higher quality, since the author actually has a monetary incentive to do a great and thorough job. The books, for me, have really filled in where the online material was lacking, and the online material has really filled in the gaps and low-level details where the books have been lacking.