Тут нет однозначного ответа. Микроконтролеры разные и нужно исходить из задач. Самый эффективный способ это придумать себе цель - устройство. Брать готовые примеры кода на том-же гитхабе с теми элементами которые нужно в вашем устройстве и добавлять в свой проект попутно разбираясь с тем что этот кусок делает и как.
Точкой входа в мир микроконтроллеров, в вашем случае, будет Arduino. Море литературы, огромное комьюнити, дешевые платы для разработчиков. Рекомендую выбрать набор на Arduino UNO с богатой комплектацией, так будет веселей. Ну и... Читать далее
Программирование микроконтроллеров это несколько направлений изучения:
1) Сам контроллер, то есть инструкция(даташит) по работе непосредственно с железом, которую придется прочитать и понять;
2) Язык программирования это... Читать далее