Я немного не верно выразился.
Научиться можно только перенимая чужой опыт. Так?
Я беру чей-нибудь рабочий проект и пытаюсь разобрать его извлекая из него опыт. Соль в том что если в проекте нет комментария и у какой-нибудь команды нет описания в интернете, я не могу понять что на данном этапе делает контроллер.
Для меня до сих пор загадка прерывания, ШИМ, общение через Tx Rx, по сути почти все кроме азов. Да и тут имеются проблемы, например я так и не нашел рабочего алгоритма обработки нажатия кнопки, который бы я понял, чтоб не фиксировался дребезг.
Тупо копировать чужой код, не понимая его сути может и обезьяна. IMHO.