Рубріки: Карьера

Как пройти собеседование на программиста: к чему готовиться и сколько этапов вас ждет

Оленка Пилипчак

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

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

Начнем подготовку!

Редакция Highload публикует перевод материала.

Переведено бюро переводов «Профпереклад».

Перевод от

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

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

Читайте также: «Даже цвета могут сыграть против вас»: как разработчику составить резюме, которое устроит на работу мечты. Инструкция и примеры

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

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

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

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

Звонок рекрутера

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

Будьте готовы к серии вопросов-ответов по телефону

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

Вам могут задать такие вопросы:

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

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

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

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

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

Тестовое задание на написание кода

Тест могут проводить двумя способами:

  • вам дают ссылку на онлайн-тест и вы его выполняете;
  • вам предложат написать код в присутствии рекрутера.

Возможные задания можно разделить на два основных типа:

  • структура данных и алгоритмы (DSA);
  • проект прикладного ПО.

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

Можно попрактиковаться на некоторых специализированных сайтах, например, LeetCode или HackerRank

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

Рассмотрим некоторые важные моменты такого тестирования:

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

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

На этом этапе вам предложат разработать систему — что-нибудь вроде приложения для парковки, модель соцсети вроде Instagram / Facebook / Reddit / Twitter, чат, торговую платформу вроде Amazon.

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

На этом этапе вы сможете по-настоящему показать свои умения

Читайте также: Дизайн-система в три раза повышает эффективность разработки: что это и как с ней работать

Обычно я разбиваю свой дизайн на несколько разделов:

  • Сбор требований.
    В этом разделе я собираю всю необходимую информацию:
    – функциональные требования;
    – нефункциональные требования;
    – все, что не входит в ТЗ.
  • Архитектура высокого уровня (HLD).
    Здесь я проектирую поток данных и использую кейсы или сервисы, предоставляемые системой в поддержку требований.
  • Архитектура низкого уровня (LLD).
    Здесь я перечисляю компоненты системы, провожу взаимосвязи и расписываю некоторые детали реализации модулей.

Более подробно об архитектуре низкого и высокого уровня говорится в этом видео:

 

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

Техническое интервью

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

Чтобы подготовиться, можно поискать материалы в интернете по ключевым словам «вопросы на собеседовании по разработке [для платформы такой-то]» — Android, iOS, Backend, Web Frontend, десктоп, Security Engineer.

«У нас есть одна технология…»

Скорее всего, вы найдете что-то вроде этого:

«Если в ответ на этот вопрос вы приведете пример из личного опыта, это большой плюс. Например, вас спрашивают, как получить местоположение пользователя в Android. Можно ответить так:

“О! Я как раз это делал в одном из проектов, где мне нужно было получить местонахождение пользователя, чтобы вывести подсказки и рекомендации на карте в его районе. Я использовал FusedLocationProvider в API Google-сервисов. Думаю, прежде чем запрашивать местоположение пользователя, нужно сделать запрос на Runtime Permission и… [дальше продолжайте сами, как вам подсказывает воображение]”».

Соответствие поведенческим или культурным требованиям

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

Здесь задают вопросы вроде таких:

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

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

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

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

Покажите компании, что вы умеете на самом деле

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

Автор: Джавент Лиената

Читайте также: Как пройти собеседование на Python-разработчика: что важно знать и уметь

Останні статті

Обучение Power BI – какие онлайн курсы аналитики выбрать

Сегодня мы поговорим о том, как выбрать лучшие курсы Power BI в Украине, особенно для…

13.01.2024

Work.ua назвал самые конкурентные вакансии в IТ за 2023 год

В 2023 году во всех крупнейших регионах конкуренция за вакансию выросла на 5–12%. Не исключением…

08.12.2023

Украинская IT-рекрутерка создала бесплатный трекер поиска работы

Unicorn Hunter/Talent Manager Лина Калиш создала бесплатный трекер поиска работы в Notion, систематизирующий все этапы…

07.12.2023

Mate academy отправит работников в 10-дневный оплачиваемый отпуск

Edtech-стартап Mate academy принял решение отправить своих работников в десятидневный отпуск – с 25 декабря…

07.12.2023

Переписки, фото, история браузера: киевский программист зарабатывал на шпионаже

Служба безопасности Украины задержала в Киеве 46-летнего программиста, который за деньги устанавливал шпионские программы и…

07.12.2023

Как вырасти до сеньйора? Девелопер создал популярную подборку на Github

IT-специалист Джордан Катлер создал и выложил на Github подборку разнообразных ресурсов, которые помогут достичь уровня…

07.12.2023