В программисты я пойду, пусть меня научат!

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

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

Сейчас в IT набирают популярность технологии, использование которых должно основываться на теоретической базе. К таким можно отнести:

  • машинное обучение;
  • науку о данных;
  • криптографию;
  • нейросети.

Если же человек уже имеет за плечами опыт работы в другой сфере и хочет стать айтишником, то тут мы рекомендуем начать со смежной области, а не бросаться сразу изучать языки программирования. Самый простой вариант ―  изучить верстку,  QA, либо начать с менеджера по управлению IT-проектами. Таким образом, можно плавно погрузиться в область IT-разработки, а потом уже учиться на программиста.

Где искать информацию?

Сейчас очень много низкосортной информации, на которую не стоит особо обращать внимание. Для получения общего представления рекомендуем книги: 

  • Мэтт Зандстра «PHP: объекты, шаблоны и методики программирования» (Вильямс, 2019);
  • Роберт Мартин «Идеальный программист» (Питер, 2019)
  • Чад Фаулер «Программист-фанатик» (Питер, 2019)
  • Мартин Фаулер «Рефакторинг. Улучшение проекта существующего кода» (Диалектика, 2019)
  • Скотт Чакон, Бен Штрауб «Git для профессионального программиста» (Питер, 2018)

Что касается курсов для программистов (GeekBrains, Яндекс.Практикум, Нетология, SkillBox и др.), то тут мы не откроем Америки если скажем, что курсы подходят не всем. Помимо очевидных причин ― неподходящего формата подачи, неготовности самостоятельно выстраивать процесс обучения, нехватки времени и других ― есть еще одна, наш взгляд, ключевая: они не дадут 100% знаний просто потому, что ограничены сжатыми сроками обучения или методикой подачи материала. Хотя, безусловно, они могут быть полезны для освоения каких-то отдельных навыков. Чтобы выбрать подходящие вам изучайте отзывы, пообщайтесь с выпускниками ― их довольно легко можно найти в соцсетях ― посмотрите программу обучения, часто крупные онлайн-университеты устраивают бесплатные открытые уроки. 

Что делать, если нет возможности изучить все и сразу?

У многих пропадает желание погружаться в IT-сферу, потому что нужно много времени потратить на учебу, закрепить знания на практике (желательно оплачиваемой), которую не так просто найти. Но и здесь есть выход: надо найти технологию, которую можно изучить, и начать с помощью ее зарабатывать. Параллельно изучить другие технологии, повышая квалификацию и стоимость на рынке труда. И тут опять мы возвращаемся к верстке, как самой удобной технологии для старта в IT. Помимо верстки можно рассмотреть для изучения какой-нибудь веб-сервис, интеграция с которым используется в различных веб-проектах. Параллельно можно изучать смежные области программирования, JavaScript-фреймворки, например, Nuxt.js.

А как у нас?

Современный программист должен уметь работать с разными инструментами. Когда мы проводим собеседование с кандидатами на должность программиста, мы не спрашиваем их, знают ли они язык PHP, правильно ли они понимают различные функции. Мы спрашиваем про умение работать с системой контроля версий, с менеджером зависимостей, с консолью в ОС Linux, с реактивными фреймворками. Другими словами, у кандидата в руках должен быть стек технологий, чтобы он успешно прошел собеседование и стал частью нашей команды.