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

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

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

Показатель

- Заявление о приеме на работу
- Вызов рекрутера
- Тест по кодированию
- Тест системного дизайна
- Тесты знаний
- Соответствие поведенческим или культурным особенностям

Заявление о приеме на работу

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

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

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

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

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

Вызов рекрутера

Обычно на этом этапе HR сообщит вам более подробную информацию о вакансии, на которую вы претендуете. Это может быть что-то вроде того, что вы должны будете делать, когда присоединитесь к команде, преимущества присоединения к компании, чем она занимается и т. Д.

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

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

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

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

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

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

Кодирование Тест

Обычно этот тест можно провести двумя способами:

  1. Вам дается ссылка на онлайн-тест, и вы его решаете
  2. Вы пишете код в реальном времени перед интервьюером

А по типу постановки задачи можно разделить на

  1. Структура данных и алгоритм (DSA)
  2. Проект прикладного программного обеспечения

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

Вы можете тренировать свои навыки DSA на некоторых платформах, таких как https://leetcode.com/ или https://www.hackerrank.com/.

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

Важные моменты этого теста:

  • Как вы определяете и понимаете данную формулировку проблемы
    Не спешите с решениями, иногда вам задают двусмысленные вопросы, и они ожидают, что вы зададите и проясните эти двусмысленности. Убедитесь, что вы понимаете ввод и вывод постановки задачи. Постарайтесь найти крайние случаи и возможности постановки проблемы и прояснить ее, чтобы убедиться, что у вас есть четкое представление о том, что вам нужно решить, а что вам не нужно решать.
  • Как вы находите решения для данной постановки проблемы
    Обсудите и предложите свои решения интервьюеру, посмотрите, согласны ли они с вашим решением.
  • Как вы сравниваете несколько решений и выбираете наиболее подходящее.
    Желательно, чтобы у вас было несколько решений, поговорите об этом и с интервьюером и выберите одно на основе вашего анализа.
  • Определите время выполнения и сложность пространства вашего решения
    Это для типа DSA, вам необходимо иметь возможность определять время выполнения и сложность пространства всех ваших решений
    Обратитесь к этому статья для подробного объяснения
  • Как вы превращаете это решение в коды
    Когда интервьюер соглашается с вашим предложенным решением, начинайте его кодировать. Иногда вы обнаруживаете ошибки или делаете ошибки в своем коде, но это ожидаемо, вы можете отомстить и показать свои навыки отладки и исправить ошибку в своем коде.

Тест системного дизайна

В этом тесте вам будет предложено разработать систему. Обычно это что-то вроде дизайна системы парковок, дизайна Instagram / Facebook / Reddit / Twitter, дизайна системы чата, дизайна электронной коммерции, такой как Amazon, и т. Д.

Он может быть разным для каждой платформы (Frontend, Backend, Mobile apps), и у многих людей разные подходы к проектированию системы.

Я обычно разделяю дизайн моей системы на несколько разделов

  • Сбор требований
    В этом разделе я попытаюсь собрать такую ​​информацию, как
    - Функциональные требования
    - Нефункциональные требования
    - Вне области
  • Проектирование высокого уровня (HLD)
    В этом разделе я спроектирую поток данных и сценарии использования или услуги, предоставляемые системой для поддержки требований.
  • Низкоуровневый дизайн (LLD)
    В этом разделе я перечислю компоненты системы, подключу зависимости и напишу некоторые детали реализации модулей.

Чтобы узнать больше о HLD и LLD, вы можете попробовать посетить это видео на YouTube

и вот хорошее чтение для собеседования по проектированию мобильных систем



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

Тесты знаний (ответы на технические вопросы)

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

Чтобы подготовиться к этому тесту, вы можете попытаться найти материалы в Интернете, используя такие ключевые слова, как «[Platform] Interview Questions». Платформа может быть Android, iOS, Backend, Web Frontend, Desktop, Security Engineer и т. Д.

Вы должны найти что-то вроде этого







Ответить на него историей из вашего опыта будет плюсом.

Например, если интервьюер спрашивает, как узнать текущее местоположение пользователя в Android. Тогда вы можете ответить «О! Я когда-либо использовал это раньше в одном из моих проектов, в котором мне нужно получить местоположение пользователя, чтобы показать ближайшие рекомендации, я использую FusedLocationProvider в API служб Google, и я думаю, прежде чем запрашивать местоположение, которое нам нужно для обработки разрешений времени выполнения пользователя и … [Продолжайте сами, используя свое воображение] »

Соответствие поведенческой или культурной среде

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

Вы столкнетесь с такими вопросами или обсуждениями, как:

  • Какое ваше самое большое достижение?
  • Какая была самая большая проблема, с которой вы столкнулись, и как вы ее преодолели и чему вы из нее научились?
  • Каким моментом в вашей карьере больше всего гордиться?
  • Как бы вы отреагировали на конфликт между вами и руководителями / коллегами / младшими коллегами?
  • Как бы вы отреагировали на полученный отрицательный отзыв?
  • Какова ваша краткосрочная (1–3 года), среднесрочная (4–6 лет) и долгосрочная цель (›6 лет)?
  • Иногда будут технические обсуждения
  • Что вы хотите изменить в своей карьере?
  • Почему ты хочешь присоединиться к компании?
  • Почему вы ищете в своей нынешней компании, когда присоединяетесь к ним?
  • Почему вы хотите покинуть свою нынешнюю компанию?
  • Что вы будете делать, если вам дадут несколько проектов одновременно?
  • Что вы будете делать, если вас попросят работать сверхурочно?

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

Советы. Изучите основные ценности компании и честно ответьте на них, взяв за основу эти ценности компании. Вы можете попробовать использовать этот метод STAR, отвечая на вопросы https://www.themuse.com/advice/star-interview-method

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

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

Спасибо Сизе, Андри, Денни, Христу, Камилу и всем, кто помогает сделать эту статью лучше.
Без вас всей этой статьи не было бы.