Сколько нужно заниматься программированием в день
Перейти к содержимому

Сколько нужно заниматься программированием в день

  • автор:

Сколько времени я потратил на изучение программирования?

Для изучения основ программирования, синтаксиса языка и наиболее важных элементов стандартных библиотек среднему способному человеку потребуется около месяца регулярной практики по 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 часов работы, вам также нужно посвятить собственное время тому, чтобы не отставать от новых технологий. Если ваша единственная цель в изучении программирования — заработать деньги, я не советую вам идти этим путем.

Более новые статьи:
  • Курсы китайского с репетиторами и носителями языка в Skype-Language
  • Основные типы биоритмов человека
  • Кто такие неандертальцы и почему они вымерли, кратко
  • Кому нужны курсы английского языка Skyeng
  • Кем может работать программист в интернете. IT-курсы и специальности

Сколько времени реально нужно, чтобы освоить программирование?

Этот текст для тех, кто хочет оценить трудовые и временные затраты на изучение профессии разработчика. Посмотрим, какие результаты реально получить за неделю, месяц, полгода и далее.

Спонсор проекта — буткемпы «Яндекс Практикума». Буткемпы — это как обычные курсы Практикума, только вдвое более интенсивные и поэтому короткие. Если классический курс «Аналитик данных» проходится за 6 месяцев, то буткемп по той же специальности длится всего 4 месяца.

  • Буткемпы требуют выделять на обучение около 40 часов в неделю. Обычные курсы — около 20 часов.
  • Буткемпы нужны тем, кто хочет вот прямо сейчас уйти с работы и попасть в новую специальность. Обычные курсы — для тех, кто изучает новую специальность параллельно с основной работой.

Сколько времени реально нужно, чтобы освоить программирование?

1 неделя: базовые конструкции и простые алгоритмы

Если у вас есть наставник, советчик или просто нормально организованный учебный процесс, первый код на любом языке программирования вы напишете уже в первый день. На второй день вы напишете простую работающую программу.

За неделю занятий вы сможете:

  • Писать и запускать свой код.
  • Объявлять любые типы данных.
  • Делать простые вещи с помощью циклов и условных операторов.
  • Работать с массивами, строками и числами; производить математические операции.
  • Объявлять функции.
  • Работать с объектами.
  • Если изучаете JavaScript и HTML, то вы даже сделаете простую интерактивную веб-страницу.

✅ Этого этапа хватит, чтобы начать писать собственные простые программы и экспериментировать. Но пока что вы будете сталкиваться с проблемами на каждом шагу, потому что любой минимально амбициозный проект будет казаться неподъёмным.

⚠️ Подводный камень: вам может начать казаться, что теперь вы умеете программировать, и вы начнёте решать все данные вам задачи теми базовыми инструментами языка, которые вы знаете. Часто ваши решения будут громоздкими и нестабильными. Как с этим быть — вы узнаете дальше.

Сколько времени реально нужно, чтобы освоить программирование?

1—3 месяца: основные задачи, которые решают этим языком

Следующий этап — вы начинаете погружаться в специфику языка программирования и узнавать, какие именно задачи им лучше всего решать и как. Это этап узнавания основных паттернов языка.

На примере фронтенд-разработки:

  • Вы начинаете использовать фреймворки для работы с веб-страницей.
  • Узнаёте про стандартные компоненты интерфейсов.
  • Начинаете общаться с сервером с помощью асинхронных запросов.
  • Познаёте силу современных верстальных инструментов типа CSS Grid.
  • Учитесь показывать всплывающие и модальные окна, валидировать формы, настраивать анимации.

✅ Это этап всемогущества: вам кажется, что любую задачу, какую вы только можете представить, вы сможете решить с помощью своих знаний этого языка. Это всё ещё не так, но ваши возможности заметно выросли.

⚠️ Очень важно здесь не впасть в состояние самоуверенности. На этом этапе вы ещё не можете идти на работу разработчиком, но уже можете идти джуном, например писать документацию и заниматься рутинной технической работой.

Сколько времени реально нужно, чтобы освоить программирование?

3—6 месяцев: фреймворк, или набор инструментов для решения специфической задачи

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

  • В случае с веб-разработкой это будут Angular, Vue или React — смотря куда вас понесёт.
  • Если вы пишете на Python — вы начнёте специализироваться на каком-то виде вычислений: либо провалитесь в веб-разработку и Django, либо начнёте глубоко изучать математические и визуализирующие библиотеки.

✅ После этого этапа вы уже уверенный разработчик, которого можно нанимать на коммерческие задачи.

⚠️ Вы ещё не знаете, что работа в ИТ-компании — это не только разработка (и далеко не она).

Сколько времени реально нужно, чтобы освоить программирование?

6 месяцев и далее: отраслевой опыт, лучшие практики и боль работы в ИТ-компаниях

Где-то здесь вы уже начинаете искать работу и попадаете в свою первую ИТ-компанию. Скорее всего, первая работа будет на позиции джуна, хотя по уровню знаний вы уже можете претендовать на позицию мидла.

Тут вам открывается, что работа в ИТ-компании несколько больше, чем просто разработка. А именно:

  • Вы контактируете с менеджерами и другими разработчиками. Выясняется, что нужно уметь общаться, и это не такой очевидный навык. Договорённости искажаются, поручения теряются, менеджеры приходят с противоречивыми заданиями.
  • Вы должны будете научиться управлять собой, своим временем, психологическим состоянием и работоспособностью.
  • Некоторые задачи будут скучны настолько, что вы будете адски прокрастинировать.
  • Вы поймёте, что писать код для любимых хобби-проектов — это не то же самое, что работать на чужом проекте внутри группы поддержки скучных служебных модулей.

✅ Вы будете уставать и выгорать, но если вы справитесь с этим этапом, у вас откроется второе дыхание и вы станете настоящим мастером разработки.

⚠️ Раньше вы смеялись над людьми, которые выгорают, работая за компьютером. Теперь вы этот человек.

Сколько времени реально нужно, чтобы освоить программирование?

12—24 месяца: оптимизация, рефакторинг, политика

Пройдя долину выгорания и скучных задач, вы узнаете о себе три вещи:

  • В мире разработки есть вещи, которые вам искренне интересны.
  • Если применить софт-скиллы и навыки переговоров, вы сможете загрузить себя именно такой работой. А всё неинтересное скинуть на других бедолаг.
  • Программирование — это своего рода спорт высоких достижений. Ваша программа может работать быстрее.

Это этап, на котором вас начинает раздражать легаси-код. Вы хотите всё переписать под новые фреймворки, оптимизированные под новое железо. Вы начинаете заморачиваться читаемостью кода, скоростью работы и нагрузкой на исполняющие машины; у вас на столе появляются классические учебники по алгоритмам. Вы наконец-то прочитали «Искусство программирования» и всё там поняли (хотя эта книга была у вас уже год).

✅ Ваш софт начинает работать быстрее, стабильнее и просто элегантнее. Вы получаете истинное удовольствие, когда ваши программы запускаются на старом железе.

⚠️ Простые люди перестают вас понимать, считают гиком и занудой.

Сколько времени реально нужно, чтобы освоить программирование?

2—5 лет: вставки на ассемблере, экзотические языки, духовность, квантовая физика

Если не остановить этот необратимый процесс, дальше вас ждёт погружение в глубины машин. В голове рождается мысль, что вы используете недостаточно оптимизированные фреймворки, и вы начинаете разбирать их по частям, выбрасывая лишнее. Но оставшиеся во фреймворках функции тоже оказываются недостаточно оптимизированными, и вы погружаетесь на самый низкий уровень, чтобы оптимизировать этот код с помощью ассемблерных вставок.

Если говорить языком автомобилей, вы разбираете свою машину до двигателя и растачиваете цилиндры, чтобы добавить ещё сотню лошадиных сил.

Вы начинаете изучать ассемблеры, но теперь с полным пониманием, зачем вам это.

Чтобы отвлечься от мыслей об оптимизации кода, вы начинаете программировать микроконтроллеры и случайно воссоздаёте Doom на инженерном калькуляторе.

✅ Почти любую разработческую задачу вы можете решить на одноядерном процессоре с тактовой частотой 500 мегагерц, как в девяностых.

❌ Люди боятся говорить с вами о разработке.

Сколько времени реально нужно, чтобы освоить программирование?

6+ лет: сопромат, проектирование загородного дома

Вы в понимании разработки уже так преисполнились, что решаете любую задачу силой мысли. Ваша клавиатура — кастомная 12-клавишная разработка с десятью функциональными слоями. Вы напечатали её на 3Д-принтере, а логическую плату для вас изготавливали в Гонконге.

Вы начинаете задумываться о других аспектах своей жизни:

  • Начинаете думать о покупке земли и строительстве дома. Правда, дом вам интересен в первую очередь как инженерный проект: можно ли его сделать полностью автоматизированным, используя микросхемы времён СССР?
  • Нейронка на вашем облачном сервере считает идеальное расположение несущих конструкций вашего будущего дома.
  • Вы изучаете вопрос создания собственной системы навигации на базе ГЛОНАСС, чтобы промаркировать своих будущих кур и гусей. Телеметрия и дистанционная ветеринария. Математические модели для выпаса овец. Квадрокоптер-пастух. Непрерывное энергоснабжение. Лазерное энергоснабжение.
  • Однажды на рыбалке вам является оптимизация кода в одной из рабочих задач. Вы видите красоту в движении волн.
  • Глядя на водную рябь, вы размышляете о критериях разумности машин.
  • Вы используете Linux с доработанным вами же ядром. Вам не нужен монитор.
  • Вы из тех людей, которые входят в комнату, и все компьютеры резко перестают глючить.

Сколько нужно времени чтобы научиться программировать?

Здравствуйте. Мне 20 лет. Я работаю торговым агентом. Недавно попробовал себя в программировании. Наткнулся на самоучитель по Java. Выполнил все задания, нагуглил ещё каких то курсов, даже какое то подобие игры написал. Вообщем я изучал это 1.5 недели в свободные от работы часы. Не знаю зачем, мне просто было интересно. Есть желание это развивать и время.

Вопросы такие:
Смогу ли я самостоятельно изучить программирование до такого уровня чтобы устроиться на работу?(книги, видео уроки, гугл)
Сколько времени это займет?
С чего лучше начать?
Обязательно ли идти в универ?
20 лет не поздно?

Извините за глупые вопросы и спасибо за ответы.

  • Вопрос задан более трёх лет назад
  • 84161 просмотр

1 комментарий

Оценить 1 комментарий

andrey_233 @andrey_233
Зря детство продеградировал из-за девушки, 6 лет жизни без развития. Представляете?
Решения вопроса 4
sergeygarnov @sergeygarnov

Смогу ли я самостоятельно изучить программирование до такого уровня чтобы устроиться на работу?(книги, видео уроки, гугл)
Да
Сколько времени это займет?
1,5 — 2,5 месяца
С чего лучше начать?
Месяц потратить на изучение основ на любом языке, выполняя различные задачки, далее уже в общих чертах начать знакомиться со всякими модными фреймворками и пр.
Обязательно ли идти в универ?
Говорят, что обязательно
20 лет не поздно?
Учиться никогда не поздно

Ответ написан более трёх лет назад
Нравится 4 1 комментарий

Bandicoot

за пару месяцев вряд ли можно освоить программирование, скорее больше уйдет
Defold, Corona, Lua, GameDev

Самостоятельно можно.
Вы ещё не определились что вам ближе? Сайты, десктоп приложения, игры, мобильные приложения?
Если нет, то нужно начинать с самых основ — упор на алгоритмы и методологию.

Универ никогда лишним не будет, но можно и без него всё изучить.
Хотя бы посмотрите в сторону курсов по программированию.

20 ничуть не поздо.

Если английский не знаете — учить в обязательном порядке и очень интенсивно. Для программиста это очень важно.

Ответ написан более трёх лет назад
Нравится 4 3 комментария
TelepuzikU @TelepuzikU Автор вопроса

Спасибо за ответ. Что конкретно нужно знать, перед тем как пытаться устроиться на работу например как Java программист? Ближе наверно десктоп.

Gromobanan777

Илья Гром @Gromobanan777

@TelepuzikU Главное — желание учиться и совершенствоваться. Пиши-код-блять! Постоянная практика, пробуйте себя на гитхабе. Смотрите вакансии, там и узнаете, что вам нужно знать.

Можете спросить прямо у работодателя. Они вам скажут весь стек технологий, который используется у них в разработке. У других схожих фирм должно быть примерно то же самое.
Кстати далеко не везде необходимо применение каких-то сложных алгоритмов. На десктопах обычно всё проще — показать окошко, заполнить данными из БД, сохранить изменения и тому подобное.

Николай Турнавиотов @foxmuldercp
Системный администратор, программист, фотограф

Поставить реальную задачу перед собой и её решать, используя выбранный инструментарий.
Такой задачей ждя меня стало написание веб варианта домашней бухгалтерии на c# + asp.net mvc.
заодно разобрался и с субд, и с html и с jquery с twitter bootstrap.
Если пересчитать на фуллтайм, то получилось где-то 2-3 месяца, более менее войти в курс дела, я из 31 года около 16 админ без навыков программирования как таковых, только небольшие скрипты.

Ну а Вам надо понять, под что хотите писать, выбирать инструмент и вперед, покорять вершины

Ответ написан более трёх лет назад
Комментировать
Нравится 1 Комментировать

Универ, очень нужен, если хотите этим заниматься серьезно. Но с другой стороны 5 лет (или 4 года бакалавром), можно с успехом до 3-х сократить. Придется учить кучу хрени, типа метрологии, философии, истории и прочей хренотени, которая потом будет успешно забыта. Но с другой стороны, если сможете с преподами договориться, не тратя время на эту муть, то после 2-3 курса можно смело на работу идти на junior позицию.

Без универа будете говнокодером, знаю по примерам, даже если сходите на какие-нибудь курсы.

Ответ написан более трёх лет назад

shcherbanich

Filipp Shcherbanich @shcherbanich
холивар тема, можно стать хорошим специалистом и без него.
Ответы на вопрос 2

afiskon

Начать писать программы можно за неделю. «Научиться программированию» занимает лет 10 минимум. Касательно «с чего начать» см например тынц.

Ответ написан более трёх лет назад
Нравится 1 4 комментария
TelepuzikU @TelepuzikU Автор вопроса
Мне интересно сколько времени уйдет чтобы начать зарабатывать программированием?
TelepuzikU @TelepuzikU Автор вопроса

И что лучше выбрать(десктоп приложения, игры, мобильные приложения, веб) чтобы по меньше времени ушло.

Ну это явно не лучшая мотивация в изучении программирования. Учите PHP и устраивайтесь в какую-нибудь веб студию. Одним меньше, одним больше.

yurygolikov

yurygolikov @yurygolikov
TelepuzikU: Быстрее зарабатывать это скорее в веб
Alibaba2018 @Alibaba2018

Смогу ли я самостоятельно изучить программирование до такого уровня чтобы устроиться на работу?(книги, видео уроки, гугл)
Да (Я сам такой же. Изучаю программирование уже года 2.5 (последний год конкретно, до этого так), но так и программировать качественно сам до сих пор не умею, т.е. именно писать свой source code, кот. был бы приемлем на профессиональном уровне, хотя и изучал и Swift, и Java, и даже C++, и Python. Копировать чужие программки и код — это не программирование, a обучение и дрочилка.
Сколько времени это займет?
В зависимости от сферы в какой хотите работать
(Для клЕпания сайтов — front end: недолго, для создания своих AI движков: очень долго)
Я лично, например, решил сконцентрироваться сейчас только на Python. По сути, если научиться капитально программировать (опять же, именно программировать(!), то после любой язык прогрраммирования (а для начальных прогеров синтакс) дается очень легко, т.к. понимаешь а) структурирование, б) архитектуру решения задач и в) собственно построение этого решения.
Я начинал с изучения со Swift’а для создания приложений на Iphone. С одной стороны рад, что начал с более сложного языка (а Swift — это intermediate язык по сложности), с другой нет, т.к. это было не программирование, а попытка копипастить откуда можно, чтобы что то работало, т.е. попытка сшить из носовых платков штаны, собственно, по сравнению с брюками нормальными от пиджака, также получались разноцветные шаровары, да еще и на соплях, да еще и если получались..
С чего лучше начать?
Начните с языка Python, самый легкий. Если есть английский:
1. «Learn to Program with Python» by Irv Kalb
2. www.udemy.com курсы Jose Podilla — рекомендую почти все
3. найдите сайт фоксфорд с лекциями по подготовке к ЕГЭ Тимофея Хирьянова, а потом для закрепления пройдите и все его курсы для 1 курса МФТИ (все есть на youtube)

Обязательно ли идти в универ?
Нет. По сути, если взяться конкретно за это (т.е. заниматься с 8 утра до 8 вечера, 6 дней в неделю, где то полгода-год), то можно закончить всю университетскую программу самому. Если еще есть хороший наставник, кот. подсказывает то за полгода точно можно даже хакером стать. Я все учил сам, что значительно и увеличило время изучения, так как иногда приходилось делать круги.
20 лет не поздно?
Да хоть в 60, если мозги работают. Самое главное желание.

PS От Себя.
По сути, программирование — это 3 этапа
а) структурирование, т.е. разбивка задачи на транзакции, для чего нужна логика, усидчивость и немного мозгов, т.е. само программирование здесь почти нулевое (больше нужно даже problem solving skills, но это уже отдельных навык, связанный с след. пунктом)
б) перевод затем всего этого структурирования в математический язык и алгоритмы,
т.е. знание алгоритмов, структур данных, паттернов итд итп всяких intermediate и advanced программных штук — что начинающий поймет после изучения базового синтаксиса, а также что не мало важно хороший уровень математики (матан, дискретка, линейная алгебра — 3 в особенности, ну и далее статистика, итд итп, т.е. по специализации)
c) и затем перевод это все в синтаксис, язык программирования, что со знанием базы уже становится очень просто

PPS проблема что пункт б) практически нигде не отмечают, особенно в курсах для начинающих, и в основном преподают тоже качественно учителя в ВУЗах, т.е. люди, кот. реально умеют программировать и писали, код, а не те, кто выучил синтаксис, а реальной практикой на профессиональном уровне никогда не занимались в своем большинстве

Сергей Немчинский: Сколько времени нужно учиться на программиста-джуна?

Самый честный ответ будет: учиться программированию нужно всю жизнь. Выбирая ИТишнутю профессию, вы никогда не сможете сказать, что в рамках своей профессии знаете все, даже через 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 месяцев обучения.

Всегда ваш Сергей Немчинский.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *