Pull to refresh

Рецепты: как преодолеть ступор при собеседовании на Backend Developer?

Reading time 8 min
Views 11K

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

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

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

Этап 1. Первое общение с HR

Данный этап обычно проходит спокойно. Общие вопросы о вашем опыте, об ожиданиях, об интересе к вакансии. Самый безопасный в плане вероятности возникновения ступора этап. И даже если на пару секунд зависните - не страшно. 

Ситуация: стресс может возникнуть, если речь идет о вакансии с требованием иностранного языка. Если у вас в резюме указано владение английским - у вас могут что-то на нем спросить и попросить на нем же ответить. Без практики это однозначно может вызвать ступор.

Рецепт: если вы рассматриваете вакансии с иностранным языком, перед созвоном (и перед описанным ниже этапом “soft skills”) проговорите ответы на общие вопросы вида “чего вы ожидаете от будущего места работы, какие качества коллег для вас имеют значение”. Если вы знаете язык, но мало практиковались - разминка спасает от ступора.

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

Этап 2. Оффлайн-тест

Вы поболтали с HR и вам предложили пройти небольшое тестовое задание на пару часов. Задачи, немного теории. Казалось бы, с чего тут может возникнуть ступор то?

Ситуация: вы запускаете приложение с тестом, видите тикающий таймер, и перед глазами пелена.

Рецепт: на этот случай он у меня один (помимо очевидных, вида “кофе заварите заранее”)
- Перед тем, как приступить к тесту - решите несколько алгоритмических задачек на своем языке программирования. Просто чтобы набить руку и размяться. Обычно на офлайн-тесте время ограничено, и задачу, которую вы 100% решите, вы можете не успеть решить достаточно быстро.

Этап 3. Теоретические вопросы по основам

И вот она, встреча с интервьюером лично.

Первое, что нужно помнить: теоретические вопросы по основам однозначно будут. Иногда даже самые банальные и базовые. Иногда не так страшен сложный хитрый вопрос, как вопрос: “что такое HTTP”. Вот тут и появляется он - леденящий душу батюшка ступор. Голова пустая, только пульсирует мысль: “Но я же знаю, я постоянно работаю с HTTP, это вообще основа всей моей работы, почему я не могу сказать ни слова…”. И долгие секунды вы смотрите на интервьюера в шоке сами от себя.

Итак, рецепты:

  1. Не бойтесь этого. Вы правда можете забыть определения и формулировки самых базовых вещей. Это часто встречается, посмотрите, к примеру, статью “квадрант компетентности”. Этот случай я отношу к “неосознанной компетентности” - когда знание уже впиталось в "подкорку": вы на уровне рефлекса умеете с этим работать, но сформулировать вслух сложно. В такой ситуации помните: забыть что-то базовое на собеседовании - это ожидаемо, и при стрессе случается даже у лучших. Эта мысль зачастую помогает успокоиться в момент первой паники.

  2. Но ответ таки нужно дать. Скажите интервьюеру что-то в духе: “Так, я не могу слету вспомнить красивое академическое определение, потому буду говорить своими словами”. И начинайте говорить все свои ассоциации. Вы уже не вспомнили идеальное определение, так что настало время для неидеальных. И скорее всего вы скажете все более менее правильно.

  3. Воспользуйтесь помощью аббревиатуры, если она там есть. Попробуйте её расшифровать. На примере HTTP: “Хипер-текст трансфер протокол…” А-а-а, трансфер протокол, точно! И понеслась. Мозг заработал, ступор побежден.

  4. Иногда вы на самом деле не знаете ответа на вопрос, впервые видите какой-то синтаксис или никогда не читали о каком-то базовом понятии. Даже ассоциаций никаких нет. Такое тоже может случиться. Решение - скажите об этом прямо как есть. “Если честно, я не знаю. Вообще, даже ассоциации никакой не приходит.” Это как минимум сэкономит всем время и покажет вашу честность и умение признавать свои пробелы (первый шаг к решению проблемы - её признание, помните?). А как максимум - интервьюер подкинет еще пару смежных понятий, и окажется что вы таки понимаете о чем речь и сможете вполне прилично ответить.

Примечание: Кстати, именно там, где я поначалу словила ступор на вопросе “что такое PHP-FPM?” мне в итоге сделали отличный оффер на backend девелопера со стеком PHP+Golang. Видите, не так страшен волк, как его малюет наше паникующее сознание.

Этап 4. Лайвкодинг

Раньше это была самая страшная для меня секция. Что может быть хуже - ты отлично рассказал о своем супер-опыте, теория отскакивала от зубов, но вот тебе дали задачу, ты один на один с кодом и… Не можешь написать ни строчки. Дальше мрак и паника, “они решат, что я дилетант, дно, чсв-теоретик который на самом деле ничего не умеет…”

Но это чушь. Вы совершенно точно, 100% умеете писать код и уже это делали. Единственная причина, почему вы не можете написать ВООБЩЕ ничего - стресс и ступор.

Мои рецепты преодоления стресса на лайв-кодинг секции:

  1. Не можете написать ни строчки? Напишите пару символов. Объявите переменную. Голова боится, а руки делают. Это поможет преодолеть первую панику, погрузит вас в привычную вам сферу - написание кода.

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

  3. Скажите интервьюеру прямо: “Буду решать маленькими шажками поэтапно. Возможно, в процессе реализация поменяется полностью.” Интервьюер, скорее всего, и так не против, но вам это поможет побороть очень опасную и совершенно необоснованную мысль: “а вдруг я начну писать дичь, вот позорище, меня посчитают идиотом…” Но вы предупредили, что можете начать писать дичь, и вообще Кент Бек и другие гиганты завещали не пытаться решать все сразу правильно, а решать маленькими шажками. Это прекрасная методология. Все в порядке.

  4. Озвучивайте. Каждое действие проговаривайте вслух.
    Свежий пример из жизни:
    Так, мне надо заполнить двумерный массив рандомными числами от 1 до 100 без повторений… Слету решение в голову не пришло (прим. помните, у нас же был ступор), потому буду писать поэтапно. Для начала, напишу цикл “for”, заполню хотя бы одномерный массив не-рандомными числами. Ага, теперь нам понадобится функция “rand”. А нам двумерный нужен был? Так, делаем вложенный цикл. Вот, супер, заполнили… А как бы теперь избавиться от коллизий… А, так надо отдельно хранить все значения, которые мы уже использовали!.." 

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

  5. Раз уж возник ступор - не пытайтесь сразу придумать самое оптимальное решение. Скорее всего, об этом вас все равно потом спросят - потом и подумаете. Но у вас будет хотя бы неоптимальное решение, с которым можно работать дальше.

  6. Бонусный пункт: кстати, с кодом вы вовсе не один на один. Интервьюер тоже в деле, и запросто может направить/подкинуть идею. Иногда это только сбивает - тут не стоит сразу бросаться решать его методом - так можно снова впасть в ступор, лучше просто вслух проанализировать идею. А иногда стоит и прямо попросить подсказку, так и сказать: “Что-то у меня ступор, подскажите, пожалуйста, с чего начать вот тут”. Лучше спросить и хотя бы попытаться сделать, чем даже не спросить и проиграть всего-то собственной панике.

Примечание: иногда в очень серьезных статьях я видела советы вида “сначала хорошенько продумай решение, а потом начинай писать!”. Но лично мне, к сожалению, такой подход никак не помогает преодолеть ступор, а наоборот, только его усугубляет. Если чувствуете что-то похожее - попробуйте начать писать код по “пошаговому” рецепту.

Примечание 2: рецепты работают и при написании SQL-запросов. Точно так же, начинайте с обычного SELECT, постепенно добавляйте условия. 

Этап 5. Архитектурное собеседование

Казалось бы, вот оно, море, в котором мы почувствуем себя “рыбой в воде”, а то и “акулой этого бизнеса”. Сейчас то я покажу свой скилл в построении распределенной архитектуры, выборе хранилищ и знании паттернов систем пакетных вычислений!

Вам говорят: “Спроектируйте простенькое приложение по загрузке и обработке csv-файлов пользователя, где он хранит данные о своих покупках за месяц.”

Не вопрос! Очереди, распределенные хранилища, шарды, реактивная архитектура… 

Интервьюер: “Так а как пользователь файл загрузит то?..”
Все в мире: через форму на сайте методом POST!
Вы: … (тут начался ступор)

Это абсолютно свежий пример из жизни. Я то думала, что от меня ожидают верхнеуровневых определений и в целом перечисления всего, что бывает. И простой жизненный вопрос сбил с толку.

Рецепты преодоления ступора следующие:

  1. Выкиньте из головы мысль, что вам нужно предусмотреть сразу все. Это только застопорит вас. Представьте, что вам просто надо сделать самую простую базовую фичу на одной физической машине, и начинайте говорить, можно попутно рисовать модель на бумажке. А уже после вопросов интервьюера вида: “А где хранить, а как снизить задержку, а обеспечьте доступность, масштабируемость, отказоустойчивость и т.д.”, - добавляйте элементы.

  2. А если не знаете - не страшно. Предполагайте и предлагайте. Помните: архитектура, не смотря на то, что, казалось бы, каждый чих покрыт паттерном, методологией и готовым решением - это все равно более стратегический вопрос. Единственно правильного решения архитектурной задачи НЕТУ. Все зависит от конкретного сервиса, требований, возможностей бизнеса и т.д. Знать всё - невозможно. А вот предполагать - это нормально, может именно этого от вас и ждут.

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

Этап 6. Софт-скиллз (или общение “за жизнь, опыт и планы”)

Обычно в этом месте уже идет знакомство с командой, обсуждение планов на будущее. И тут вам больше не нужно “пройти дальше во что бы то ни было”. Тут вам следует самому понять, хотите ли вы идти дальше именно с этой командой. 

Этот этап я для себя называю “Обоюдные смотрины”. Теперь не только вас оценивают, тут уже и вы решаете, подходят ли вам эти люди, сможете ли вы с ними плодотворно работать и развиваться. И именно такое отношение помогает преодолеть любой ступор.

Примечание: вы, разумеется, также оцениваете команду на всех этапах, но на мой взгляд именно этот этап - ключевой.

Да, тут все равно может попасться вопрос, который собьет с толку, на который не будет ответа. 

Примеры:

  1. “А вспомните последнюю конфликтную ситуацию на работе”. Что думает паникующий мозг? “Как правильно ответить, что они хотят услышать, а если я расскажу про тот случай, когда мы на повышенных тонах спорили в переговорке за лучший паттерн…” 

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

  2. Еще одна ситуация, которая может вызвать ступор. Интервьюер: “Теперь наша очередь отвечать на ваши вопросы. Задавайте!” Мозг: “Но как так то… Надо что-то спросить?..”

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

Бонусная кулстори о моих вопросах работодателю

Кому интересно - делюсь опытом. У меня недавно была эта ситуация. Я давно не собеседовалась, и настолько готовилась отвечать сама, что на вопрос “А какие у вас к нам вопросы” растерялась и еле выдала робкое “а как у вас с удаленкой, когда в офис планируете?”.

К следующему собеседованию я уже подготовилась и накидала на листочке важные для меня вопросы (карьерный рост, участие в конференциях, обучение, примеры реальных задач на последнем спринте). И к вопросу “о моих вопросах” была полностью готова. Знаете, есть у меня смутное чувство, что это сильно сыграло мне на руку как в плане того, что я и правда узнала всё, что для меня важно, так и интервьюеры узнали, чего я ожидаю. В одном из мест мой эйчар организовала дополнительную встречу с еще парой команд. И знаете что? Мои интервьюеры подготовились к моим вопросам заранее! Это было очень удивительно и приятно.

Заключение

Вот и все мои нехитрые рецепты. В данной статье я обобщила свой опыт прохождения серии интервью на позицию “Backend Developer”.

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

P.S. Это моя проба пера на Хабре, надеюсь на понимание и по возможности фидбек.

Tags:
Hubs:
+8
Comments 24
Comments Comments 24

Articles