Если освоение МК ради самого освоения и расширения кругозора - это одно; если для реализации конкретного решения - другое.
В первом случае можно начать "с нуля" или использовать уже готовые решения, с макетками, SDK-платами и большим количеством примеров в интернете.
Во втором - нужно исходить из задачи, требований к системе и срокам разработки.
Так или иначе - все индивидуально. Например я, и для первого и для второго случая, использую
контроллеры семейства CANNY. Удобно, легко в освоении, быстро в разработке... и просто нравится.