Самонедообразование: как оптимизировать карьеру разработчика
Про возможности самообразования в современной ИТ-отрасли слагают легенды. Истории успеха «был курьером, окончил курсы, стал успешным программистом» можно издавать многотомными тиражами. Но является ли самообразование и курсы гарантией качественной карьеры в ИТ?
Иллюзия ИТ-карьеры
Скажу сразу и разрушу тем самым множество иллюзий: никакие курсы по обучению программированию, включая известные онлайн-платформы (GeekBrains, SkillFactory, Udemy и т.д.) неспособны подготовить по-настоящему качественного ИТ-специалиста, готового к реальной проектной деятельности.
Сегодня очень горячий рынок разработчиков: специалисты нужны всем, спрос высокий – предложений от курсов в духе «стань крутым разработчиком с высокой зарплатой» хватает.
По опыту могу сказать, что в 100% случаев любой такой «курсист» требует долгого и тщательного доучивания с учетом специфики компании-работодателя и поставленных ею задач.
Даже в случае самых одаренных людей на выходе с курсов получается максимум неплохой junior-разработчик, об обладании передовыми компетенциями говорить не приходится.
Причина – программы курсов нацелены в основном на практику и на быстрый результат. Слушатель выходит оттуда без фундаментального понимания принципов работы языка, работе с которым его обучали.
Магическое мышление
Почему так происходит?
Качественное академическое образование в области computer science дают в вузах, а не на курсах. Его роли в становлении ИТ-профессионала никто не отменял. Возможно, 90% из этих знаний напрямую использовать в своей деятельности специалист не будет. Но! Он будет четко понимать, как устроены ИТ и как они работают в комплексе.
Это существенно облегчит понимание того, откуда у возникающих по ходу работы проблем «растут ноги» и как их правильно решать. Человек, который лишь прошел курс по Java– это программист с «магическим мышлением». Ему показали: делай так – получишь определенный результат. И всё. Шаг влево, шаг вправо – и он уже потерялся, он не понимает, к чему такие движения могут привести, и самое главное, почему получается тот или иной результат.
В условиях, когда вузы не могут динамично и гибко менять свою программу под реалии рынка, существование различных курсов – это, скорее, благо. Они обеспечивают массовость процесса ИТ-образования на начальном уровне. Но носят, при этом, лишь вспомогательную роль. Заменить полноценное образование, а самое главное – этап накопления полноценного профессионального опыта – они не могут.
Кровавый enterprise vs. уютный стартап
Где его можно сегодня получить?
Разработчику сегодня в качестве карьерных сценариев имеет смысл рассматривать работу в серьезных отраслевых компаниях, искать себя в многочисленных стартапах или работать в крупных ИТ-компаниях типа Яндекс, Mail.ru и т.д.
Свои особенности, плюсы и минусы есть у каждого из этих вариантов.
Что касается отраслевого сценария, то в среде разработчиков не зря существует расхожее выражение «кровавый enterprise». Оно довольно точно характеризует крайне высокий уровень стрессогенности в этой сфере, обусловленной проектным подходом к разработке.
Проект – это всегда работа с заказчиком, который склонен менять свои требования прямо по ходу реализации. Заказчики не смотрят на задачу формализованно, как ИТ-профессионалы, они просто хотят закрыть некую потребность, и у них может быть своеобразное понимание конечного результата работы.
Стартапы и профильные ИТ-компании реализуют не проекты, а работают над продуктами. Навязанных извне сроков в такой работе у программиста нет. Если, допустим, тот же Microsoft делает себе Microsoft Office, то он потратит на него столько времени, сколько позволят внутренние ресурсы - хоть 10 лет.
Конечно, в такой работе тоже есть контроль, сроки, ответственность – но если внутренний заказчик понимает, что разработчики действительно делают какую-то классную новаторскую штуку, то для них будут созданы максимально комфортные условия труда, чтобы на выходе получить хорошо продаваемый продукт.
В стартапах можно до определенной степени игнорировать требования пользователей продукта касательно его свойств и качеств, развивая свой собственный взгляд на то, что и как должно работать в итоге.
Программисты при таком подходе находятся в тепличных условиях и могут в комфорте «играться» с различными технологиями и инструментами до тех пор, пока из этой игрушки не получится что-то очень интересное, с wow-эффектом и бизнес-ценностью.
В стартапах и продуктовых ИТ-компаниях гораздо больше свободы творчества. Да, иногда приходится работать за идею, а не за деньги, но это будет ваша идея. В enterprise придется развивать исключительно чужие идеи.
С другой стороны, работав enterprise хороша тем, что позволяет в сжатые сроки пройти своего рода экстремальное обучение, стресс-тест. Если удается выжить в этой среде, то работа во всех остальных типах компаний будет восприниматься как максимально комфортная и спокойная.
Командный подход
Единственное необходимое условие для того, чтобы реализоваться, разработчик с любым образовательным бэкграундом обязательно должен на начальном этапе поработать в команде. Самообразование, если заниматься им годами без практического командного опыта, приводит к очень сильной фрагментации знаний.
Самоучки вместо применения типовых решений, сокращающих время на решение задачи, склонны изобретать собственный «костыль» в коде, с которым далее мучаются пользователи или коллеги.
Самостоятельно подобные лакуны знаний на 100% заполнить крайне сложно и маловероятно.
Если разработчик долго варился (или продолжает вариться) «в собственном соку», он не сможет увидеть структурные пробелы в своей логике и в подходах к написанию кода. Просто потому, что тяготеет к тем привычным и комфортным решениям, а не к тем, которые являются оптимальными в ИТ сегодня.
В команде же – пусть и неявно – все друг друга дополняют и обучают, формируя целостное видение, основанное на опыте и наборе актуальных практических навыков.
Директор по технологическому развитию компании «АйДи – Технологии управления» Дмитрий Рогов