Я, вообще, не хочу быть программистом. Да, я имею изрядное образование в этой области, но только потому, что я его получаю бесплатно.
Но иногда сталкиваюсь с чем-то, что довольно интересно программировать. Заметил, что всё, что мне интересно -- оно на стыке железо-софт, то-есть, если пришлось бы стать программистом, то я бы пошёл в эмбедщики. Это можно почувствовать, пощупать, увидеть в действии, припаять. Когда твой проект работает -- он не гоняет абстрактные нули и единички, а шевелится и пищит.
Поэтому одним из любимых занятий у меня было "Введение в архитектуру x86 и ассемблер".
А в свободное от работы рабочее время я решил создать эмулятор процессора. На Джаве, конечно -- я её знаю лучше всего (да слышал я про Verilog, слышал).
Процессор, конечно, получается весьма убогий -- 8 штук 16-битных регистров данных, однобитный сумматор, 32-битная шина.
Сегодня ЭТО наконец сумело выполнить команду, которая на x86 выглядела бы примерно как "MOV EBX,1". Нет, с x86 мой процессор, конечно, не совместим.
На очереди эмуляция сумматора (убогого, однобитного -- складывать два 16-битных числа буду аж 17 тактов).
Но мне нравится, интересно.