Собственно любой вуз это 4-6 лет обучения. Нужно понимать, что здесь речь не только об программировании, но и множество других полезных знаний.
С одной стороны - если обучились, то выходим с дипломом о том, что мы не кто бы кто, а программист.
С другой - 4-6 лет это много. Это очень много. Поэтому существуют онлайн-курсы, колледжи и различные центры переподготовки. Которые позволяют переквалифицироваться из одной профессии в другую.
К примеру обучение профессии на Хекслете - это примерно 10 месяцев обучения с нуля до готовой профессии, когда можно идти и трудоустраиваться. Срок примерный - потому что каждый человек индивидуален, кто-то быстрее думает, кто-то медленней печатает, кто-то перечитывает, переспрашивает и любит повторять пройденный материал. В общем люди у каждого свои особенности и это хорошо. Из-за этого невозможно подсказать конкретный срок, за который можно обучиться программированию.
"Освой самостоятельно C++ за 21 день" — известная книга, которая вводит в заблуждение уже в названии. Программирование - это навык, такой же как рисование, вождение, пилотирование, резьба по дереву. Само по себе программирование на каком-то языке - это просто. Есть базовые инструменты языка (функции, переменные, циклы и так далее) из них нужно собрать что-то - машинку, приложение для подсчета шагов, тудулист и так далее.
Но тут то и встает сложность того, что такое программирование - это навык, который прокачивается. Также, как рисование и вождение. Программа, которую пишут программисты, должна быть понятной для программиста (этого или другого), она должна быть поддерживаема для изменений, переносима. Она должна выполнять заложенные в неё задачи. Разумеется есть некрасивые, плохо написанные но исправно выполняющие свои задачу программы. Но, будьте уверены, те, кто читают исходный код плюются.
Поэтому вопрос должен быть следующим - сколько нужно времени чтобы достаточно знать программирование, чтобы сделать что-то. Почему так? Хорошие программисты учатся всю жизнь, это непрерывный процеcc непрерывного совершенствования (
Kaizen).
Как я уже говорил, сроки обучения у всех индивидуальны. Никто не гарантирует, что в ВУЗе, колледже или где-то еще вы будете знать все, что нужно. Обычно сроки - это про количество материала, сколько нужно времени потратить на обучение в среднем, если выполнять все задания, смотреть лекции и так далее. Но никто не гарантирует, что на каком-то из этапов не возникнет сложностей, из-за которых придется немного задержаться на обучении (в принципе это нормально).
Поэтому я могу сказать, что год-два на обучение - реальные сроки. на которые нужно ориентироваться, чтобы с нуля дойти до достаточно уровня, чтобы начать дальше разбираться, копать и так далее. В принципе такие же сроки не только у курсов, но и колледжей и так далее. А в ВУЗе дается как правило очень много всего, что относится не только к программированию.
Да и в общем-то это отличает хорошего программиста, от плохого - программирование не всегда про написание кода, но и его продумывание, умение искать информацию, пользоваться логикой, уметь общаться и так далее - это и другое важные качества программиста. Некоторым вещам кстати не учат нигде, они постигаются только в процессе работы.