В погоне за высокими зарплатами все больше людей по всему миру записываются на курсы по программированию. Интернет наполнили вдохновляющие рассказы свичеров о том, как они упорно учились и в итоге получили работу мечты. Но путь, который они прошли от выпуска до трудоустройства, обычно остается за кадром. Феликс Фенг решил поправить ситуацию и изложил свой опыт в колонке на Medium. Поиск первой работы занял у него три месяца. Возможно, благодаря урокам, которыми он делится, у вас получится устроиться быстрее.

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

Я закончил Hack Reactor в июле 2016 года и на получение своего первого оффера от Radius Intelligence у меня ушло три месяца. Я подал свою кандидатуру в 291 компанию, прошел 32 телефонных интервью, 16 технических собеседований, 13 кодинг-собеседований, 11 личных интервью и получил 8 офферов.

Менее 3% соискателей получают оффер

Менее 3% соискателей получают оффер

Мне предлагали зарплаты от $60 000 до $125 000 год в компаниях по всей Америке как на должность front-end-разработчика, так и на full stack. В целом, 2,8% всех моих посяганий на место увенчались успехом.

За это время я узнал на личном опыте пять нюансов, которые могли бы существенно упростить и ускорить процесс.

Обращайтесь к реальным людям

Поначалу я пытался устроиться на работу методом выстрела. Я подавался через Indeed.com, AngelList, LinkedIn, StackOverflow, Hacker News, сайты компаний и даже через Craigslist. Я претендовал на любую позицию, на которой требовали опыт в React, Node или JavaScript. В первую неделю я рассылал резюме в 15-20 компаний в день. К слову, вот репозиторий со списком IT-компаний, в которые несложно подать заявку на трудоустройство.

Результат был более чем скромный. Менее пяти процентов компаний мне отвечали. Я просто метал резюме в пустоту.

Все изменилось, когда один из моих знакомых экс-рекрутеров поделился со мной лайфхаком. Он сказал, что лучше отправлять письмо напрямую конкретным людям по каждой вакансии. Кому угодно, пока не придет ответ. С тех пор каждую компанию я пробивал по LinkedIn и писал кому-то из рекрутинговой команды.

В большинстве небольших компаний и у большинства менеджеров среднего звена формат email как правило укладывается в шаблон имя@компаниямечты.com. В больших компаниях – имя.фамилия@компаниямечты.com. Чтобы убедиться, что адрес правильный, я использовал Rapportive, в котором можно осуществить кросс-чекинг почты с существующими социальными аккаунтами.

Результаты превысили ожидания. Я послал более 150 писем и на 22% из них получил ответ. Также было приятно общаться с настоящими людьми. На удивление, иногда мне отвечали СЕО и СТО компаний и даже проводили собеседование лично.

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

Начинайте с малого и продвигайтесь вперед

Вы столкнетесь с низкоуровневыми собеседованиями (как правило, это нетехнологические компании, которым нужен какой-нибудь разработчик), где вам будут задавать тривиальные вопросы по JavaScript. Вы столкнетесь и с высокоуровневыми собеседованиями (уровня Google/Facebook), где задают сложные и вопросы по структурам данных и алгоритмам.

Я стратегически подошел к этому процессу и подгадал так, чтобы низкоуровневые собеседования у меня шли первыми, а за ними по мере возрастания все более сложные. Я постепенно приобретал опыт и уверенность в себе на простых собеседованиях, получая офферы от компаний с требованиями попроще.

Приобретая опыт, я все больше повышал планку. Я стал хорошо управляться на более сложных собеседованиях с более высокими требованиями. Ниже я проиллюстрировал процесс в виде зависимость времени, которое я посвящал собеседованиям, размеру офферов, которые мне предлагали.

Прослеживается прямая зависимость размера зарплаты от времени, затраченного на интервью

Прослеживается прямая зависимость размера зарплаты от времени, затраченного на интервью

Постепенно вопросы становились каверзнее, а зарплаты выше. И в конце концов я нашел работу, которая мне подошла.

Вывод: начинайте с более легких собеседований, а сложные оставьте напоследок.

Учитесь так, будто от этого зависит ваша будущая работа (потому что так и есть)

Не хочу вбивать вам это в голову, но самое важное на любом этапе поиска работы – учиться и готовиться. Почему? Потому что если у вас нет ответов на вопросы, которые вам зададут, оффер вы не получите. Вас не будут рекомендовать на позицию, если посчитают неподготовленными к собеседованию.

Закончив Hack Reactor, я точно знал свои слабые стороны – структуры данных и алгоритмы. В исследовании Triplebyte говорится, что студенты курсов, как правило, слабее усваивают эти разделы, чем студенты вузов. Чтобы заполнить пробелы, я учился и практиковался каждый день.

Дни напролет я корпел над сортировочными алгоритмами. В другие дни я изучал принципы работы интернета. Я не полностью понимал суть, поэтому целый день смотрел видео на YouTube или копался в StackOverflow, пока не врубился.

Если у вас на носу интервью, и вы не чувствуете себя достаточно подкованными, вот список материалов, которые лично мне очень помогли:

  • InterviewCake: мой любимый ресурс про структуры данных и алгоритмы. В нем решения разбиты на пошаговые разделы – отличная альтернатива Cracking the Code Interview (CTCI). Единственный недостаток – у них маловато задач.
  • HiredInTech’s System Design Section: отличное руководство по вопросам о системном дизайне.
  • Coderust: если CTCI вам вообще не заходит, то Coderust 2.0 может понравится. За $49 вы получите решения практически на любых языках программирования с интерактивными диаграммами.
  • Как подготовиться к техническому собеседованию на Reddit: Здесь я постоянно проверял, насколько готов к очередному собеседованию.
  • Front End Interview Questions: Изматывающий список вопросов по front-end.
  • Leetcode: Источник вопросов по алгоритмам и структурам данных. Фильтровать их можно по компаниям, например, можно вывести список вопросов, которые часто задают в Uber или Google.

Вывод: Подготовки не бывает много.

Лучшее – вперед

Тяжело прорваться в эту индустрию. Нужно хорошо справляться, даже если ваша подготовка неидеальна. Чтобы преуспеть, нужно самому себе стать адвокатом.

Продавайте себя

В Hack Reactor мы учились маскировать отсутствие опыта. Для своего же блага, мы не афишируем тот факт, что проходили курсы. Почему? Потому что компании сразу запишут нас в джуниоров или навесят ярлык “недостаток опыта”.

На интервью с одним стартапом все пошло на юг, как только стало понятно, что я выпускник курсов. В другой компании из-за этого мне предложили $60 000 в год, потому что младшим разработчикам больше не положено.

На самом деле вам нужно убедить работодателя в том, что вы можете выполнять порученную вам работу. В то же время, неплохо бы убедить в этом себя.

Вы можете. Сконцентрируйтесь на вашей любви к программированию. На том, что вы уже построили на React и Node. На демонстрации своих глубоких познаний в JavaScript и других языках, которые вы изучали. Только после этого они могут определить степень вашей компетентности.

Это двусторонний диалог

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

Не стесняйтесь использовать собеседование, чтобы оценить, какие возможности они готовы предложить. Я общался с каждой компанией, даже если меня мало интересовала их вакансия. У меня были личные собеседования с работодателями по всей стране – со всеми, кто меня приглашал. Я задавал вопросы и извлекал знания по организации инженерных команд, технологиям и инструментам, которые они используют, вызовам, стоящим перед компаниями, их системной архитектуре.

В ходе собеседования обязательно задайте такие вопросы:

  • С какими техническими проблемы вы сталкивались за последнее время?
  • Что лично вам нравится в работе на эту компанию?
  • Как структурированы команды и как обычно распределяют задачи?

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

Вывод: Не спешите себя продать задешево! И помните, это взаимное ознакомление.

Это марафон, а не спринт

Данный путь непрост во всех смыслах. В течение трех месяцев я вкалывал по шесть дней в неделю. Но и заботиться о себе не забывал.

Так мог бы выглядеть типичный день на JavaScript

Так мог бы выглядеть мой типичный день на JavaScript

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

В процессе очень легко выгореть. Поэтому хорошо кушайте, высыпайтесь и занимайтесь спортом. Вы можете заскучать. Поэтому побольше общайтесь с друзьями, которые идут с вами по тому же пути.

Вывод: приготовьтесь к долгому забегу и убедитесь, что сможете о себе позаботиться.

Процесс может показаться бесконечным, но вы справитесь. Продолжайте заниматься. Продолжайте рассылать резюме. Продолжайте заботиться о себе. Рано или поздно это окупится.