С чего начать программировать микроконтроллера?
Учите C для начала.
Начать очень желательно с постановки конкретных задач, чтобы определиться какая машина (контроллер) вам нужна, может Arduino (на основе Atmega), может что-то на основе ARM (например, Raspberry), может Siemens, а если задач пока нет, то купите самое дешевое и простое, желательно Arduino Uno, с него начните, знания Си вам пригодятся, да и вообще любого языка программирования.