Куда пойти работать джуниор-разработчику
С первым местом работы мне повезло, хотя я просто пошел, куда взяли. Сейчас понимаю — если бы ошибся, то потерял бы бесценное время. Прошло 15 лет, и я сам руковожу компанией, куда приходят собеседоваться джуны. Их критерии выбора такие же легкомысленные, как у меня когда-то. Поэтому я расскажу о том, какие бывают it-компании, и как проходить собеседования, чтобы потом ни о чем не жалеть.
На фундаментальном уровне всю отечественную digital-индустрию делят между собой три типа компаний. Конечно, встречаются представители, которые совмещают в себе разные черты и находятся на своеобразном стыке, вроде IT-отделов банков, но о них я здесь говорить не стану.
Итак, поехали:
1. Продуктовая компания
При упоминании IT у людей, не связанных с этой сферой, перед глазами всплывают гиганты из Кремниевой долины вроде Майкрософт и Эппл. Крутые офисы с гамаками, бесплатным кейтерингом, спортзалом, массажистами и неиссякаемыми запасами смузи — именно так им видится работа в техсфере. Всё это верхушка айсберга, которую мы знаем благодаря сериалам, блогам и публикациям в СМИ. Самые яркие представители в России — компании из экосистемы Яндекса, лаборатория Касперского, Mail. ru Group и другие. Объединяет их то, что они разрабатывают востребованный цифровой продукт для конечных пользователей. Отсюда и название.
Какие только офисы не встретишь
Помимо крутого офиса, продуктовые компании привлекают своим творческим духом. Здесь возможна работа по настоящему аджайлу с сертифицированным скрам-мастером и сопутствующими ритуалами вроде грумингов бэклога, стендапов и ретроспектив. К плюсам относят гибкий график — от вас не потребуют ходить к четкому времени, а физическое присутствие возможно потребуется только на упомянутых митингах.
Среди недостатков принято выделять багфиксинг и поддержку легаси, но джуниор-разработчику не стоит об этом переживать, потому что в хорошую продуктовую компанию невозможно попасть с нуля. Разработка ведется в сильной зависимости от рынка и требует быстрой проверки гипотез, а для этого нужны программисты с большим опытом. Ведь чтобы держаться на плаву, продукт должен быть лидером на рынке, следовательно, качественным, поэтому нянчиться с джунами здесь не станут.
По стечению обстоятельств джуниор-разработчика могут взять в стартап, но большинство таких компаний умирают, не дожив до запуска MVP. В один день компания не получит очередной раунд инвестиций, вы и латте допить не успеете, как на дверь офиса повесят амбарный замок. Примеров этому масса — компания, которой мы расширяли IT-отдел, внезапно не получила денег от купившей её Mail. ru Group и закрылась. Даже опытному специалисту не очень приятно внезапно оказаться на рынке труда, что же говорить про джуниоров.
2. Аутсорс-продакшн
В отличии от продуктовых компаний, продакшны занимаются заказной разработкой для клиентов. Здесь проекты разного масштаба, типа и сложности — сегодня вы делаете онлайн-магазин, а завтра — мобильную игру. Программирование для продакшнов — ключевая компетенция, поэтому большинство сотрудников будут вместе с вами писать код. Программисты занимают разные должности по вертикальной структуре: есть техдиры, архитекторы, тимлиды, аналитики, тестировщики.
Сюда реально попасть без опыта коммерческой разработки. В продакшнах бывают собственные программы обучения, наставники, внутренние аттестации. Для молодого специалиста составят индивидуальный план развития с чекпоинтами и выделят ментора, который будет проверять все коммиты, проводить код ревью и подсказывать лучшие практики. Поначалу вас посадят на несложный проект, скорее всего, это будет техническая поддержка существующего ПО. По мере роста компетенций вам начнут доверять вещи посерьезнее.
В конечном итоге продакшн продает часы разработчиков, поэтому времязатраты по каждой задаче должны быть абсолютно прозрачными. В таких компаниях принято вести строгую систему отчетности — долго медитировать над задачей не позволят.
Некоторые аутсорсинговые компании работают по аутстаф-модели, это значит, что продавать будут не ваши часы, а конкретно вас, подобно тому как плантаторы продавали негров клубы продают футболистов. Это может сильно деморализовать.
3. Digital-агентства (aka веб-студии / веб-интеграторы)
Digital-агентства работают по принципу «одного окна» — клиент приходит сюда с каким-то запросом по развитию бизнеса. Агентство может заниматься созданием концепции бренда, выстраиванием системы интернет-продаж, графическим дизайном, айдентикой, продвижением, маркетингом, консалтингом, разработкой и внедрением ПО. Такая компания может предлагать все услуги из этого списка, а может работать только по двум-трём направлениям, а остальные отдавать на аутсорс.
Во главе угла здесь клиентский сервис, поэтому digital-агентства умеют работать с крупными заказчиками. Работа над проектом для известного бренда — хороший повод похвастаться перед друзьями в баре. Но у этой медали есть и обратная сторона — агентства стремятся выстраивать долгие отношения с клиентами, и не исключено, что по условиям тендера придется сидеть на техподдержке одного проекта годами.
Внутри компании вы будете работать бок о бок не только с программистами, но также с менеджерами, дизайнерами, тестировщиками. Находить общий язык придется не только с коллегами — вас также будут брать на переговоры со стейкхолдерами из финансового и маркетингового отдела заказчика. В результате soft skills будут неизбежно улучшаться.
Уровень hard skills тоже повысится при условии, что в компании стабильный стек технологий и есть время в них углубиться. Главное, чтобы в команде были более опытные разработчики. Дело в том, что российские агентства любят делать вид, что все работы ведутся инхаус и заявлять о 25 штатных разработчиках, а на самом деле иметь только 5 менеджеров и отдавать почти всю работу на фриланс низкого качества. Или, если речь идет о компаниях специализирующихся на SEO, то стек будет очень разнородным и углубиться ни в одну CMS или фреймворк не получится.
Про недостаток работы в IT
Независимо от типа компании, вы неизбежно столкнетесь с переработками. Перед вами будут ставить несдвигаемые дедлайны, вся разница только в том, кто определяет сроки. В заказной разработке это стейкхолдеры, а в продуктовой — инвесторы. Все чем-то рискуют — агентства и продакшны беспокоятся о своей репутации, стартап боится не получить следующий транш инвестиций.
Об этом не принято говорить, на собеседовании этот момент постараются сгладить или вовсе умолчать о нем. Некоторые работодатели маскируют овертаймы всевозможными «плюшками» — к примеру, содержат менеджеров по счастью, которые должны развлекать программистов, а также раздают стейки на ужин и развозят сотрудников по домам на такси.
Дело в том, что в жизни любой компании наступают моменты, когда скорость становится важнее результата, и требуется понизить качество, чтобы все успеть. Можно ныть, что компания — галера, а кругом неэффективные менеджеры, но разработка ПО по своей природе — стрессовое занятие. Будьте к этому готовы.
Куда идти и как проходить собеседования
Если вы в первую очередь программист, и не видите себя в управлении, то лучше всего идти в аутсорс-продакшн, так как в крутой продукт федерального масштаба вас всё равно не возьмут. Если хотите руководить процессами и общаться с людьми, то идите в агентство.
Снеки, настольные футболы и плейстейшены в офисе не должны быть решающим фактором при выборе первой компании. Намного важнее понять, дадут ли вам расти на новом месте. Поэтому перед собеседованием посмотрите сайт работодателя, чтобы определить, какой у него портфель услуг, кто типовой клиент и какие технологии используются. Изучите страницы в соцсетях, чтобы понять, подходит ли вам корпоративная культура.
Перед техническим собеседованием настройтесь на то, что придется выполнить небольшое практическое задание. Не переживайте, если не будет получаться — в первую очередь здесь смотрят на ход ваших мыслей, главное не молчать. Не спешите радоваться, если вопросы легкие — возможно в этой компании вы быстро достигнете потолка.
Не стесняйтесь спросить у эйчара, будет ли наставник и план развития, как будет меняться зарплата в первый год, какими задачами будете заниматься первые три месяца.
И помните, невозможно стать крутым разработчиком только на рабочих задачах, нужно постоянно вкладываться в саморазвитие, читать книги и разбираться с инструментами в свободное время. Всё обязательно получится.