12 вопросов для собеседования по 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 пользователей посреди ночи!
- Может быть, у вас отказал платёжный провайдер, и пришлось срочно подключать резервного.
- Может быть, произошёл сбой в работе одного из ваших сервис-провайдеров.
Расскажите о задаче, которая возникла из ниоткуда. Это может быть середина ночи или случайное рекламное/маркетинговое сообщение, которое сработало. Убедитесь, что в рассказе есть всё необходимое:
- Произошло неожиданное событие
- Как вы с ним справились
- Какие уроки вы извлекли
- Какие меры безопасности вы предприняли
Эта короткая задача может быстро показать, что вы полны решимости найти решение и всё ещё помните о полученных жизненных уроках.
Есть ли у вас другие предложения/идеи? Дайте знать, и мы обновим статью, чтобы помочь другим в собеседовании!