Имхо С - нет. Надо учить с++. Ты всё равно пройдёшь все низкоуровневые моменты, но с++ можно потом будет с удобством использовать в прикладной разработке, а с только в системном (ну почти).
А вообще, если хочешь узнать, как всё работает, учи ассемблер. Рекомендую flat assembler