Самостоятельно постигали?
и да и нет.
я в конце 2го курса пошел работать на каферду. из всех возможных вариантов дальшейшего роста и трудоустройства были следующие: Digital Signal Proccesing, Wireless Networking, RF Hardware. Несмотря на то, что это довольно интересные темы, неизбежно возникает вопрос трудоустройства после универа. И вот тут самое интересное. В России очень мало компаний кто занимается современными задачами в данных областях. А остальное это НИИ с соответсвующими низкими зп.. Но на радость мне, каферда была хорошей, и часть состава (вместе с аспирантами) основали стартап по разработки системы связи миллиметрового диапазона, для сетей операторского класса. Ну я и пошел в этот стартап кодером (вместе со студентом на курс младше меня), чтобы по окончанию универа не было проблем с работаой. Компетенции в части ЦОСа и прочих технических прелестей разработки систем связи у этой организации было дохрена и больше, а по софтовой (как все это добро запустить, сконфигурировать, удаленно управлять) не было. Поэтому пришлось разбираться во всем самим.
Ну и мы потихоньку начали пилить.. Сначала подготовили софт для демострационного прототипа. Там даже не было операционной системы как таковой (использовали RTOS Xilkernel, где были только примитивный IPC, не было даже разделения на kernel и user space, даже банального загрузчика в память). И вот с использованием этой говно-RTOS сами написали bootloader, примитивный терминал (типа CLI), драйвера, процедуру инициализации и т.д.
Потом портировали linux (благо там была система сборки Petalinux, которая в свою очередь форк от Linux Yocto). Написали драйвера, которых не было, а те что были допили напильником. Ну и прочий системный софт. И в итоге, спустя год с небольшим представили готовый рабочий прототип. Потом я уволился оттуда. Но это совсем другая история..
Вот такой был мой "путь самурая" от радиофизика до программиста)