Лучше начать с изучения Си, по книге Кернигана и Ричи "Язык программирования Си", там все доступно и понятно объясняется, и стандарт K&R работает на большинстве компиляторов. Си хоть и примитивнее, но проще в освоении. Потом уже можно браться за изучение C++. По моему мнению, C++ ужасный, раздутый, в нем много лишнего; но сегодня без него никуда, очень много приложений написано на нем.
И не переносят ничего из C++ в другие языки, это C++ все впитывает в себя как губка, все что нужно и ненужно.
Я бы не стал пробовать на C++ другие парадигмы кроме ООП, все будет ужасно и непонятно. Для каждой парадигмы есть свои, более подходящие языки, например:
- функциональное: Lisp, Haskell, Erlang, J ( для мазохистов, он кстати относится еще и к векторному программированию ) ;
- логическое: Prolog;
- ООП кроме C++: C#, Java, Python, Ruby и еще много др. языков;
- для понимания архитектуры можно изучить ассемблер.
Для понимания основ компиляции лучше начать с книги "Давайте создадим компилятор" ( имя автора непомню ), потом уже можно браться за более серьезные книги.