Интервью Java Junior Developer

Интервью Java Junior Developer

Подготовка к первому собеседованию
Следующий шаг после составления резюме без релевантного опыта.

Для удобства, обозначу в первом же абзаце, что мысли - субъективные, с которыми можно не соглашаться, дополнять, критиковать; буду рад обратной связи!

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

Попробую описать процесс интервью, лайфхаки, ссылки. Чего ждать, к чему готовиться, чтобы назначенный день «Х» не был чем-то ужасным и загадочным, меньше нервничали. 


Собеседование поделим на два этапа

I. Soft-skills, знакомство с кандидатом:

В первую очередь, после формального знакомства у интервьюеров возникнет вопрос мотивации. Вашим будущим коллегам хотелось бы убедиться, что к сфере вы относитесь серьезно, и не уйдете из компании через пару месяцев со словами «понял, что не моё». 

Предлагаю заранее проработать ответы на вопросы, которые будут заданы с высокой долей вероятности именно к junior-developer, и в особенности, специалистам без релевантного опыта:


Почему IT? 

Ответ в стиле «хачу многа деняк» не прокатит. В современном мире многие понимают, что «такие лыжи далеко не уедут». 

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

Все это близко нам или нет, почему?


Почему Java?

Наверняка выбору первого языка программирования (а может и не первого) предшествовали определенные факторы.

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


II. Hard-skills, тех. вью:

В начале прошлой статьи говорил о том, что требования на позицию «Junior Java Developer» довольно размыты.

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


Java Core (Репозиторий для подготовки к интервью + приложу PDF со схожим назначением в комментариях):  

  • Принципы ООП, плюсы и минусы; примеры
  • Модификаторы доступа
  • Класс Object, методы
  • Abstract Class и Interface: сходства и различия
  • Иммутабельные классы, как создать (пробежаться по комментариям)
  • Class String (String Pool), StringBuilder
  • Коллекции: иерархия, как устроены; сложность вставки, поиска; применимость
  • Интерфейс Map (habr)
  • Контракт hashcode&equals (отлично ложится на пример с hashmap)
  • throw Exception: иерархия, отличия и как отлавливать (Skillbox статья)
  • Stream API: конвейерные и терминальные операции (вебинар Константина Шибкова, habr-шпаргалка


SQL (habr-шпаргалка)

  • Что такое реляционная база данных? 
  • Структура запроса, основные операторы
  • INNER JOIN, LEFT/RIGHT JOIN (YouTube)


Hibernate:

  • Что такое JDBC, ORM
  • Конфигурирование Hibernate, ddl-auto значения
  • Связи OneToMany, OneToOne, ManyToMany (примеры из жизни, как связать сущности в коде) 


Spring:

  • Что такое Spring? В чем отличие от Spring Boot? Какие преимущества дает технология (Dependency Injection, Inversion Control)
  • ApplicationContext, конфигурирование Spring Boot приложения
  • Что такое @Bean и какие бывают?
  • @Repository, @Service, @Controller - рассказать про компоненты и их взаимодействие друг с другом. 


+ Bonus: 

  • SOLID, чистый код - расшифровка акронима, примеры 
  • Многопоточность: основные понятия
  • NoSQL
  • Паттерны, Алгоритмы - безусловно будет плюсом, как и все знания поверх. Но в моем понимании - знание этих вещей не сыграют роли в работе на позиции джуниора.


💡 Tips and tricks

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


Ответа нет, как быть в таком случае?

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

Можно сказать так, например:

  • прямого ответа я не дам, но рассуждаю следующим образом ...
  • ответил бы [так], потому что.

Шпаргалки? О, да!

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

Поэтому, не стесняемся писать шпаргалки:

  • Формулировки определений
  • Иерархию коллекций, исключений
  • Значение акронимов (ACID, SOLID и т.п)
  • Синтаксические конструкции и т.д

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

PS: кое-кто даже успевает гуглить ответы ¯\_(ツ)_/¯


Непонятен вопрос ¿

Переспрашиваем, уточняем цель вопроса. Если все еще тяжело - просим подсказку, пробуем ответить (смотрим первый совет "Ответа нет, как быть в таком случае")


Ручка под рукой

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


Завершение

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

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



Report Page