Какие существуют направления в программировании?
embedded - это микроконтроллеры, промышленное оборудывание.... такие вот штуки. Смартфоны давно уже не входят в эту категорию. Тут нужно хорошое понимание того как работает железо, Си, ассемблер и все такое прочее. Хороших специалистов в этой области выпускается с каждым годом все меньше и меньше
вирусная аналитика - без понятия, но я так понимаю что вы должен неплохо разбираться в том, как эти самые вирусы писать. Скажем попробуйте написать тестовый вирус с использованием полиморфного кода. Заодно разберетесь как работать с потоком инструкций в рантайме... штука довольно занимательная... но я если честно так и не потиг сей пласт в свое время.
Шифрование, криптография... рано или поздно в любом направлении сталкнетесь хотя бы с базовыми вещами. Как минимум будете слышать всякие штуки типа SHA12, RSA, SSL и т.д. с чем бы вы в итоге не работали (разве что в embedded меньше этого, хотя я не могу точно сказать).
Что до функционального программирования... это парадигма программирования, на ряду с процедурным и объектно-ориентированным. Это как бы не привязано к направлению разработки. Более того, масса языков совмещают в себе все эти парадигмы или дают возможность писать в том стиле, в котором вы хотите (например PHP, Haskel, Pyhon, Java с 8-ой версии вроде как лямбда-вычисления поддерживает)...
Короче... просто занимайтесь тем, что вам интересно. Языки программирования, технологии и т.д. выбираются исходя из задачи, которая кажется вам интересной. Да и перейти из одной области в другую относительно непложно, особенно когда вы еще не обременены заботой о семье и детях.
Ну а хороший специалисты будут востребованы всегда.
С примерами
www.youtube.com/watch?v=fqcSTBWD9JI