Главное же в программировании - это умение решить задачу
Неверно. В программировании главное — это логическое мышление, знание математики, а так же способность ясно и чётко выражать свои мысли. А дальше уже идут навыки и умения работы с информацией и знаниями: изучение, поиск, фильтрация, анализ, исследование, составление выводов, научный метод и т.д. и т.п. Ну и конечно знание английского языка — без него никуда. И вот только потом уже идёт знание ЯП, библиотек, фреймворков, их особенностей и всё такое прочее — потому что это всё инструменты. И эти инструменты живут своей жизнью: меняются, развиваются, иногда даже деградируют, умирают и рождаются новые.