12 вопросов для собеседования по Laravel: Работодателю и кандидату

Существует множество статей с вопросами для собеседования по Laravel, но в основном они звучат как вопросы из викторины.
  • Какая последняя версия Laravel?
  • Что такое Composer?
  • Какие файлы маршрутов включены в Laravel?

Ответы на такие вопросы не помогают определить, насколько кандидат подходит для работы в реальных проектах.

Поэтому мы решили составить свой собственный список вопросов.

Мы рассмотрим их с двух сторон:

  • Как интервьюер: что бы я спросил, если бы нанимал Laravel-разработчика?
  • Как кандидат: к чему мне готовиться?

Что бы я спросил как интервьюер

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

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

Для этого я предлагаю задать эти восемь вопросов.

Вопрос 1. Как вы обычно структурируете проекты Laravel

Ожидаемый ответ:

Правильного ответа не существует!

Но подождите, почему? Должен быть хоть один, верно…?

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

  • Это зависит от …. — Приведите несколько причин того, как различные вещи влияют на выбор структуры. У разных проектов разные потребности. Для одних может быть полезна структура DDD, а для других — нет.
  • Я работал над …, где я делал … — В этом ответе обсуждается ваш опыт работы в разных областях. Это могут быть разные языки, фреймворки или типы проектов. Пусть они узнают, чем вы занимались!

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

Вопрос 2. Каковы типичные проблемы производительности в Laravel и каковы их решения

Ожидаемый ответ:

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

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

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

Вопрос 3. Поделитесь своим лучшим решением, которым гордитесь

Ожидаемый ответ:

Поделитесь самой значимой из преодолённых вами проблем.

Конечно, это сложно, если вы только начинаете. Но они могут быть довольно простыми:

  • Я создал… при поддержке… — Расскажите о том, какую крутую и увлекательную вещь вы создали!
  • Я столкнулся с ограничением … и преодолел его с помощью … — Расскажите о своих проблемах и, что вы сделали для их решения.
  • Я собирал …, но ничего не вышло. Поэтому пришлось сменить несколько …, чтобы решить проблему — Расскажите о проблемах, о том, что вы пробовали, и об окончательном решении.
  • Я экспериментировал с … и создал …. — Подчеркните эксперименты и подведите к конечному решению.

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

Вопрос 4. Что вы ненавидите в Laravel

Ожидаемый ответ:

Ваша точка трения

Ещё один вариант для размышления. Поделитесь тем, что вам не нравится, и аргументируйте, почему:

  • Я бы не сказал, что мне нравится… потому что… — Расскажите, что вы ненавидите, и обо всех причинах.
  • Я ненавижу…, потому что это вызвало проблемы с… — Или просто расскажите, что вам не нравится и где это вызвало трения.

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

Вопрос 5. Что больше всего нравится в Laravel

Ожидаемый ответ:

Ваша любимая особенность

У каждого из нас свои предпочтения. Расскажите о лучшей функции, которую увидели в фреймворке:

  • Мне нравится… потому что это позволяет … — Приведите аргументы в пользу того, что вам действительно нравится, с наглядным конечным результатом.

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

Вопрос 6. Какие инструменты и пакеты используете

Ожидаемый ответ:

Список инструментов/пакетов, которые используете ежедневно

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

  • Я использую … инструмент, так как он позволяет … — Обоснуйте свой выбор инструмента.
  • Я устанавливаю … пакет, поскольку он … — Приведите веские аргументы в пользу того, как этот пакет вам помогает.

В целом посмотрите на свои приложения и рабочие процессы. Может быть, используете spatie permissions в каждом проекте? Тогда расскажите об этом!

Вопрос 7. Есть ли опыт работы с другими языками или инструментами

Ожидаемый ответ:

Расскажите, что использовали и чему научились.

У каждого есть какой-нибудь собственный проект (и да, даже те, которые не закончены — считаются!). Эти проекты не всегда предназначены для публичного использования, скорее — эксперименты. Так что рассказывайте о них:

  • Я использовал … язык и создал …, пока изучал … — Расскажите о своих экспериментах с разными языками и, что вы создали/изучили с их помощью. Каждый язык может расширить ваши знания и углубить понимание.
  • Я использовал … фреймворк и научился … — Разные инструменты/фреймворки имеют разные концепции. Если вы когда-нибудь прикасались к одному из них — расскажите о нем.
  • Я сделал … и потом понял … — Если вы сделали что-то, чтобы разобраться в концепции, сообщите об этом. Это может показать, что вы заинтересованы в том, чтобы понять тему как можно лучше.

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

Вопрос 8. Каков ваш опыт в Bug Tracking'е

Ожидаемый ответ:

Расскажите об инструментах, которые используете для Bug Tracking'а.

Каждому приложению необходим Bug Tracking в продакшне. Расскажите о том, какой инструмент для этого используете:

  • Я использую … в своих приложениях — Расскажите, что лично используете и почему.
  • У меня есть опыт работы с … на предыдущих местах работы — Расскажите, что использовала ваша предыдущая компания и что именно нравилось/не нравилось.
  • Я изучаю… как оно… — Иногда вы просто находитесь в процессе обучения. Так что говорите об этом и рассказывайте о своих результатах.

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

К чему следует готовиться кандидату

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

Но давайте признаем: за один день вы не научитесь тому, чему не научились за несколько лет.

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

Вопрос 1. Вспомните проекты, над которыми работали

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

  • «Проект 1» — Работал над системой API, внедряя версионность.
  • «Проект 2» — Реализовал локализацию
  • «Проект 3» — Создал систему резервирования с самообслуживанием.
  • И так далее...

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

Вопрос 2. Изучите компанию, в которой проходите собеседование

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

Ищите везде. Ищите разные вещи, например:

  • Их технологический стек
  • Их сообщения в социальных сетях
  • Найдите публичных сотрудников и изучите, что они говорят публично.
  • Загляните на их веб-страницу и посмотрите, что они говорят.

Это может принести множество преимуществ:

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

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

Вопрос 3. Вспомните различные структуры, с которыми работали

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

Например, если у вас есть проекты, в которых использовалось одно из:

  • Модульный подход
  • Собственные пакеты
  • Domain Driven Design
  • Event sourcing
  • Или всё остальное, что не является стандартной системой

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

Это поможет компании узнать, насколько вы опытны, и понять, что от вас следует ожидать.

Вопрос 4. Подумайте о самом безумном испытании, с которым сталкивались

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

  • Может быть, вы внезапно получили крупного клиента, а у вас не было отличного онбординга.
  • Может быть, ваш проект быстро вырос со 100 до 10 000 пользователей посреди ночи!
  • Может быть, у вас отказал платёжный провайдер, и пришлось срочно подключать резервного.
  • Может быть, произошёл сбой в работе одного из ваших сервис-провайдеров.

Расскажите о задаче, которая возникла из ниоткуда. Это может быть середина ночи или случайное рекламное/маркетинговое сообщение, которое сработало. Убедитесь, что в рассказе есть всё необходимое:

  • Произошло неожиданное событие
  • Как вы с ним справились
  • Какие уроки вы извлекли
  • Какие меры безопасности вы предприняли

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


Есть ли у вас другие предложения/идеи? Дайте знать, и мы обновим статью, чтобы помочь другим в собеседовании!

Комментарии


Дополнительные материалы

Предыдущая Статья

Как восстановить удалённую ветку Git

Следующая Статья

React и FormData