Сынок, запрыгивай в вагон, я закину чемоданы! Экспресс-вход в индустрию, когда почти прошел мимо
Когда-то я рассказывал как шел к Java-программированию и прошел мимо. Теперь расскажу почему вернулся, поднял, почистил и пользуюсь. Это не еще один восторженный опус про смену специальности. Скорее логическое продолжение первой статьи с наблюдениями, которые пригодились бы мне из прошлого. Может, пригодятся и тем, кто находится на перепутье сейчас.
Как нормальные люди собираются на поезд? Приезжают на вокзал заранее, успевают выпить кофе, посидеть в массажном кресле. Спокойно сверяются с табло и идут к перрону чуть заранее, одними из первых попадают в вагон и болтают о всяком пока ждут отправления… Ну или так, как это описано в заголовке — отличная иллюстрация моего подхода к жизни в целом, и к смене специальности в частности.
В предыдущей серии упоминалась такая бодрая цель:
Начинать все сначала решил с планом в голове и достойной целью перед глазами. Рассудил очень просто: хочу собственный дом подальше от города, и чтобы не к старости. То есть, за ближайшие 5 лет надо бы им обзавестись без ипотеки.
Нет, дом так и не купил — пока что обзавелся только квартирой, и не сказать чтобы в центре, и вообще скорее повезло. Когда перечитал те планы 4-летней давности, посмеялся и смахнул скупую слезу от "стабильности" окружающей локации. Планы-то теперь тоже поменялись, так что мой дом просто ждет меня где-то за пределами страны возможностей.
… если вы понимаете о чем я
Сейчас я вполне состоявшийся 35-летний middle Android-разработчик в крупном и вполне хипстерском финтехе. За плечами около 3 лет профильного опыта, работа в 4 компаниях и печальный скепсис к скрамам и аджайлам. И так вышло, что уже через пару лет я проводил технические собеседования, где лишний раз убедился в правильности выводов об устройстве индустрии.
Онлайн-курсы действительно работают, но есть нюанс
Нет, не те что обещают мешок денег через пару недель. Я говорю о серьезных проектах, занимающих вас по полной чуть ли не на год и дающих массу полезных сведений, не связанных напрямую с разработкой. Обойдемся без рекламы, вы и так всех основных игроков знаете.
Нужно понимать что прохождение подобных курсов — это практически полноценная работа, которая отожмет вас досуха и до состояния "поспать лучше чем кино". При этом, вы по-прежнему будете хотеть кушать, хоть иногда отдыхать, и в целом вести плюс-минус привычный образ жизни. Все это означает параллельную работу по какой-то уже известной вам специальности.
Пол года на новой работе мне приходилось параллельно вести предпринимательскую деятельность: писать статьи, ездить по заказчикам, нанимать авторов и т.п. Потом произошло первое повышение зарплаты, которое сняло львиную долю всей этой головной боли. Но свободного времени от этого больше не стало, просто появился еще один рабочий проект, а ИП закрылось.
И тут надо смириться с тем, что частенько вы будете не дорабатывать там, где вам уже платят деньги. Эти недоработанные часы уйдут на прохождение курсов и самостоятельное обучения. Но карма потом возьмет свое, когда получите первую работу по новой специальности: платить будут мало, а работать будете как никогда в жизни.
Нет никакого смысла знать побольше аббревиатур из вакансий
Всегда найдется десяток (если не сотня) конкурирующих джунов (Junior developer), полиставших на 20 мануалов больше вас, и добавивших еще десяток фреймворков просто для массовки. Потому что про них скорее всего не спросят, а резюме так выглядит "жирнее".
Кроме того, джуна нанимают из соображений получить в перспективе неплохого и супер-лояльного разработчика по цене сильно ниже рынка. Да, есть риск что ничего толкового не выйдет и компания просто потеряет на этом товарище время. Но на то есть риски и дополнительный дисконт к окладу. И ни один вменяемый тимлид или руководитель разработки не будет ожидать от вас устойчивых знаний по актуальным платформам и фреймворкам. Они ищут толковых людей с устойчивыми базовыми навыками разработки, огнем в глазах и шилом где положено.
Поэтому лучше потратить время на прокачку навыка самопрезентации и полировку работы с базовыми SDK выбранной платформы (в моем случае это был Android SDK). Из двух джунов выберут не того, кто лучше помнит "алгоритмы и структуры данных", а того, кто больше запомнился и произвел лучшее личное впечатление.
Одно из моих первых "пристрелочных" собеседований было сущим позором — я вдруг забыл половину собственного проекта (игра по типу "2048"); начал путать хоткеи IDEA, когда меня попросили исправить тестовый код. Но обиднее всего было ответить лишь на 2 технических вопроса из 10, да и то "жиденько". Это было больно, позорно, но очень наглядно. И чтобы совсем вас добить, скажу что это сразу был собес в компанию с буквой "Я".
Но если что-то нас не убило, то точно сделало сильнее. Поэтому составляем список всего, что спрашивали на собесе, и планомерно читаем. Но важно не столько запомнить ответ, сколько увидеть причинно-следственные связи, и убедиться в их понимании на примере в коде.
Джунов не должны нанимать слишком легко
Ажиотаж на профессию привел к тому, что джунов на рынке можно грузить лопатой и нанимать килограммами. Соответственно, конкуренция во все более-менее нормальные компании просто огромна. Помножьте это на отсутствие работы в регионах и популяризацию удаленки. Любой, кто предлагает вам оффер после первого же собеса и без дополнительных проверок/условий скорее всего планирует закрыть джуном какую-то дыру. В лучшем случае, получите часть обещанной ЗП; в худшем — будете работать на домашнем ноутбуке, а вместо зарплаты получать "бесценный опыт".
На моей первой работе программистом одним из условий оффера было совмещений обязанностей копирайтера со знанием английского. Это была та самая "страховка", которую работодатель приобрел для минимизации потерь если бы проку из меня не вышло. Однако, никаких текстов от меня ни разу за год работы не потребовали. Видимо, всех все устроило.
Первая работа Джуна должна быть все же работой, а не практикой студента. Поэтому важно добиваться максимально приятных условий и зарплаты, особенно если вы чувствуете взаимный интерес на собеседовании.
Частые смены работы — это хорошо
Несмотря на популярную в HR-кругах теорию о том, что меняющий работу чаще чем раз в N лет ненадежен и нежелателен, в ИТ индустрии это норма. Более того, средняя продолжительность работы разработчика в организации — около 2 лет. Значит, что кто-то работает 4 года, а кто-то — 6 месяцев. Пруфы привести не могу — это комментарии знакомых HR-специалистов, подтверждающие собственные наблюдения.
У меня трудовая книжка уже с двумя вкладышами, так что будем считать такую позицию моей личной "деформацией". Однако, периодическая смена мест работы даст вам следующие преимущества в период прокачки себя как специалиста:
- Смена контекста применяемых технологий и методик разработки. Работая 5 лет на одном предприятии, вы никогда не составите свое мнение о том, как лучше работать над задачами, какие паттерны не работают, и где та граница, за которой абстракции в коде превращаются в бессмысленный оверинжиниринг.
- Работа в одном и том же коллективе не позволит составить собственное мнение о том, какие условия для вас действительно комфортны. Поработав в стартапе из 14 человек, и в огромном банке, я понял что больше не готов сидеть в опен-спейсе на 30 человек со всей России. Слишком разное у людей представление о приемлемом поведении в подобных условиях.
- Может оказаться, что при всей крутости проекта вас будут каждый день раздражать отсутствие чайника и ресепшена. То есть, всякие простые вопросы вроде "нужна тетрадь" или "нужно отдать ноутбук в ремонт" будут порождать целый квест с вами в главной роли. В то же время, отсутствие кофе-машины легко нивелируется покупкой маленькой ручной Wacaco (не сочтите за рекламу, но уж очень полюбилась эта малышка).
Помню, как впервые увидел код на RxJava. Те жалкие несколько дней тыканий в Rx скудными обрывками императивного подхода до сих пор вспоминаю с улыбкой: цепочка на 20 строк, и в каждой по преобразующему оператору… еще и с созданием внешних зависимостей. Надо сказать, что Rx на первом проекте был ну очень заковыристый и всеобъемлющий — позже я ничего более мудреного не встречал. Но именно тогда родились теплые чувства к этому фреймворку, которые не отпускают до сих пор. Однако, если бы я продолжал жить тем первым проектом, то еще не скоро узнал бы что это был сложный, заковыристый, но все же сборник примеров как делать не надо.
В общем, я советовал бы не загоняться вопросом "нужно высидеть хотя бы год, иначе не получится следующий хоп".
- Если чувствуйте, что прогресс на работе остановился или серьезно замедлился — попробуйте влезть в новый проект. Если нельзя — смело меняйте работу.
- Отработали пол года и видите что за вами не нужно все переделывать, а руководство устраивает ваша работа — заводите разговор о пересмотре ЗП. Реальная инфляция на порядок выше 3%, а спрос на более-менее вменяемых разработчиков не снижается.
- Если новая работа вообще не дает прокачки навыка, и вместо этого вы занимаетесь какой-то ерундой — меняйте работу. Это не та специальность, где запись в трудовой ценна сама по себе.
Большинство собеседований одинаковые, а ваше резюме или код никто особо не смотрит
По моим наблюдениям, 8 из 10 собеседующих получили ваше резюме за 10 мин до встречи. И да, им тоже лень всем этим заниматься, поэтому вас встретят списком найденных в сети вопросов по Java\Android\подставь_что_актуально. А значит, эти списки вы можете нагуглить самостоятельно и обстоятельно их разобрать. Это прибавит уверенности на встрече и поможет лучше сыграть свою партию.
Те самые 2 человека, которые поведут собеседование необычно, подготовятся к нему и захотят разобраться в ваших знаниях, встретятся вам уже ближе к уровню "middle". Поэтому, лучше идти на собеседование без завышенных ожиданий, и с повторенным конспектом наиболее популярных вопросов. Да, тут пригодятся студенческие навыки по конспектированию алгоритмов сортировки, нотации "большой О", и всего вот этого.
Ни в коем случае не призываю воспринимать все на веру. Это лишь мои наблюдения, которые я хотел бы сам прочесть 4 года назад. Но любое утверждение можно проверить самостоятельно, а в наше короновирусное время — даже не выходя из дома. Что я точно не стал бы делать, так это слушать советы подождать "более лучшего момента, и вообще сейчас не время". Никогда не время, а через год много чего может случиться.
Точно известно только то, что вы не станете моложе.