Вопросы на интервью Java-разработчику

В статье опишем основные этапы собеседования на Junior Java-разработчика и расскажем, что на них стоит ожидать. Статья также будет полезна для любого грейда, так как приводим общие рекомендации про hard и soft skills для подготовки к интервью. Must have к прочтению, если готовитесь к собеседованию.

Денис Лознов
Software Engineer в FAANG-компании, ex-Team Lead в Сбер

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

Беседа с HR || Рекрутером

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

Зачем компании этот этап

– Задать вопросы по предыдущему опыту на основе вашего резюме:

  • Уточнить, что вы работали с технологиями из их чек-листа (если такой есть)
  • Попросить рассказать о прошлых проектах, и какие проблемы они решали. Этот вопрос нужен, чтобы оценить, насколько связно вы можете излагать свои мысли, а также оценить ваш уровень вовлеченности на предыдущих проектах
  • Если вы претендуете на должность Senior/Lead, вас, скорее всего, спросят об опыте руководства проектами/командами

– Узнать ваш текущий статус трудоустройства:

  • Если вы студент, готовы ли работать full-time
  • Если вы сейчас трудоустроены, когда готовы выйти на новую работу
  • Если вакансия предусматривает релокацию в другую страну, то могут уточнить про наличие всех необходимых документов для переезда и оформления визы

– Провести технический скрин. Обычно очень простые вопросы, например:

  • Асимптотическая сложность QuickSort
  • Чем отличается ‘GROUP BY’и ‘having’
  • Разница между static и non-static методами
  • Разница между Checked/Unchecked Exceptions

– Уточнить ваши зарплатные ожидания

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

Что вы можете узнать о компании на этом этапе

– Подробности проекта, какие задачи решает команда

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

– Информацию о социальном пакете: медицинские страховки, денежные бонусы и бонусы в виде бесплатной еды, оплаты проезда

– Если работа предусматривает релокацию в другую страну, то можно обсудить:

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

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

– Как быстро компания может вас оформить в случае успешного прохождения собеседования (из моего опыта, даже без релокации это может быть > 1 месяца)

На что стоит обратить внимание

  • Отнеситесь к беседе с HR/рекрутером с той же ответственностью, с какой подошли бы техническому собеседованию.
  • Серьезным red flag’ом является хамство или грубость во время разговора. Если вы провалитесь по техническим скилам, то, скорее всего, вы сможете попробовать собеседоваться в эту компанию снова через полгода, например. Но если вы покажете себя конфликтным человеком, с плохими soft skills, скорее всего, в эту компанию вход вам будет закрыт.
  • Подготовьте небольшой рассказ о себе на 3-5 минут, который кратко описывает ваш опыт. Все, кто вас собеседуют, скорее всего, видели ваше резюме, но этот вопрос вам будут задавать снова и снова, и с этим надо просто смириться.

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

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

Зачем компании этот этап

  • На данный момент на позицию стажеров/джуниоров конкуренция выше, чем на более серьезные вакансии. Это позволяет компаниям вводить дополнительный этап собеседования, не сильно боясь случайно потерять хорошего кандидата.
  • Позволяет снизить нагрузку на руководителей: проверить код выполненного тестового задания обычно занимает меньше времени, чем полноценное собеседование.
  • Тестовое задание будет темой для общения на техническом интервью. Вопросы по Java Core больше показывают навыки запоминать теорию, в то время как реальный код позволит лучше понять уровень кандидата как программиста
  • Тестовое задание — необязательный шаг перед собеседованием. Бывают ситуации, когда после технического интервью собеседующий не уверен на 100%: подходит кандидат или нет. В такой ситуации кандидату могут предложить решить тестовое задание, чтобы более объективно оценить уровень.

Какие плюсы для вас от тестового задания

  • У вас есть возможность продемонстрировать навыки (написать код), которые вы будете использовать в реальных рабочих условиях. Вы сможете пользоваться любыми источниками информации, которые потребуются, и сможете потратить на задание столько времени, сколько посчитаете нужным.
  • Если вы только начинаете своей карьерный путь, то выполнение тестовых заданий и обсуждение потом их на собеседовании с senior разработчиком – это реальный опыт, который будет полезен в любом случае: возьмут вас на работу или нет

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

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

Здесь все довольно прямолинейно. Компании оценивают hard/soft skills кандидата. Кандидат, в свою очередь, может напрямую пообщаться с потенциальной командой и задать им все вопросы по проекту/компании.

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

В качестве примера – список тем, которые junior специалист может ожидать на техническом собеседовании (далеко не исчерпывающий):

– Java core

  • Коллекции: нарисовать иерархию, объяснить, чем отличается LinkedList и ArrayList, рассказать, как работает HashMap
  • Обработка ошибок: Checked vs Unchecked, Exception vs Error, try/catch/finally
  • ООП: SOLID, static/non-static методы, интерфейс vs абстрактный класс
  • Streams: что это и зачем, могут ли стримы быть бесконечными, intermediate vs terminal operations, map vs flatMap
  • Java Memory Model: как устроена память в JVM, как работает GC

– Spring

  • Нужно уметь объяснить, зачем он нужен и какие проблемы решает
  • IOC и DI
  • Bean scopes
  • С чем именно из спринга работали, зачем эти компоненты были нужны в вашем проект?

– SQL

  • Нужно уметь писать простые запросы
  • Знать, что такое JOINs, какие бывают, чем отличаются
  • Знать, что такое Aggregate functions, зачем нужны having и GROUP BY

Вопросы по опыту. Для ребят без реального опыта это могут быть pet-projects, курсовые из университета, проекты с IT-курсов

  • В чем суть проекта
  • С какими технологиями удалось поработать
  • Какие были проблемы/трудности

Несколько советов для технического интервью

  • Пишите в резюме то, с чем реально знакомы

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

  • Не стесняйтесь говорить, что вы чего-то не знаете

Объем вопросов, которые можно задать, огромен. Если вы с чем-то не знакомы, скажите об этом честно. Я видел много примеров, когда кандидаты либо начинали оправдываться, либо пытаться отвечать “рядом”. Честный ответ сэкономит время и покажет вас, как человека с хорошими soft skills.

  • Практические задачи

Встречаются довольно часто. Могут быть в формате:

  • Алгоритмическая проблема
  • Реализовать простую функцию или спроектировать класс
  • Починить неработающую программу

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

  • Отстаивайте свою точку зрения без агрессии

Иногда бывает, что интервьюер может начать с вами спорить, чтобы посмотреть, что вы:

  • Готовы отстаивать свою точку зрения
  • Умеете это делать неагрессивно и вежливо

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

  • Умейте задавать вопросы

Есть такая категория вопросов “Решите мне задачу, но я вам не скажу, какую”. По сути, это симуляция ситуации, когда бизнес-заказчик приходит к вам с абстрактными требованиями, а вам надо получить от него всю информацию, которая нужна для построения решения.

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

  • Кто и как часто будет этим пользоваться
  • Как часто погода обновляется
  • Какую погоду именно надо предоставлять
  • Есть ли ограничения по формату

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

Общие советы для собеседования

  • Не бойтесь откликаться на вакансии, которые кажутся вам выше вашего уровня

Чаще всего компании пишут ‘wish list’, каким они видят идеального кандидата. Решать, годитесь вы или нет – задача собеседующих, а не вас. Если компания посчитает, что у вас есть потенциал быть нанятым, они вас позовут.

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

  • Внешний вид важен

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

  • Не стесняйтесь говорить, на какую зарплату вы рассчитываете

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

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

Полезные материалы:

Если вы определились, что профессия Java-разработчик идеально вам подходит, вам уже не терпится применить советы из статьи на собеседованиях, однако не хватает навыков и скиллов, то ждем вас на курсе “Профессия: Java-разработчик” от ProductStar.

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

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

0
Комментарии
-3 комментариев
Раскрывать всегда