Поддерживаю предыдущего оратора :)
Деятельность программистов очень обширна и разнообразна, мы не всё знаем из того, что делает коллега за соседним столом. Подумайте над тем, чем именно вы хотите заниматься в IT. Может быть вы будете заниматься именно ПО, но вам понадобится для чего-нибудь реверсный инжиниринг? ЭВМ тут может и не столько нужны, а вот низкоуровневый машинный язык пригодится.
Я очень люблю сравнивать программистов с врачами. Мы сначала по чуть-чуть узнаем всё, но в конечном итоге эндокринолог не полезет в дела хирурга, потому что где-то в ординатуре их пути уже разошлись.
Нацеливайтесь на получение самой базы, узнавайте, что вообще есть на белом свете, а подобрать/доучить конкретные навыки вы всегда уже впоследствии сможете.
Зависит от того, с чем он работает. Программисту, работающему с железом, надо. Тому, кто пишет прикладные программы - практически нет. Мне лично знания по особенностям конструкции ЭВМ за 20+ лет работы понадобились пару раз от силы.