Хочу дополнить ответ Дмитрия Денисенко. Язык программирования стоит изучать не какой попало, а такой, который позволяет работать напрямую с памятью. C/C++ как раз подойдет. Также стоит поизучать алгоритмы и их оптимизацию, так как при работе с микроконтроллерами будет сильный дефицит памяти и вычислительной мощности. Ну и в любом случае нужно будет выучить ассемблер, так как программировать придется именно на нём.