Тема очень обширная и почти всё, что я знаю, уже сказали. Добавлю только немного про "встраиваемые системы". Правильное их название - "Системы реального времени". Область очень актуальная и связана не только с программированием различных прошивок под плееры, телефоны и тп. В сферу её употребления входят всевозможные роботы, автоматизированные системы (типа управления светофорами в развитых странах), космические спутники, медицинское оборудование и ещё много чего. Используемое ПО (кроме простых прошивок) - ОС типа Qnx. Языки программирования - структурный С, Smalltalk, различные функциональные и рекурсивно-логические языки типа Lisp, Erlang, Prolog.