Эту историю попросил рассказать меня мой знакомый, так как очень хотел сохранить анонимность. Далее будет напрямую с его слов:
Здравствуйте, меня зовут Игорь и я разработчик.
Такими словами обычно начинают стендапы в клубе анонимных алкоголиков. И сегодня я пришёл сюда, чтобы рассказать вам о моей зависимости. Может это и не зависимость даже, а вполне нормальное поведение. В любом случае я хочу вынести это на ваш суд. Итак, вот моя проблема: я очень хорошо прохожу собеседования на позицию старшего разработчика и соглашаюсь на эти собеседования раз в месяц, если меня приглашают. Звучит не очень впечатляюще? Насколько хорошо я прохожу собеседования? Последние шесть собеседований я прошёл с лёгкостью и по результату каждого из них получил оффер. А если сложить предложенные суммы ЗП из этих офферов, то получится сумма немного превышающая 21 тысячу евро! Конечно, на финишной прямой с потенциальным работодателем у меня устанавливается почти полное взаимопонимание, мы улыбаемся друг другу в скайпе, мне задают последний вопрос, что-то вроде: «а что тебя не устраивает на текущем месте работы, почему ты в поиске?». И вот в этом месте я добавляю изюминку, говорю: «я не в поиске, просто мне предложили пройти собеседование, и я согласился — вдруг, что интересное подвернётся». Возможно, это моё заявление и стреляет точнее всего.
▍ Анамнез
Да. Это правда. Я не в поиске, но после выхода каждой следующей моей статьи на Хабре, ко мне стучатся новые HRы и предлагают рассмотреть вакансии. Некоторые привлекательные — широкий стек технологий или интересное направление деятельности. Некоторые меня по какой-то причине не привлекают, и я даже толком не могу сказать, почему — просто срабатывает какой-то внутренний сигнал, который говорит мне, что «это выглядит не очень». Кроме того, у меня есть кое-какие свои принципы — такие вещи, как «блокчейн», «криптовалюта» или «брокерские» продукты меня отталкивают. Ну а если выглядит неплохо и в течение недели у меня есть немного свободного времени, соглашаюсь на интервью. Несмотря на то что в моём резюме указана желаемая сумма от ХХХ т.р., я уже некоторое время не обращаю внимания на позиции такого уровня — ведь это почти 100% отказ с моей стороны, и я не могу позволить, чтобы уделённое с обеих сторон время оказалось потраченным впустую. Кроме того, в обязательном порядке предупреждаю рекрутера о том, что полученный оффер с уровнем ЗП, превышающим мой текущий доход, не гарантирует того, что я сломя голову побегу подписывать документы. Предложение должно быть настолько привлекательным, чтобы покрыть тот дискомфорт, который получает человек от смены места работы. Организационные и технические нюансы на новом месте, новые знакомства и прочие социальные аспекты так сложны для людей моей профессии.
Давайте немного о деньгах. Знаю, что большое кол-во людей считает, что программисты зажрались. Что такие высокие зарплаты они получают потому, что информационные технологии развиваются быстро и всем требуются программисты. И на эту тему написано уже очень много статей. А я лишь коротко скажу, что по-настоящему высокие зарплаты получают программисты, которые очень упорно над собой работают. Вы себе даже не представляете, сколько ненужной для простой жизни ерунды должен знать программист, чтобы получить оффер уровнем 150-200 тысяч рублей «на руки». Ну а те, кто получает больше полумиллиона — те уже вершат историю ИТ-индустрии. Никто в здравом уме не станет держать в голове столько ненужной для жизнедеятельности информации, если это не приносит существенного дохода. У меня не больше 5 часов свободного времени в неделю «на себя», что такое выходной день или отпуск простого человека — я не знаю. Отдыхаю от работы — у меня есть домашние проекты или очередная технология, с которой нужно познакомиться. Еду в машине — я включаю какие-то видеолекции или записи с конференций и слушаю их. А выносить эти бесконечные выгорания и обострения синдрома самозванца порой становится просто невыносимо. Ну и кроме того, как программисту отдохнуть, если он не может взять и отключить свой мозг? Рабочий инструмент программиста всегда при нём, так что от продолжения рабочего процесса «в голове» убежать сложно.
▍ Первая доза и как я подсел
Однако, я не хочу уходить от темы, и пора рассказать подробности. Некоторое время назад я работал по 12-14 часов в сутки на двух работах и зарабатывал при этом не так уж много. Официальная моя работа была на позиции fullstack в одной Датской компании. По зарплате не так уж много, но было очень комфортно работать — гибкий график, никаких отчётов, митапы один раз в неделю. Технологии, с которыми я работал, были не очень перспективными — в основном это внутренние закрытые технологии и большой опыт в этой области не будет высоко цениться вне компании. Вторая работа по договору freelance на один Японский стартап мобильного приложения. По времени эта «подработка» занимала 20 часов в неделю, но по уровню дохода была сравнима с основным местом. И вот в этом стартапе и началось моё маленькое плавание в большом море микросервисной архитектуры и других продвинутых паттернов. Команда была маленькая и получать информацию «как и что делать» было сложно. Вот тогда я вдруг понял, что для того, чтобы понимать, в какую сторону двигать кодовую базу и инфраструктуру вообще, нужно было как-то хотя бы краешком плавника прикасаться к потоку, в котором плавают профессионалы. И я стал пробоваться на разные вакансии, которые по роду деятельности подходят к тому, чем мы занимаемся. Конечно, первая пачка собеседований была провалена, но я ничего другого не предполагал, просто взял карандаш и листок бумаги и записал основные моменты, которых касались мои интервьюеры. И вот будущее нашего проекта начало вырисовываться.
Мы создали неплохую архитектуру нашего стартапа, внедрили очереди, opentracing и другие интересные штуки. Однако, началось не только технологическое развитие, но и когнитивное. И в этот момент я получил свой первый оффер с суммой зарплаты чуть более, чем мой суммарный доход на двух местах. Переход на это место освободил бы для меня 20 часов в неделю, которые я мог бы посвятить семье и дальнейшему саморазвитию. Что же я сделал? Я хорошенько погуглил информацию об этой компании, о её успехах, отзывы и прочее. И отказал. Эта компания не могла дать мне уверенности в завтрашнем дне. Я читал о том, что кандидат может отказать при получении оффера, но никак не думал, что таким кандидатом когда-нибудь буду я. Это был первый мой отказ. Необыкновенное чувство. С одной стороны, это был повод для гордости — теперь официально доказано, что я соответствую ожиданиям работодателей и двигаюсь в правильном направлении. А с другой стороны, мне не давал покоя вопрос, правильно ли я поступаю? Ведь финансовые трудности в то время всё сильнее меня прижимали, а локдаун в Японии заблокировал приток инвестиций к нашему проекту. И вот через некоторое время мне по-настоящему пришлось искать работу. Стартап в Японии закрылся, дохода с основного места работы было недостаточно для того, чтобы платить ипотеку и кредиты. Но несмотря на то что я постоянно практиковался, меня преследовали неудачи.
Правда в том, что собеседования хорошо проходит не тот, кто отличный специалист, а тот, кто хорошо проходит собеседования. Но как я ни старался, одно за другим два следующих собеседования были провалены. Я решил, что нужно расширить кругозор. Чтобы показать себя хорошим специалистом на собеседовании, недостаточно каждый день писать крутой код и деплоить его в продакшн. Конечно, у меня был кое-какой релевантный опыт, но для получения действительно хороших предложений, нужно не только понимать, как выбрать и применить ту или иную технологию, но и знать, как она работает внутри. Такие темы незаметно проскальзывали в собеседованиях в форме вопроса «а ты не пробовал разобраться, как оно устроено?» на который я отвечал, что пока не было времени и интереса. Немного погуглив, я обнаружил на YouTube несколько каналов с записями backend- и highload-конференций. И это открытие стало первой ступенькой на пути к успеху. Я включал эти записи постоянно — когда возил детей в музыкальную школу, ждал их на парковке после школы, во время обеденного перерыва и утром перед работой, когда все спали. Повторял их по нескольку раз и даже перестал их переключать, позволяя алгоритмам YouTube самостоятельно выбирать и запускать следующее видео без всякого разбора. Я узнал замечательные вещи, стал разбираться во многом таком, чего раньше даже и не знал. Стал чувствовать себя увереннее в той сфере, в которой искал работу и вот настало время снова попробовать себя. Неожиданно подвернулись три собеседования на одной неделе, а в пятницу у меня было три оффера на руках.
▍ Информационная зависимость. Не соскочить
Скажу вам правду: я реально подсел на это. Прослушивал не только те доклады, в которых рассказывают о том, с чем я конкретно работаю, но и такие, что соприкасаются с нужными в моей работе технологиями или являются альтернативой. В этих видеозаписях люди перед большой или небольшой аудиторией таких же программистов рассказывают (иногда со сцены) об опыте, полученном в решении каких-то конкретных задач. Затем я попробовал прослушать о таких вещах, которые носят чисто академический характер — теоремы, паттерны, принципы о дизайне и разработке ПО. Эти видео были записаны в студии или у себя дома. Я быстро бросил слушать таких «лекторов», так как обнаружил, что теория часто переносится с искажением, обусловленным восприятием лектора, а это уже дезинформация. По теории я накупил книг, а слушать продолжаю доклады, в которых разработчики делятся опытом, причём не только русских, но и с некоторых пор записи американских конференций “GOTO;”. Кроме того, я сам стал передавать опыт — я стал писать статьи на Хабре и в Яндекс-Дзен.
Интересное наблюдение: через два-три дня после выпуска мною очередной статьи, мне предлагают пройти 2-3 собеседования, а я иногда соглашаюсь на одно из них. На том месте, которое пришлось выбирать из трёх возможных вариантов я продержался больше полугода. Делал интересные вещи, развивался и старался передавать опыт коллегам. И вот в одно прекрасное утро я, пройдя очередное собеседование, на финише сказал, что будет сложно рассчитывать на моё согласие, потому что я уже получаю достаточно комфортную ЗП, а по задаваемым на собеседовании вопросам не вижу, что требуется кто-то высокого уровня — любой хороший middle мог их устроить. Почему-то мне показалось, что по результатам такого собеседования мне не могут сделать достаточно привлекательное предложение, от которого будет трудно отказаться. Как же я ошибся. Получив оффер, я несколько раз проверил и перепроверил предлагаемую сумму — ошибки быть не могло. И, конечно, согласился.
На текущем месте работы мы договорились о том, что я не бросаю команду. Остаюсь их «внешним союзником», продолжаю консультировать разработчиков в рамках своих компетенций, в случае необходимости за отдельную плату выполняю некоторые задачи по разработке. И как вы думаете, что произошло дальше? За 1 неделю до официального оформления в новой компании я согласился на ещё одно собеседование, а в первый рабочий день на новом месте, у меня был на руках очень аппетитный оффер в одну очень известную компанию. Горшочек, не вари! Ах, как же хотелось акцептовать предложение — в дополнение к заработной плате мне предложили пакет акций этой компании и разовый «бонус за вход» больше чем на 500 тыс. рублей. Вот тогда мне стало понятно, почему процесс поиска кандидатов называют hunting. Мы договорились, что я подумаю о предложении две недели… Через две недели я отказался от оффера, но мы сошлись во мнении, что остаёмся друзьями и у меня будет второй шанс, если я одумаюсь позже.
На самом деле я не пытаюсь тешить своё самолюбие — прекрасно понимаю, что некоторые могли так подумать. Мол, прокачался в теории, развил навыки общения, на собеседованиях чувствует себя как рыба в воде, вот и выпендривается. Нет, у меня всегда была цель. Раньше я проходил собеседования, чтобы услышать о том, какие технологии сейчас в тренде в той среде, в которой я плаваю — это было жизненно необходимо для нашего стартапа. Затем потребовалось реально найти работу. Потом я попробовал понять, каково же моё место в этой системе — среди таких же программистов — не могу ли я рассчитывать на большее (а может быть я уже достоин?). Конечно, после перехода на новое место работы у меня была уже немного странная цель — я пытался выяснить, чего же требуют от кандидата на собеседованиях, по результатам которых предлагают от 5 тыс. евро на руки. Но, какая-никакая, а всё-таки цель. И вот незадолго до Нового года…
▍ Нечувствительность к сложности собеседования
Незадолго до Нового года (после выпуска очередной статьи на Хабре) я снова получил предложение пройти собеседование в одну финтех-компанию на Кипре. Интересненько, какие требования предъявляются к разработчикам в такой компании? Что такого спрашивают на собеседовании? Я вспоминал интервью, которые с треском проваливал год назад и мне думалось, что я могу снова ощутить то опустошение, которое наполняло меня после таких провалов. Однако зарплатная вилка там превышала 5 тыс. евро, а это настоящий «челлендж» и возможность заглянуть за ширму обычных интервью и узнать-таки, что же там такого нереально-крутого спрашивают, раз не каждый разработчик может претендовать на такие позиции. Как полагается, я предупредил рекрутера, что после получения оффера я оставляю за собой право подумать день-два. И вот я прошёл это собеседование просто на пафосе.
Теперь время раскрывать секреты. Чего такого требуется знать, чтобы рассчитывать на такие вакансии? Да ничего особенного. Всё как всегда: уверенно знать особенности языка, с которым работаешь, знать, в каких случаях и какие структуры данных применять — это проявляется на онлайн-кодинге. Особенно важны навыки коммуникации — чувствуйте себя уверенно, реагируйте адекватно и задавайте вопросы. Обязательно нужно улыбаться — не выключайте камеру, если собеседование проходит онлайн. Да, я согласен, что опыт очень много значит, но его влияние не критично — я едва набираю минимально необходимый (от трёх лет) опыт работы с теми технологиями, с которыми мне приходится работать. Самое главное, что я понимаю, что это за технологии и как их применять на практике. Так что, в собеседованиях такого уровня есть только один маленький нюанс — очень часто приходится писать код прямо на собеседовании, и делается это, как правило, в блокноте, а не в вашей любимой IDE. Ну а для того, чтобы хорошо писать код, нужно постоянно тренироваться — только и всего. По факту мне показалось, что пройти это собеседование намного легче, чем те, что я раньше проваливал: по структурам данных и модели памяти не было прямых вопросов, по внутреннему устройству особенностей ЯП — тоже, но не исключаю, что всё это интервьюер мог проанализировать в контексте общих вопросов.
Да, я получил оффер на следующий день. С начала собеседования и до момента получения предложения (с предельно возможной для этой позиции суммой) прошло меньше 24 часов. Я был немного разочарован, оказалось, что на этой позиции придётся работать с блокчейном и криптовалютой. Кроме того, работают не по ТК, а через оформление ИП. Взвесив «за» и «против», я решил, что в итоге я не получу никакой пользы от перехода. Я отказался, а теперь сижу и думаю. Для чего я вообще согласился на это собеседование? Чего я ожидал? Если принимать во внимание то, что я соответствую позиции такого уровня, то зачем раз за разом соглашаюсь на собеседования, а затем отказываюсь? В свою защиту хочу сказать, что каждое следующее предложение было больше по сумме, чем предыдущее, так что возможно я просто ищу какое-то идеальное место для себя… А может, я просто хочу понять, где тот предел, за который я пока не могу перешагнуть, чтобы поработать над собой в этом направлении. В любом случае я не согласен, что это просто «понты». Однако, из всей этой истории возможно получить конкретную пользу — я могу дать совет тем, кто пытается достичь успехов в карьере ИТ. Кто считает себя амбициозным, жаждет признания и желает развиваться, но не знает как.
▍ Диагноз
Давайте подытожим. Год назад у меня был кое-какой опыт в интересуемой области (два года опыта), но стартап закрыли и я застрял в состоянии выгорания. Не был уверен в своих силах, а кроме того, приходилось работать не в той области, которую я больше всего люблю, а с закрытыми и никому не известными технологиями. Тот опыт, который я получал, нельзя было применить вовне — я постепенно деградировал. Для развития начал покупать и читать книги авторитетных авторов: Роберт Мартин, Крис Ричардсон, Кент Бек и даже попытался читать Кнута. Я заполнил своё «бесполезное» время (например, поездка в автомобиле) «полезным» прослушиванием материалов, где такие же, как я, разработчики, делятся опытом. Прошу обратить внимание на то, что я выбираю записи митапов с известных конференций (а их очень много разных), а не студийные записи каких-нибудь случайных no-name лекторов, которые рассказывают простым языком через призму собственного восприятия. Очень важно фильтровать информационный поток, а не поглощать всё подряд. Я старался читать и слушать внимательно — когда мне было что-то непонятно, я отматывал назад и слушал (читал) ещё раз. И всё! Это и был мой путь к успеху. Мне удалось получить оффер в той области, к которой я стремился, а это, в свою очередь, дало мне возможность самостоятельно получать опыт в нужной области. И вот он мой совет: не сидите в пузыре, расширяйте границы своих знаний. Недостаточно просто писать каждый день один и тот же код, каким бы хорошим он ни был.
И напоследок попробую убедить вас в том, что нужно развивать понимание всех принципов в ИТ, а не только тех, что «вам нужны» — то, что часто встречаешь у программистов с ЗП ниже рыночной. Представьте себе человека, который никогда не видел животных, обитающих за пределами его страны. Ну все мы видели в книгах жирафов, бегемотов и кенгуру, правильно? А он не видел. Вот он отлично работал с собаками, кошками, лошадьми и коровами, но даже не знал, что существует верблюд! Пришёл он устраиваться на работу в зоопарк в его родном городе, а там даже слона, может быть, сроду не бывало — одни змеи и верблюды =). Думаете этот зоопарк тоже такой же консервативный, как этот наш новый знакомый? Да там наверняка есть какие-то планы по развитию. И вот показывают нашему человеку на собеседовании картинку с кенгуру и спрашивают, что это за зверь…