Не путать язык программирования и библиотеки/фреймворки и принципы их построения. А еще есть банально алгоритмы и умение их создавать и хотя бы правильно использовать. А еще есть тулчейн - рабочее окружение, без которого в принципе запустить сборку не получится, и очень часто умение настраивать его под задачу может занимать больше времени и знаний чем сама разработка. Попробуй к примеру собери из исходников браузер (cromium или firefox), чтобы подправить в исходниках пару простых моментов.
И главное, если это твой первый язык, учить бы будешь не сам язык а собственно программирование.
С языком разберешься быстро (может даже недели а не месяцы), даже не так, в подавляющем большинстве случаев не требуется знать весь язык, есть некоторый синтаксический базис, да, он нужен (это как понимать зачем нужны отступы в питоне, или что такое преобразование типов в си), а есть огромное количество нюансов, которые нужно понимать чтобы не наступить на грабли для этого есть документация, ну и по ходу придется разобраться.
Невозможно подготовить тебя исключительно теоретически, и потом стать великим гуру на практике, как минимум нужна практика в процессе обучения, и вот уже от нее и твоих способностей к обучению и от образа мышления и будет зависеть, как долго нужно будет идти к цели, может и годами.