Каждый вопрос, который мне задавали во время интервью

Немного предыстории

Я работаю в разработке программного обеспечения уже несколько лет. Недавно я решил изменить свою текущую работу. Для контекста, я претендовал на роли среднего уровня в Америке.

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

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

Этап 1. Отбор звонков

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

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

  • Расскажите нам о себе.
  • Расскажите о вашей существующей роли?
  • Каковы ваши технологические стеки?
  • Есть ли у вас опыт работы с XXX (некоторые технологии, указанные в описании вакансии)?
  • Есть ли у вас какие-либо интересы в XXX (некоторые навыки, не связанные с разработчиками, например, наставничество для юниоров или планирование спринта)?
  • Чего вы ждете от новой роли?
  • Спросите свой текущий период уведомления
  • Ваши ожидания по зарплате
  • Каковы ваши интересы вне работы?
  • Ваши общие задачи в вашей текущей роли
  • Ваша сила, чтобы помочь вам добиться успеха в этой роли?
  • У вас есть вопросы по работе?

Этап 2. Первоначальное собеседование

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

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

  1. Стандартный вопрос «Расскажите о себе»
  2. Как вы справляетесь со стрессом на рабочем месте?
  3. Расскажите о самой сложной задаче, с которой вы когда-либо сталкивались, и как вы ее преодолели? (Думаю, это скорее проверка вашей способности решать проблемы)
  4. Объясните вкратце связанный список и самый быстрый способ найти его середину? (Я знал это, когда учился в университете, но редко использовал это в реале 🤣)
  5. Что такое чистая функция?
  6. Что было главным изменением в компиляторе Angular Ivy по сравнению со старым View-Engine?
  7. Что такое тестирование черного и белого ящика?
  8. Разница между модульным, интеграционным и e2e-тестированием
  9. Разница между наследованием и полиморфизмом
  10. Git контроль версий, например: проверка кода
  11. Каков ваш обычный рабочий процесс разработчика на вашей текущей работе? (ответвления на несколько гибких вопросов?)
  12. Плюсы и минусы использования Typescript
  13. Разница между let/var/const
  14. Каков ваш цикл выпуска продукта?
  15. Опыт CI/CD.
  16. Какова ваша роль в планировании спринта?
  17. Каковы некоторые преимущества Angular по сравнению с другими фреймворками?
  18. Каковы различия усложнения JIT и AOT?
  19. Объясните использование компонентов, модулей и сервисов в Angular?
  20. Что такое хуки жизненного цикла в Angular и как/когда их использовать?
  21. Кратко объясните наблюдаемые и различия некоторых часто используемых операторов, таких как map() take() switchMap() mergeMap() и т. д.
  22. Объясните концепцию внедрения зависимостей.
  23. Как обновить клиент до новой версии?
  24. Стратегии управления состоянием внешнего интерфейса (я резюмировал это здесь https://javascript.plainenglish.io/six-state-management-strategies-for-complex-angular-apps-12bd224311bd?sk=6013414aa46fcbe15b0bdc6a5b948356)
  25. Правильные способы взаимодействия с DOM в Angular
  26. Как управлять переводами i18n?

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

Этап 3. Практический технический тест

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

Это все тесты, которые меня просили сделать. Один сказал, что React не является обязательным требованием, но сам тест требовал сделать с его помощью большой SPA. (Вы шутите? 😒). Я готов изучить новую структуру, чтобы подать заявку на работу в течение примерно 3 дней.

В любом случае, они явно задели за живое. Эти тесты включают в себя:

  1. Зайдите на их сайт разработчиков и скажите им, что я хотел бы изменить.
  2. Ударьте поддельный API некоторых продуктов, а затем отобразите их и добавьте в корзину.
  3. Онлайн-задача по кодированию для решения проблем на HackerRank.
  4. Создайте готовый к работе табличный компонент с помощью React и добавьте модульные тесты.
  5. Воссоздайте клон Gmail (не шутка)

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

Уроки, извлеченные из процесса.

  • Людям это нравится, если вы знаете о модульных/интеграционных/e2e-тестах.
  • Это нормально, говоря, что вы не знаете, просто будьте честны.
  • Я бы держался от них подальше, если бы они хотели каждую ночь и выходные видеть репозиторий Github с открытым исходным кодом, полный коммитов. 😎
  • Вероятно, с ними приятно работать, если они открыты для вопросов и отзывов и ценят ваше время.
  • Не бойтесь и не стесняйтесь просить разъяснений.
  • Сохраняйте работу в своем шорт-листе только тогда, когда вас действительно интересуют технологические стеки, которые она использует.

Вот и все! Надеюсь, это может помочь кому-то где-то получить хорошее применение.