Статья

Как проходит техническое собеседование на Java-разработчика

Зиновий Верес — Solution Architect в компании SoftServe, руководитель образовательного направления Lviv IT Cluster. За последние 10 лет  провел более 300 технических собеседований с Java-специалистами разных уровней. 

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

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

Техническое собеседование — это второй этап интервьюирования соискателя в компании. Проводит его уже не HR-специалист, а член команды программистов. В среднем общение длится 60-90 минут. За это время нужно достигнуть главной цели — выявить сильные стороны кандидата. Эта информация нужна не только техническому специалисту, но и рекрутеру компании. Ведь в дальнейшем он может предложить кандидату проект по его интересам или скиллам. 

Цель технического интервью — не «завалить» кандидата, а определить уровень его знаний. 

Первая часть интервью: опыт работы

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

  1. Как была построена его предыдущая команда и какова была его роль.
  2. Как он сам оценивает свою роль на последнем проекте.
  3. Как команда взаимодействовала и согласовывала требования по задачам.
  4. Как команда рассчитывала длительность выполнения задач.
  5. Была ли у команды и у самого кандидата возможность влиять на сам процесс разработки.

Если собеседуют Java-специалиста на позицию Teach Lead`а или Senior, то обращают внимание на его административные способности: как он в предыдущих проектах организовывал работу над кодом, как велся проект с управленческой и технической сторон, и какие выводы в итоге сделал кандидат. 

Обязательные вопросы: 
1. Что, по вашему мнению, стоит изменить в проекте?
2. Какие из принятых вами решений оказались ошибочными и почему? 

Совет: отобразите в резюме все проекты, над которыми вы когда-либо работали. Это поможет интервьюеру увидеть ваш путь развития, как специалиста. 

Вторая часть интервью: техническая

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

Первый этап — практическая часть с заданиями.

Здесь самый распространенный вариант — описать задачу и спросить у кандидата, как бы он ее решил. Например, у потенциального Tech Lead/Architect Зиновий спрашивает: как бы вы обеспечили одновременную поддержку 5-ти тысяч дополнительных пользователей для описанного вами проекта? 

Второй этап — теоретическая часть с вопросами по объектно-ориентированному дизайну

Естественно, кандидат должен знать Java и разбираться в изменениях, которые были внесены в Java SE 8/9 s Java EE 8, Jakarta EE. Также базовый набор вопросов касается SQL/DB Design, программного доступа к базе данных (DB Access) со знанием JPA/Hibernate.

Если ваш уровень Intermid и выше, вы обязательно должны знать, для чего нужно использовать шаблоны проектирования (GoF/GRASP/SOLID/Layered Architecture); какой шаблон использовать, а когда в нем вообще нет необходимости, и как делать рефакторинг кода.

Третий этап — вопросы по архитектуре.

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

  • Дайте полное описание архитектуры проекта: как вы его задокументировали и какие вносили изменения, в чем была их причина?
  • Какие существуют главные качественные характеристики системы (quality attributes)? Почему важны именно они? Как вы их достигали и какие допущения сделали при проектировании системы?
  • Как выбирали фреймворки для проекта, какие были альтернативы и что в итоге определило выбор?
  • С какими проблемами столкнулись, делая запрос в базу данных, и как их решали?
  • Как реализовывали REST-сервисы? С помощью какой библиотеки реализовывали HATEOAS-принцип?
  • Какой версией Java пользовались на проекте? Что из версии Java SE 8/9 планируете использовать?
  • Какие ваши познания в Java EE: что вы знаете о ее составе, что планируете использовать и как происходит ее релиз?
  • Если работали “Out of memory error”, то как решали и отслеживали использование ресурсов?
  • Если работали с “Memory leak”, то как искали причину и организовывали работу с памятью? 

Зачем на интервью задают каверзные вопросы

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

Как кандидату вести себя на интервью

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

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

Третье — просите фидбек после собеседования. Интервьюер сможет подробно рассказать вам, какие у вас сильные стороны, а над какими скиллами еще необходимо поработать. 

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

P.S. С какими материалами ознакомиться при подготовке к собеседованию 

Зиновий Верес рекомендует ознакомиться с двумя книгами: Джошуа Кериевски «Рефакторинг с использованием шаблонов» и Len Bass "Software Architecture in Practice". 


Читайте также: 

Как изучать Java и найти работу в IT

Поиски первой работы в IT: сложности и способы их преодолеть

Как найти работу в IT и на ней задержаться: PM о пользе soft skills 

Подпишись на еженедельный дайджест и получай на почту:

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

Наши каналы в социальных медиа: