Путь, конечно, правильный. И учителя информатики, его, конечно, одобрят. Но тут есть две важных проблемы:
Во-первых, изучать архитектуру компьютера можно очень долго, туда можно закопаться так глубоко, что и за 10 лет не достигнешь дна, всегда будет что-то, чего ты не знаешь. И чтобы знать, когда остановиться, нужен опыт. Ну или совет сочувствующего профессионала.
А во-вторых, самое главное, это очень скучно. Когда изучаешь теорию и основы, ты чаще всего не знаешь, как это тебе поможет, ты не поймёшь, зачем, собственно, это нужно, почему это важно. Даже если забыть про железо и углубиться в основы языка программирования, ты встретишь ту же проблему: ну очень много всего, ну очень сложно. И неизбежно ты не поймёшь что-то, пролистаешь мимо чего-то, что на самом деле важно.
Я бы избрал другой путь: начать изучать какой-нибудь язык программирования и тут же начать на нём что-то делать. Это будет интересно. Более того, по ходу ты начнёшь понимать, чего ещё тебе не хватает, будешь навёрстывать и тут же применять. Так ты сохранишь мотивацию, а главное — будешь тут же применять полученные знания, и они отложатся в голове гораздо прочнее. У тебя будет мотивация, интерес, и так ты станешь настоящим программистом. А потом, через пару лет можно читать в свободное время про компьютеры, и сухие данные будут находить отклик в твоём опыте, будут цепляться за практику. И это будет гораздо полезнее и продуктивнее.
Изучай потихоньку, программируй, ошибайся, пиши говнокод, штудируй stackoverflow и тостер, задавай вопросы, но главное – действуй, пробуй, совершенствуйся.
Удачи!