Начать надо с замеров. Собрать профиль выполнения, посмотреть на самые горячие места, оценить возможно ли эти места как-то распараллелить, если да, то как, и какие издержки могут возникнуть. От ответов на эти вопросы зависит всё остальное.
Дизайн программисту знать не нужно. Но если вы занимаетесь разработкой графического интерфейса, то стоит следовать общепринятым практикам и учитывать UX.
Учить язык программирования, востребованный в вашем регионе, устраиваться куда возьмут, старательно работать года три, чтобы вылезти из джунов, а потом искать работодателей в геймдеве, узнаваться условия найма и пробиваться.
На сколько мне известно, такой литературы нет. Предполагается, что собирающийся писать свою ОС, хорошо понимает, как работает железо и существующие операционные системы.
Терпение и труд всё перетрут, как говорится. Надо заставлять себя, день за днём, без перерывов. Мозг постепенно адаптируется и процесс пойдёт легко и естественно.