8 самых распространенных вопросов о поведенческом интервью, на которые вам будет удобно отвечать на следующем собеседовании

Пока вы работаете с LeetCode и HackerRank для следующего собеседования по программированию, убедитесь, что вы не забыли подготовиться и к поведенческому интервью.

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

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

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

Я уверен, что многие из вас знают об этой книге. Я настоятельно рекомендую ознакомиться с Chacking the Coding Interview Гейл Лаакманн Макдауэлл, если вы еще этого не сделали. Книга хорошо описывает процесс поведенческого интервью на высоком уровне.

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

1. Расскажите мне о проекте, над которым вы недавно работали. Можете ли вы описать технические проблемы, с которыми вы столкнулись, и как вы их преодолели?

Именно здесь действительно пригодится знание всех тонкостей технических деталей каждой части вашего резюме.

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

Пример:«Недавно я работал над проектом, в котором были очень специфические требования безопасности, которым должно было следовать приложение. На высоком уровне нам нужно было создать сервер, который мог бы функционировать как обратный прокси-сервер и прямой прокси-сервер и позволял нам добавлять пользовательскую логику во время рукопожатия TLS.

Моим первым препятствием была попытка найти готовый продукт, который мы могли бы использовать для этого. Обычно мы использовали NGINX для всех наших проксирования и балансировки нагрузки по всей системе, однако NGINX не поддерживал способ добавления пользовательского хука в логику TLS. Мы изучили другие инструменты OTS, такие как Apache HTTP Server и HAProxy, но ничто из них не поддерживало то, что нам было нужно из коробки.

В конце концов я обнаружил, что в Node.js есть модуль TLS, который предоставляет именно то, что нам нужно. Модуль TLS позволил нам легко добавлять пользовательский код во время рукопожатия TLS и содержал очень легкий и простой в настройке прокси-сервер HTTP.

Я впервые разрабатывал рабочее приложение с нуля на Node.js. Переход от преимущественно Java-разработки к Node.js представлял собой некоторую проблему из-за асинхронного поведения Node.js. Пользовательская логика, которую мы писали, требовала от нас отправки HTTP-запроса во время рукопожатия TLS, однако в Node.js этот запрос является асинхронным, и я понял, что не могу дождаться ответа до завершения рукопожатия TLS.

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

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

2. Расскажите мне о случае, когда у вас возникли разногласия с коллегой, и как вы их разрешили.

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

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

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

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

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

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

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

3. Почему вы хотите работать в ‹company-name›?

Для этого вопроса полезно заранее изучить компанию. Изучите ценности компаний на их веб-сайте, проекты, над которыми работает компания (если таковые имеются), и технологии, которые использует компания.

Пример: «Что меня особенно заинтересовало в этой должности, так это технологии, которые использует компания. Я работал с React и Node.js в своем стороннем проекте, и я действительно влюбился во всю экосистему JavaScript, поэтому я действительно хочу направить свою карьеру в сторону этого технического стека. Я также хочу продолжить работу с облачными сервисами и увидел, что команда использует AWS, что меня тоже порадовало.

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

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

4. Почему вы покидаете свою нынешнюю компанию?

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

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

Пример: «Хотя в целом я доволен своей нынешней должностью, есть несколько причин, по которым я ищу новую возможность».

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

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

5. Что бы вы назвали своей слабостью?

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

Пример:«Я бы сказал, что моя самая большая слабость — публичные выступления. Иногда мне трудно говорить перед другими людьми, и я очень нервничаю, выступая в большой группе. Когда я был моложе, я старался всеми возможными способами избегать ситуаций, в которых мне приходилось бы выступать в группе, однако, когда я поступил в колледж, я начал понимать, что мне нужно столкнуться с этим страхом, а не бежать от него.

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

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

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

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

Пример:«Я считаю, что конструктивная обратная связь от коллег — один из лучших способов развития инженера. Я также считаю, что важной частью предоставления или получения обратной связи является предоставление или просьба о шагах, которые инженер или вы можете предпринять для улучшения.

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

Наша компания проводит полугодовые обзоры эффективности; тем не менее, я считаю, что нужно сразу же давать обратную связь, когда я вижу что-то, что, по моему мнению, мой коллега мог бы улучшить. Итак, однажды я поговорил с ними и рассказал им то, что я заметил, и они даже согласились с тем, что я должен был сказать, и сказали, что они тоже это заметили, но они не знали, что это очевидно для других. Я дал им несколько советов, что они не должны чувствовать, что им нужно спешить, чтобы внести свою точку зрения в разговор. Мы все — одна команда, и мы хотим, чтобы у каждого была возможность высказаться и согласиться с решениями, которые мы принимаем как команда.

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

7. Расскажите мне о себе и своем прошлом.

Я узнал отличный способ структурировать этот общий вопрос, прочитав Cracking the Coding Interview. Он разбит следующим образом:

  1. Текущая роль [Только заголовок]
  2. Колледж [включая стажировки]
  3. Почтовый колледж и далее
  4. Текущая роль [Подробно]
  5. Вне работы
  6. Заворачивать

Пример:«В настоящее время я работаю инженером-программистом в компании ‹company-name›, где возглавляю небольшую команду старших инженеров-программистов, занимающихся agile. Я закончил ‹school-name› в 2018 году со степенью бакалавра компьютерных наук и инженерии.

Некоторое время я учился в колледже, работая официантом, а также консультантом по Java в университете. Как консультант по Java, я помогал студентам с курсовой работой и помогал им понять концепции Java и передовые методы кодирования.

Летом перед выпускным годом я сменил работу официанта на стажировку в ‹company-name›, что стало для меня потрясающим опытом. Тем летом я создал новое приложение для учета рабочего времени с нуля, используя Java и платформу Spring, которое в конечном итоге заменило текущую систему, используемую организацией. Мой успех на стажировке привел к тому, что они оставили меня на неполный рабочий день, пока я заканчивал последний год обучения.

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

Сейчас помимо работы я работаю над побочным проектом, который собираюсь завершить и развернуть в Интернете и магазине приложений в этом году с использованием Node.js, React и React Native. Я также совсем недавно начал писать статьи на Medium и написал несколько статей с советами по разработке программного обеспечения, которые были опубликованы.

Итак, теперь я ищу что-то новое, и вакансия на эту должность действительно привлекла мое внимание. Мне нравится все, что я узнал о компании, и я очень рад этой возможности».

8. Расскажите мне об ошибке, которую вы совершили, и о том, что вы извлекли из нее.

Все совершают ошибки, но не все на них учатся. Интервьюер хочет видеть, что вы учитесь на своих ошибках и растете на них.

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

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

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

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

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

Заключение

Спасибо за чтение! Я надеюсь, что это поможет некоторым из вас при подготовке к собеседованию, и желаю вам удачи в поиске работы.

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

Want to Connect?
You can reach me through my personal website where I have links to my other socials and a contact form - I am always happy to connect with new people!