Сколько времени я потратил на изучение программирования?
Для изучения основ программирования, синтаксиса языка и наиболее важных элементов стандартных библиотек среднему способному человеку потребуется около месяца регулярной практики по 3 часа в день, то есть около 90 часов. В лучшем случае таких навыков хватит, чтобы написать простую программу для любителя. Однако таких знаний недостаточно для начала коммерческой работы.
Онлайн обучение программированию
Рост зарплат в ИТ привел к увеличению числа курсов веб программирования, которые могут помочь вам выбрать правильный вектор обучения с нуля. Одной из самых эффективных школ в интернете для меня стала Академия обучения ИТ ITEA (onlineitea.com). Краткий курс максимально понятно и доступно дает необходимый объем знаний для начинающих программистов. А недорогая цена на онлайн курсы программирования в ITEA делают их лучшими среди лучших.
Никогда раньше я не задавался вопросом, сколько времени у меня ушло на изучение программирования. Мне это давалось легко, и я относился к этому как к хобби. Тем не менее, я решил оценить количество часов, которые я мог потратить на учебу, пока не получил свою первую работу.
Коммерческое программирование
Требуемые навыки программирования в коммерческом мире находятся на совершенно другом уровне. Это как разница между гонщиком и обычным водителем, получившим водительские права. Никто не возьмет вас в команду, если они не увидят, что вы не вложили в это больше работы, чем остальные.
ИТ ничем не отличается. Курс, учеба, книга готовят вас с содержательной стороны и лишь в ограниченной степени — с основ. Вы должны проводить обучение программированию самостоятельно в любое свободное время, укладывая для этого весь свой распорядок дня. Обучение программированию должно стать вашим приоритетом, интересом и хобби. Если вы не работаете и у вас много свободного времени, посвящайте ему 8 часов в день. Если вы работаете и у вас есть какие-то обязанности, найдите для этого хотя бы 2-3 часа в день.
Сколько времени я учился?
Мой первый контакт с программированием был до того, как я пошел в среднюю школу, но это был очень маленький эпизод, на который я потратил максимум несколько часов. В старшей школе мы изучали Паскаль (сейчас это Python). Насколько я помню, классов было не так много, но я много учился дома — около 80 часов (потом я также изучил базовый синтаксис C ++).
Старшая школа:
Уроки информатики на языке Pascal: 80 часов
Во время учебы я познакомился с другими языками: C, C ++, Java, Ada95, Simula, R, SQL и C#. Количество часов лекций, упражнений и лабораторий я взял из приложения к диплому. Некоторые лекции я не посещал, поэтому возможен небольшой просчет:
Учеба:
Введение в программирование 60ч
Алгоритмы и структуры данных 60ч
Компьютерная графика (Open GL) 54ч
Объектно-ориентированное программирование 50 часов
Языки и техники программирования 30ч
Программирование событий 30ч
Основы низкоуровневого программирования 30ч
База данных, классы 60ч
Нейронные сети 44с
Параллельные и распределенные вычисления 44ч
Профессиональная практика 160ч
Веб-приложения 30ч
ImagineCup
Во время учебы я принял участие в конкурсе Imagine Cup, где создал приложение для Windows Mobile 6.5, Windows Mobile 7 и Android. Период интенсивной работы длился около 3 месяцев. Тогда я программировал по ночам и праздникам. В среднем около 4 часов в день или 360 часов на протяжении всего проекта. После конкурса приложение развивалось дальше до тех пор, пока я не закончил свое инженерное образование. Я потратил на это минимум 800 часов. За этот период я многому научился. Конечно, это было бы невозможно, если бы у меня не было прочной основы. Создание реального проекта — лучший способ научиться программированию.
Работа дома
Помимо занятий и проекта ImagineCup, с начала учебы до 5-6 семестра (когда началась работа над проектом ImagineCup) я много свободного времени уделял изучению программирования. Работая дома, я тратил в 4 раза больше времени, чем на упражнения. Если предположить, что половина времени в университете — лекции, то время, проведенное дома для учебы, составляет около 1200 часов в течение 5 семестров.
Приведенные выше расчеты носят ориентировочный характер и скорее занижены, чем завышены. Я не могу сосчитать, сколько раз я просидел всю ночь, занимаясь проектами или решая проблемы.
Чтобы начать свою первую работу, мне понадобилось около 2700ч для изучения программирования. В переводе на 8-часовую полную занятость это примерно 15,5 месяцев. Нужно ли всем столько времени? Возможно, нет. Это время было использовано не очень эффективно.
Продолжительные перерывы в отпуске означали, что я не закрепил часть своих знаний. Изучение некоторых языков больше походило на историю программирования и не приносило особой пользы. Начало изучения нового языка приводило к необходимости ознакомления с синтаксисом, средой и соглашениями.
Такая путаница имела и некоторые преимущества. Я видел различные технологии, методы и проблемы. Это позволило мне выбрать то, что мне больше всего подходит.
Эффективное обучение может сократить количество часов, но не более чем наполовину. На мой взгляд, 1000-1500 часов систематического и качественного обучения (ежедневного программирования в течение не менее 4-5 часов в день на протяжении года) должна быть достаточно способному и очень упрямому человеку. При менее интенсивной работе следует ожидать, что этот срок растянется. Когда лучше всего заниматься программированием? Это зависит от вашего хронотипа (сова вы или жаворонок).
В студенческие годы я был типичной совой (как и большинство молодых людей). Теперь я люблю вставать в 6 утра и сразу же приступать к работе. Независимо от того, какой у вас хронотип, вы наиболее эффективны сразу после пробуждения. Самое главное — не отвлекаться минимум 1,5 часа. Выберите время, когда все спят или когда вам не будут мешать. Выключите телефон и не отвлекайтесь.
В IT вы никогда не перестанете учиться
Работа не заканчивает учебу, а выводит ее на совершенно другой уровень. Раньше цель состояла в том, чтобы получить работу, теперь эта цель будет более важной и трудной для достижения. Как профессионал, вы будете нести ответственность за предоставление бизнес-ценности. По мере увеличения вашей зарплаты, ожидания вашего работодателя, а также ваши обязательства и ответственность будут расти соответственно. Чтобы вы зарабатывали, кто-то должен зарабатывать на вас.
С самого начала своей карьеры я стараюсь каждый день дополнительно тратить 2-3 часа на обучение (чтение статей, книг, просмотр конференций или прослушивание подкастов. Вместе с первым этапом обучения это дает более 10 000 часов учебного времени.
В заключении хочется сказать: ИТ-индустрия высокооплачиваемая, но требовательная. Помимо 8 часов работы, вам также нужно посвятить собственное время тому, чтобы не отставать от новых технологий. Если ваша единственная цель в изучении программирования — заработать деньги, я не советую вам идти этим путем.
Более новые статьи:
- Слэбы разных пород древесины
- Купить канцтовары для школы и офиса онлайн в интернет-магазине Канцтовары-ижевск.рф
- Выбираем школьный рюкзак в интернет-магазине Стокманн
- В чем преимущества портала Фонбет
- Исполнители для любых заданий на фриланс бирже Напишем ру
Сколько времени в среднем проходит для освоения программирования с нуля и возможностью заработка?
Мне 20, студент, и я всерьез, да и довольно долго, думал о том, чтобы связать свою жизнь с программированием. Математика нравится, но не изучал в силу ненужности. Так вот в чем, собственно, вопрос. У меня около 10 часов свободного времени в день (на обучение программированию готов уделять бОльшую часть) и мне интересно: через сколько я смогу зарабатывать? И сколько я смогу зарабатывать? И в какую сферу программирования лучше ‘сунуться’: веб, прикладное, или %забылназвание%? И смогу ли я всю жизнь этим заниматься, из серии: выбрал и развивайся себе в удовольствие?
Изучил огромное количество статей, мнений, вопросов на эту тему, но меня интересует мнение ‘тутошних’ жителей, считаю его более авторитетным. Подумывал о своем бизнесе, о заработке на сайтах и сетках узкотематических блогах, но честно — голова пухнет от размышлений о выборе. Хочется выбрать свою ‘нишу’ и развиваться в направлении, не париться больше об этом. Вот и делаю своеобразную ‘оценку рентабельности’, что-ли. Хочется знать наверняка.
UPDATE: для подписавшихся и для себя подведу краткие выводы.
1 — Основной вопрос, сколько времени проходит между начинанием в программировании и заработком — от 2-х недель, до 3-х месяцев. Зависит от выбранного направления, языка /etc. Количество «сколачиваемого баблища» напрямую зависит от сложности специализации и затраченного времени.
2 — Верхний средний порог заработка в России — 150 000р.
3 — Как это работает: Изучаешь простенький язык, осваивая программирование как таковое (на PHP, или js), после чего 2 варианта: продолжить обучение в качестве «подмастерья», или самостоятельно, одновременно с работой на фрилансе по полученным навыкознаниям.
4 — Задумался о программировании только ради денег? Тебе в другую сторону, друг.
5 — Прочесть вот эту штуку
Вроде все важные выводы =)
- Вопрос задан более трёх лет назад
- 125665 просмотров
1 комментарий
Оценить 1 комментарий
Денис Каракчиев @Satori_Kanzo Автор вопроса
Upd: Что скажете по поводу вот этого?
Решения вопроса 4
Хорошим программистом можно стать только если это занятие нравится. По крайней мере в первые годы это занятие должно приносить удовольствие само по себе. Это должно быть стремление, страсть, талант. Если бы у вас это было, вы бы вопросы здесь не задавали, а просто программировали. Не важно что.
То, что вам, похоже, нужно — это быстрый заработок. Для этого нужно изучить спрос, и сопоставить его с вашими возможностями. Здесь уже писали, что хороший источник статистики спроса — это фриланс-биржи. Смотрите заказы, ищете наиболее популярные темы. Всякие там WordPress и django с RoR для веб, а может что-то по мобильной разработке, но это уже сложнее. Смотрите, что это такое (по попсовым темам очень много материалов), изучаете (попсовые темы потому и попсовые, что легки в освоении) и практикуетесь.
С выходом на фриланс лучше повременить. Не имея опыта можно сходу угробить себе репутацию, а исправить это тяжело. Лучше пойдите к кому-нибудь в подмастерья. Есть у вас на районе веб-студии небольшие? Вот к ним. У них вечно работы больше, чем исполнителей. И не звездите сразу. Подмастерья зарабатывают мало. Немного опыта на реальных проектах — и вы готовы конкурировать с индусами на фриланс-биржах.
Ответ написан более трёх лет назад
Комментировать
Нравится 17 Комментировать
Программист — этим все сказано
Все проще чем кажется — не думай, делай! Бери, изучай языки пиши простенькие проекты, сначала для сея а потом и на заказ. Первые задачи лучше придумать самому из разряда «для себя». Т.е. какую именно программу сам бы хотел иметь — очень поможет освоиться в програмировании. Потом можно брать заказы на фрилансбиржах. Вилка оплаты очень разнится. Например фронтенд разработка в вебе от 80 до 800р за час! Естественно начинаешь с маленьких сумм, с приобретением опыта увеличиваешь ставку.
Это не предел. Потом можно стать тимлидом и самому руководить разработкой какого-то проекта в какой-нибудь компании. Или набрать техже фрилансеров на крупный проект и организовать свое дело. Потолка по доходности просто нет.
Что касается сферы в которой следует развиваться — тут сложнее. Можно посмотреть в сторону веб — вроде как очень перспективные технологии там сейчас и большинство приложений переписываются именно на него.
Ответ написан более трёх лет назад
Комментировать
Нравится 2 Комментировать

Я в 20 лет уже подрабатывал админом на пол ставки в небольшой компании. Думается, что эта строчка в моем резюме потом очень сильно помогла в дальнейшем карьерном росте. Сколько будете зарабатывать — зависит от региона и специализации. Средний заработок нетрудно прикинуть по HeadHunter. Где-то 150 000 в России — это практически максимум для программиста. Я встречал людей, который зарабатывают и больше, но это, как правило, очень узкие специалисты. О том, с чего начать, какой язык выбрать и тп, см тут.
Ответ написан более трёх лет назад
Нравится 2 1 комментарий

Денис Каракчиев @Satori_Kanzo Автор вопроса
Спасибо огромное, но на счет того, что я все еще не работаю полноценно — есть ряд причин, которые закончатся, но в данный момент не представляют возможным делать то, что я хочу.
Чтобы зарабатывать деньги можно либо выполнять задачи по заказу (проще) либо сделать готовый продукт и продавать (сложнее). Задачи по заказу бывают разного охвата — либо это, например, просто вёрстка (проще), либо это софт под какую-то задачу целиком, с разработкой концепции, тестированием, выкаткой, поддержкой и т.д. (сложнее). То есть, зарабатывать можно в любом случае, но это разные уровни сложности, и, соответственно, разные деньги. Чтобы взять нижнюю ступеньку обычно нужно около года. В дальнейшем всё зависит от того, определитесь ли вы со специализацией.
Ответ написан более трёх лет назад
Комментировать
Нравится 1 Комментировать
Ответы на вопрос 9
После откола от хабра, тостер превратился в сборник вопросов и разряда «Хай, пасаны! Вы тут прогеры все крутые? Какую мне книжку почитать минут на 15, что бы завтра мульёны зарабатывать?»
Ответом должно быть: Карл Маркс «Капитал», Дэн Ариели «Предсказуемая иррациональность», Стив Бланк «Четыре шага к озарению» и ещё тысячи книг по экономике. Не ту область выбираете.
Ответ написан более трёх лет назад
Нравится 19 4 комментария
А как же Doing Business?

Денис Каракчиев @Satori_Kanzo Автор вопроса
Нет, я выбираю ТУ область. Вышеуказанные книги по ранее интересующим темам прочитаны, не волнуйтесь))
@Satori_Kanzo, искренне рад за вас. Почти год прошёл, вы стали джуниором?

«тостер превратился в сборник вопросов и разряда «Хай, пасаны! Вы тут прогеры все крутые? Какую мне книжку почитать минут на 15, что бы завтра мульёны зарабатывать?»
ИМХО
Причиной этого явления является осознание того, что возможностью зарабатывать мало -мальски адекватную ценам зарплату своим трудом для среднего человека — является «уход в программисты».
+ «кажущаяся» простота написания кода.

.net developer
На самом деле кол-во таких вопрос действительно зашкаливает, потому что беспокоит многих, но каждый считает, что именно ему ответят каким-то уникальным образом. К сожалению нет, не ответят, универсальных рецептов нет. Я сам одно время, брался за одной, брался за другое, загорался и снова перегорал. Потом приходит понимание, что топчешься на одной месте, даже совершая «гипер прыжки» в кратчайшее время, такие переключения с новым «гипер-прыжком» отбрасывают сильно назад. Это как вектор, который резко меняет направление. Сумма таких векторов может не порадовать точно 🙂
Вроде выбрал, вроде решил, начал углубляться, но смотришь по сторонам и начинаются сомнения, а то ли ты выбрал, а насколько это будет актуально, а насколько будет интересно дальше и так далее. Например, мне импонирует разработка под мобильные платформы, но нет работы на местном рынке. Возникает разумное сомнение, выбрать то, что нужно здесь и сейчас, но не особо перспективно, либо. либо. и еще много разных либо.
Какой же выход из этого порочного круга. Наверное составить Roadmap, где придется проверить свою силу воли. Составить карту планов на год. Проанализируйте такие вопросы как:
1. Что интересно
2. Что проще всего дается
3. Что востребовано на местном рынке
4. Рассматривается ли возможность переезда
5. Что востребовано на фриланс биржах и каков уровень конкуренции в данном сегменте
Нарисовали — пошли добивать, и не метаться. Метания — ваш тормоз. Юношеский максимализм, когда хочется всего и сразу, в этом плане не помощник. Нужно иметь определенный фокус, тогда будет результат. Ну и как минимум лучше всего начать работать хоть с чего-то.
Теперь ответ на ваш вопрос: время освоения программирования с нуля и возможность заработка никак между собой напрямую не связаны. То есть ответа конкретного никто не сможет дать.
Можно всю жизнь программировать, но не зарабатывать на этом. Может повезти устроиться с нулевым опытом, и вы зарабатываете почти тут же. Это как вопрос, сколько надо забить гвоздей, чтобы начать на этом зарабатывать. Утрирую? — да. Но вы так же можете отбивать себе пальцы молотком, но зарабатывать какую-то копеечку, а можете профессионально дома с закрытыми глазами вбивать одним ударом гвоздь, но не иметь с этого ни рубля.
Бывает человек 10 лет программирует, но качество кода остается на уровне джуниора и решать задачи в написании серьезных приложений на фрилансе он не сможет. Получается в локальном вопросе, для конкретной компании этот человек может продать свою работу и получает за это деньги, в более масштабном плане — ему будем сложно себя продать и соответственно шансы на заработок не так велики. Это же и объясняет тот факт, что не всегда умные люди добиваются успеха в компаниях. Человек может быть не самым полезным, не самым эффективным, но грамотный «само-маркетинг, нетворкинг ака полезные связи» бывает творят чудеса.
Единственное, что я могу однозначно рекомендовать даже для программиста — это так называемые soft skills. Навыки общения, коммуникации, понимание идей бизнеса и так далее. Напрямую с программированием не связано, но вопросы настолько универсальные, что пригодятся в любой работе.
Сколько нужно времени, чтобы научиться программировать с нуля



IT-профессии привлекают своей востребованностью и высокооплачиваемостью. По данным аналитического отдела HeadHunter и «Яндекс.Практикума», в прошлом году медианная зарплата в IT составила 92 000 рублей в месяц, а доля вакансий для новичков выросла за 2016–2018 гг. на треть. Хорошая новость в том, что стать программистом можно за год обучения и практики, если есть интерес и желание. Автор программы курса «Как стать фронтенд-разработчиком» Александр Братчиков рассказывает, что нужно, чтобы освоить IT-профессию и найти первую работу в новой для себя сфере.
Самостоятельно научиться программированию можно, самое сложное на старте — выбрать направление. Например, в разработке сайтов их три:
- фронтенд — всё, что видит пользователь на сайте (вёрстка, интерактивные элементы);
- бэкенд — невидимая часть сайта (логика, хранение и безопасность данных, обработка платежей и т. д.);
- фулстек — фронтенд и бэкенд вместе.
Как понять, к какому направлению больше лежит душа? В идеале — попробовать фронтенд и бэкенд, а потом определиться, что интересно изучить дальше.
Сколько времени стоит уделять занятиям, чтобы был толк?
Лучше равномерно распределить занятия во времени — тратить на обучение один-два вечера в неделю не так эффективно, как проходить небольшие уроки каждый день. Чтобы быстрее перейти к практике, на начальном этапе нужно заниматься не меньше десяти часов в неделю. Занимайтесь тогда, когда вам легче воспринимать новое, и когда никто не будет мешать, чтобы можно было полностью сконцентрироваться на учёбе — например, утром, когда домашние ещё спят.
Обязательно ли поступать в университет?
Нет, можно попасть в профессию с прикладной стороны. В работе рано или поздно понадобятся теоретические знания компьютерных наук (computer science) — с ними будет проще ориентироваться в технологиях, новых языках программирования — но и их можно получить самому. Например, вводный курс лекций CS50 Гарвардского университета можно бесплатно пройти на русском языке.
С чего начать и чему можно научиться за три месяца?
Чтобы учиться было интереснее, придумайте себе проект (сайт) и начните его воплощать — верстать, писать код. Дело пойдёт быстрее, потому что код не будет абстрактным, перед вами будут стоять конкретные задачи, решения которых вы будете искать.
Обязательные основы — HTML и CSS, нужные для вёрстки, и язык программирования JavaScript, который делает сайт интерактивным. Фронтенд-разработчику важно понимать на базовом уровне, как устроен бэкенд, поэтому нужно изучить, как происходит сборка проекта — подключение сайта к серверу и его «доставка» до пользователя.
Через месяц-полтора уже получится сверстать несложный сайт, ещё через два месяца — «оживить» сайт при помощи JavaScript и адаптировать его для разных устройств.
Сколько времени нужно потратить, чтобы стать специалистом?
В российской и мировой сфере ИТ принято делить программистов по квалификации на уровни:
- junior — стажёр, который решает самые простые задачи, а для более сложных ему понадобится помощь опытных коллег; за 1-2 года в позиции «джуниора» можно перейти на средний уровень.
- middle — готовый к самостоятельной работе джуниор, который уже легко справляется с типовыми задачами и может браться за нетиповые; этот уровень, непрерывно обучаясь, можно пройти за 2-3 года.
- senior — руководитель команды (тимлид), эксперт с опытом разработки и запуска проектов, способный организовать работу коллег — построить архитектуру проекта так, чтобы его было проще и дешевле поддерживать; на достижение этого уровня у «миддла» уходит 2-3 года и больше.
У компаний нет единых требований к уровням ИТ-специалистов — например, в Яндексе к новичкам больше требований, чем в веб-студии, а в Сингапуре их уровень ниже, чем в России. Курс «Яндекс.Практикума» даёт базу, чтобы начать работать «джуниором» уже через полгода.
Чем раньше начнёте смотреть вакансии разработчиков, тем проще будет отстроить свои навыки, не закапываясь в теорию. В описаниях вакансии обычно указаны требования — по ним можно понять, чему уделять больше времени при обучении.
Как быстро можно найти работу?
После трёх месяцев регулярных занятий начинайте откликаться на вакансии или пишите потенциальным работодателям, ходить на собеседования. С первого раза получить предложение о работе вряд ли получится, но обязательно узнавайте причину отказа. Через какое-то количество итераций и при условии, что вы повышаете свой уровень, работа найдётся.
Скорее всего, сначала вас возьмут стажёром-разработчиком или верстальщиком и будут доверять только самые простые задачи, но за полгода вы получите первый «боевой» опыт и сможете претендовать на позицию джуниора.
30 лет — не поздно?
Начинают и в 35, и в 15. Рынок растёт, хороших специалистов не хватает, поэтому не имеет значения, когда ты решил освоить новую профессию. В 30 лет у человека прекрасно работает мозг, и освоить что-то новое несложно.
Работодатели не обращают внимание не возраст — им больше важны навыки и личные качества сотрудника, или soft skills (эмоциональный интеллект, умение работать в команде, ответственность, желание расти профессионально). После 30 лет у человека уже развиты soft skills — это может стать преимуществом.
Сергей Немчинский: Сколько времени нужно учиться на программиста-джуна?

Самый честный ответ будет: учиться программированию нужно всю жизнь. Выбирая ИТишнутю профессию, вы никогда не сможете сказать, что в рамках своей профессии знаете все, даже через 10 лет работы. Вы все равно будете читать документацию, обращаться к справочникам и лазить по форумам.
Сколько нужно учиться, чтобы стать джуном? Я могу сказать только какие-то приблизительные временные рамки, но уже это вам поможет понять, ввязываться ли вам в эту авантюру или нет. Наверняка вы знаете фразу, что для того, чтобы стать мастером в любом деле, нужно на него потратить 10 000 часов. Для того чтобы стать джуном вам не нужно 10 000 часов, а вот сколько именно нужно – попытаемся разобраться.
Уровни Junior
Я разделяю джунов на несколько уровней. Это важно проговорить, чтобы понимать, время обучение до какого уровня мы будем рассматривать.
«Пред джун» – это тот человек, который еще ни разу не подходил к реальной задаче, т.е. теоретически он что-то читал, но как это сделать – не знает. Такие «специалисты» выходят с большинства курсов, они абсолютно не готовы к живому проекту.
«Strong junior без опыта» – это наши выпускники. Они знают, как делать настоящую работу, но, по факту, еще ее ни разу не делали.
«Strong junior с опытом» – человек, который уже побывал в каком-то боевом проекте и, по большому счету, ему до уровня middle осталось накопить буквально немного опыта.
3 этапа в обучении программированию до уровня джуна
ЭТАП 1. Выбор направления. Я советую прежде чем погружаться в какое-то конкретное направление, попробовать еще пару других. Если вы увидите, что там совсем ничего не идет – значит не ваше. Но чаще всего бывает, что интересно и одно, и другое. При этом вы уже может выбирать более осмысленно. Я советую выбирать из таких вариантов: что-то из бэкенда (Java, C#, Python, Php), что-то из фронтенда (JavaScript), можно попробовать что-то из машинного ниже по уровню (СС++ или rust). Если попробуете язык и точно понимаете, что не ваше – бросайте. Если прям очень понравится – можно другое и не смотреть.
ЭТАП 2. Обучение самостоятельно или на курсах. Т.е. сначала вы выбрали направление, а потому начинаете его учить.
ЭТАП 3. Обучение на реальной задаче. Либо вы устраиваетесь на работу/становитесь фрилансером или учитесь у нас на проекте. Т.е. чтобы привести вас к уровню настоящего джуна, вам нужна настоящая задача (с настоящим заказчиком, сроками, эстимейтами, окружением и пр.).
Сколько вы будете учиться на реальном проекте, чтобы стать strong junior – очень сильно зависит от вас и вашей работы.
Сколько времени нужно на обучение?
Очень многое зависит от вашего бэкграунда, т.е. от того, с чем вы приходите учиться программированию.
Если есть бэкграунд из области ИТ
Если вы из ИТ сферы и были QA, DevOps, Data Scientist или из любой другой специальности, приближенной к программированию, то обучение займет у вас минимум времени. Все что будет нужно – выучить синтаксис соответствующего языка; выучить code style языка (это тоже достаточно банальные вещи); ознакомиться с фреймворками и библиотеками языка. Эти специалисты и так будут знать алгоритмизацию (превращение задачи в алгоритм). В этом случае человеку понадобится в среднем 6 месяцев, иногда меньше.
Если вы знаете какой-то другой язык программирования, то все будет еще проще. Если этот язык родственный, например, с C# на Java или наоборот – то переход займет 1-2 месяца. Если меняете с более далекого языка, например PHP на Java, то это займет 2-4 месяца.
Если бэкграунда нет
Если вы никогда не изучали программирование, то на вход в профессию потребуется очень много времени. Нужно будет учиться понимать, что это такое, как компьютер понимает то, что вы пишите, как научиться превращать задание в программу. Это все лишь введение в программирование и не зависит от выбранного языка.
По моему опыту, все новички делятся на два типа: те, у кого есть умение алгоритмизировать задачу, и у кого этого умения нет. И если его нет, то первые месяцы уйдут просто на то, чтобы научиться понимать, как выстраивать алгоритмы. Сколько на это уйдет месяцев – предположить очень трудно, все слишком индивидуально. Я ни разу не видел хорошей книги, где было бы дано задание и какой-то конкретный принцип, с помощью которого мы его алгоритмизируем. Если бы это было возможно, наверное мы бы уже создали искусственный интеллект, который пишет программы вместо программистов. Но нет. Фактически люди учатся программировать на основе опыта других людей. Поэтому время тратится в основном именно на то, чтобы научиться превращать задачу в алгоритм.
Кроме того, все зависимости от того, сколько времени вы уделяете обучению. Если вы уделяете меньше 1 часа за один присест – вы не выучите программирование никогда, можете даже не браться за это дело. Если вы сели заниматься на 20-30 минут, это время вы каждый раз будете тратить только на то, чтобы восстановить в голове, что вы делали в предыдущий раз. Соответственно заниматься меньше часа за раз – бессмысленно.
Я рекомендую тратить за раз не меньше 2-3 часов. Возможно, у вас не будет получаться уделять обучению каждый день, но важно, чтобы это было не реже 2-3 раз в неделю, иначе, опять же, вы все забудете. В идеале, конечно, заниматься каждый день. В любом случае на обучение у вас уйдет не меньше полугода. Как по мне, реальные сроки – от 9 до 15 месяцев. Ощутимое количество времени (от 3 до 6 месяцев) вы будете просто осваивать, что это вообще за профессия, как к ней подходить, как делать алгоритмизацию. С другой стороны – люди разные, некоторым это все может даваться легко даже без какого-либо бэкграунда. Но даже в этом случае не рассчитывайте менее чем на 6 месяцев обучения.
Всегда ваш Сергей Немчинский.
