[Интервью] Рецепты: как преодолеть ступор при собеседовании на Senior Developer?

Автор Сообщение
news_bot ®

Стаж: 6 лет 9 месяцев
Сообщений: 27286

Создавать темы news_bot ® написал(а)
11-Апр-2021 19:30

Всем привет! На днях я завершила процесс поиска новой работы на позицию Senior Developer. Я прошла множество разноплановых интервью и, разумеется, несколько раз столкнулась с главным, на мой взгляд, врагом сеньор-программиста на собеседованиях: ступором. Стресс, желание показать себя в лучшем виде, давление высоких ожиданий и требований - этот коктейль иногда вскипает. Внезапно, может даже после самого простого вопроса (ответ на который вы точно знаете), голова становится полностью пустой, вы не можете выдавить ни слова и написать не то, что строчки, а даже одного символа кода, и долгие секунды тянутся вечность, лишь усугубляя ситуацию. Звучит страшно? На деле тоже очень не приятно.Вы можете идеально подготовиться, все знать, уметь и еще сверху повторить. И вы абсолютно точно отличный специалист. Но как побороть давление ситуации и разобраться со ступором, который возник уже в процессе собеседования, когда вы с интервьюером смотрите друг на друга лично или через монитор, а от вас ждут действия?В этой статье я попыталась по горячим следам обобщить свой совсем свежий опыт прохождения интервью на позицию Senior Developer, и поделиться с вами рецептами, при помощи которых я борюсь со ступором на собеседованиях.Этап 1. Первое общение с HRДанный этап обычно проходит спокойно. Общие вопросы о вашем опыте, об ожиданиях, об интересе к вакансии. Самый безопасный в плане вероятности возникновения ступора этап. И даже если на пару секунд зависните - не страшно. Ситуация: стресс может возникнуть, если речь идет о вакансии с требованием иностранного языка. Если у вас в резюме указано владение английским - у вас могут что-то на нем спросить и попросить на нем же ответить. Без практики это однозначно может вызвать ступор.
Рецепт: если вы рассматриваете вакансии с иностранным языком, перед созвоном (и перед описанным ниже этапом “soft skills”) попрактикуйтесь - проговорите какие-то ответы на общие вопросы вида “чего вы ожидаете от будущего места работы, какие качества коллег для вас имеют значение”. Если вы знаете язык, но мало практиковались - разминка спасает от ступора.В остальном тут обычно все спокойно. Основное веселье начинается после того, как вам предложили пойти дальше.Этап 2. Оффлайн-тестВы поболтали с HR и вам предложили пройти небольшое тестовое задание на пару часов. Задачи, немного теории. Казалось бы, с чего тут может возникнуть ступор то?
Ситуация: комфортные условия, никто не наблюдает, никакого стресса… Вы запускаете приложение с тестом, читаете условие, и перед глазами пелена.
Рецепт: на этот случай он у меня один (помимо очевидных вида “кофе заварите заранее”)
- Перед тем, как приступить к тесту - решите несколько алгоритмических задачек на своем языке программирования. Просто чтобы набить руку и размяться. Обычно на офлайн-тесте время ограничено, и задачу, которую вы 100% решите, вы можете не успеть решить достаточно быстро. Тренировка тут единственный способ, на мой взгляд.Этап 3. Теоретические вопросы по основамИ вот она, встреча с интервьюером лично.Первое, что нужно помнить: теоретические вопросы по основам однозначно будут. Иногда даже самые банальные, самые поверхностные и самые базовые. Как показывает мой личный опыт - не так страшен сложный хитрый вопрос, как вопрос: “что такое HTTP” (а вы как раз не повторили точное определение!). Вот тут и появляется он - леденящий душу батюшка ступор. Голова пустая, только пульсирует мысль: “Но я же знаю, я постоянно работаю с HTTP, это вообще основа всей моей работы, почему я не могу сказать ни слова…”. И долгие секунды вы смотрите на интервьюера в шоке сами от себя.Итак, рецепты:
  • Не ~~ссать~~ бойтесь этого. Вы правда можете забыть определения и формулировки самых базовых вещей. Это часто встречается, посмотрите, к примеру, статью “квадрант компетентности”. Этот случай я отношу к “неосознанной компетентности” - когда знание уже впиталось в "подкорку": вы на уровне рефлекса умеете с этим работать, но сформулировать вслух сложно. В такой ситуации помните: забыть что-то базовое на собеседовании - это ожидаемо, и при стрессе случается даже у лучших. Эта мысль зачастую помогает успокоиться в момент первой паники.
  • Но ответ таки нужно дать. Скажите интервьюеру что-то в духе: “Так, я не могу слету вспомнить красивое академическое определение, потому буду говорить своими словами”. И начинайте говорить все свои ассоциации. Вы уже не вспомнили слету идеальное определение, так что настало время для неидеальных. И знаете, скорее всего вы скажете все более менее правильно.
  • Воспользуйтесь помощью аббревиатуры, если она там есть! Попробуйте её расшифровать. На примере HTTP: “Хипер-текст трансфер протокол…” А-а-а, трансфер протокол, точно! И понеслась. Мозг заработал, ступор побежден!
  • “Но я действительно этого не знаю…” Иногда вы на самом деле не знаете ответа на вопрос, впервые видите какой-то синтаксис или никогда не читали о каком-то базовом понятии. Даже ассоциаций никаких нет. Такое тоже может случиться. Решение - скажите об этом прямо как есть. “Если честно, я не знаю. Вообще, даже ассоциации никакой не приходит.” Это как минимум сэкономит всем время и покажет вашу честность и умение признавать свои пробелы (первый шаг к решению проблемы - её признание, помните?). А как максимум - интервьюер подкинет еще пару смежных понятий, и окажется что вы таки понимаете о чем речь и сможете вполне прилично ответить.
Примечание: Кстати, именно там, где я поначалу словила ступор на вопросе “что такое PHP-FPM?” мне в итоге сделали отличный оффер на сеньор девелопера со стеком PHP+Golang. Видите, не так страшен волк, как его малюет наше паникующее сознание.Этап 4. ЛайвкодингРаньше это была самая страшная для меня секция. Что может быть хуже - ты отлично рассказал о своем супер-опыте, теория отскакивала от зубов, но вот тебе дали задачу, ты один на один с кодом и… Не можешь написать ни строчки. Дальше мрак и паника, “они решат, что я дилетант, дно, чсв-теоретик который на самом деле ничего не умеет…”Но это чушь. Коллеги, вы собеседуетесь на сеньора. Вы уже работали программистом. А это значит, что вы совершенно точно, 100% умеете писать код. И единственная причина, почему вы не можете написать ВООБЩЕ ничего - гребаный ступор.Мои рецепты преодоления ступора на лайв-кодинг секции:
  • Не можешь написать ни строчки? Напиши пару символов! Объяви переменную. Голова боится, а руки делают. Это поможет преодолеть первую панику, погрузит вас в привычную вам сферу - написание кода.
  • В задаче присутствует массив? Напиши цикл, который для начала просто по нему пробежится. Постепенно шаг за шагом добавляй условия из требования.
  • Скажи интервьюеру прямо: “Буду решать маленькими шажками поэтапно! Возможно, в процессе реализация поменяется полностью!”. Интервьюер, скорее всего, и так не против, но тебе это поможет побороть очень опасную и совершенно необоснованную мысль: “а вдруг я начну писать дичь, вот позорище, меня посчитают идиотом…” Но ты предупредил, что можешь начать писать дичь, и вообще Кент Бек и другие гиганты завещали не пытаться решать все сразу правильно, а решать маленькими шажками. Это прекрасная методология. Все в порядке.
  • Озвучивай! Каждое действие проговаривай вслух.
    Свежий пример из жизни:
    “Так, мне надо заполнить двумерный массив рандомными числами от 1 до 100 без повторений… Слету решение в голову не пришло (прим. помните, у нас же был ступор), потому буду писать поэтапно. Для начала, напишу цикл “for”, заполню хотя бы одномерный массив не-рандомными числами. Ага, теперь нам понадобится функция “rand”. А нам двумерный нужен был? Так, делаем вложенный цикл. Вот, супер, заполнили… А как бы теперь избавиться от коллизий… А, так надо отдельно хранить все значения, которые мы уже использовали!.." Вот так, шаг за шагом я пишу и всё проговариваю вслух. Интервьюер видит развитие моей мысли, и знаете, мне кажется, им обычно это нравится! Они ведь, зачастую, ход вашей мысли хотят узнать куда больше, чем получить эталонное решение. 
  • Не пытайся сразу оптимизировать решение. Скорее всего, об этом тебя все равно потом спросят - потом и подумаешь. Но у тебя будет хотя бы неоптимальное решение, с которым можно работать дальше.
  • Бонусный пункт: кстати, с кодом ты вовсе не один на один. Интервьюер тоже в деле, и запросто может направить/подкинуть идею. Иногда это только сбивает - тут не стоит сразу бросаться решать его методом - так можно снова впасть в ступор, лучше просто вслух проанализировать идею. А иногда стоит и прямо попросить подсказку, так и сказать: “Что-то у меня ступор, подскажите, пожалуйста, с чего начать вот тут”. Лучше спросить и хотя бы попытаться сделать, чем даже не спросить и проиграть всего-то собственной панике.
Примечание: иногда в очень серьезных статьях я видела советы вида “сначала хорошенько продумай решение, а потом начинай писать!”. Но лично мне, к сожалению, такой подход никак не помогает преодолеть ступор, а наоборот, только его усугубляет. Если чувствуете что-то похожее - попробуйте начать писать код по “пошаговому” рецепту.Примечание 2: рецепты работают и при написании SQL-запросов. Точно также, начинайте с обычного SELECT, постепенно добавляйте условия. Этап 5. Архитектурное собеседованиеКазалось бы, вот оно, море, в котором мы почувствуем себя “рыбой в воде”, а то и “акулой этого бизнеса”. Сейчас то я покажу свой скилл в построении распределенной архитектуры, выборе хранилищ и знании паттернов систем пакетных вычислений!Вам говорят: “Спроектируйте простенькое приложение по загрузке и обработке csv-файлов пользователя, где он хранит данные о своих покупках за месяц.Не вопрос! Очереди, распределенные хранилища, шарды, реактивная архитектура… Интервьюер: “Так а как пользователь файл загрузит то?..”
Все в мире: через форму на сайте методом POST!
Вы: … (тут начался ступор)Это абсолютно свежий пример из жизни. Я то думала, что от меня ожидают верхнеуровневых определений и в целом перечисления всего, что бывает. И простой жизненный вопрос сбил с толку.
Рецепты преодоления ступора следующие:
  • Выкиньте из головы мысль, что вам нужно предусмотреть сразу все. Это только застопорит вас. Представьте, что вам просто надо сделать самую простую базовую фичу на одной физической машине, и начинайте говорить, можно попутно рисовать модель на бумажке. А уже после вопросов интервьюера вида: “А где хранить, а как снизить задержку, а обеспечьте доступность, масштабируемость, отказоустойчивость и т.д.”, - добавляйте элементы. Он точно спросит.
  • А если не знаете - не страшно. Предполагайте и предлагайте. Помните: архитектура, не смотря на то, что казалось бы каждый чих покрыт паттерном, методологией и готовым решением - это все равно более стратегический вопрос. Единственно правильного решения архитектурной задачи НЕТУ. Все зависит от конкретного сервиса, требований, возможностей бизнеса и т.д.. Знать всё - невозможно. А вот предполагать - это нормально, может именно этого от вас и ждут.
В целом этих двух рецептов должно хватить для преодоления первого ступора на архитектурном собеседовании. Особенно если вы не знали, что такое собеседование вообще будет.Этап 6. Софт-скиллз (или общение “за жизнь, опыт и планы”)Обычно в этом месте уже идет знакомство с командой, обсуждение планов на будущее. И тут вам больше не нужно “пройти дальше что бы то ни было”. Тут вам следует самому понять, хотите ли вы идти дальше именно с этой командой. Этот этап я для себя называю “Обоюдные смотрины”. Теперь не только вас оценивают, тут уже и вы решаете, подходят ли вам эти люди, сможете ли вы с ними плодотворно работать и развиваться. И именно это отношение помогает преодолеть любой ступор.
Примечание: вы, разумеется, также оцениваете команду на всех этапах, но на мой взгляд именно этот этап - ключевой.Да, тут все равно может попасться вопрос, который собьет с толку, на который не будет ответа. Примеры:
  • “А вспомните последнюю конфликтную ситуацию на работе”. Что думает паникующий мозг? “Как правильно ответить, что они хотят услышать, а если я расскажу про тот случай, когда мы на повышенных тонах спорили в переговорке за лучший паттерн…” Рецепт: посмотрите на вопрос как на возможность узнать команду. Если у вас был конфликт в действительно важной для вас ситуации, расскажите, обсудите. Если вы с командой не сработаетесь - вы сами же это почувствуете при обсуждении именно таких вопросов.
  • Еще одна ситуация, которая может вызвать ступор. Интервьюер: “Теперь наша очередь отвечать на ваши вопросы. Задавайте!” Мозг: “Но как так то… Надо что-то спросить?..”Рецепт: у вас точно это спросят, так что просто подумайте заранее, что для вас действительно важно, и составьте список вопросов на листочке.
P.S. Бонусная кулстори о моих вопросах работодателюКому интересно - делюсь опытом. У меня недавно была эта ситуация. Я давно не собеседовалась, и настолько готовилась отвечать сама, что на вопрос “А какие у вас к нам вопросы” растерялась и еле выдала робкое “а как у вас с удаленкой, когда в офис планируете?”.К следующему собеседованию я уже подготовилась и накидала на листочке важные для меня вопросы (карьерный рост, участие в конференциях, обучение, примеры реальных задач на последнем спринте). И к вопросу “о моих вопросах” была полностью готова. Знаете, есть у меня смутное чувство, что это сильно сыграло мне на руку как в плане того, что я и правда узнала всё, что для меня важно, так и интервьюеры узнали, чего я ожидаю. В одном из мест мой эйчар организовала дополнительную встречу с еще парой команд. И знаете что? Мои интервьюеры подготовились к моим вопросам заранее! Это было так приятно. Я даже не ожидала такого эффекта.ЗаключениеВот и все мои нехитрые рецепты. В данной статье я обобщила свой опыт успешного прохождения серии интервью на позицию “Senior Developer”. Если даже одному человеку эта статья поможет на интервью преодолеть ступор хотя бы в одной из описанных ситуаций - значит она того стоила. Всем спасибо за внимание, и желаю вам найти место работы своей мечты!
===========
Источник:
habr.com
===========

Похожие новости: Теги для поиска: #_intervju (Интервью), #_poisk_raboty (поиск работы), #_sobesedovanie (собеседование), #_tehnicheskoe_sobesedovanie (техническое собеседование), #_karera_programmista (карьера программиста), #_intervju (
Интервью
)
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 22-Ноя 17:21
Часовой пояс: UTC + 5