I say start off with an Arduino in plain C. (an ATMegaXXX with a bootloader, no programmer needed, just a USB to RS232 converter). Once you get the hang of that, move on into doing it on a Raspberry Pi where you meet your new friend (or enemy) malloc();
Plenty of free online resources. Never once had to buy a book. I did buy a couple books a long, long, time ago, just never read them.
(post is archived)