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

Англоязычные сайты пестрят ими, Java core: javainterviewjava-interview-questions

И, допустим, довольно подробные по Spring: spring-interview-questionsspring-interview-questions-faqsSpring-Interview-Question

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

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

Возьмем собеседование в компанию Luxoft.

Список тем, по которым вас будут «пытаться» спрашивать состоит из:

  1. Java basics
  2. Exceptions
  3. Collections
  4. Multithreading
  5. JDBC
  6. XML
  7. JMS
  8. Spring (Beans, MVC, DAO, AOP)
  9. Hibernate
  10. Servlets, JSP
  11. Design Patterns
  12. Core Oracle
  13. SQL (PL/SQL)
  14. UNIX/shell

Реже можно встретить вопросы на тему:

  • Spring Security
  • Struts
  • EJB 2.0/3.0
  • Maven
  • XLST

Для интервьюеров проводят инструктаж. Он выглядит примерно так.

Сначала обязательно спрашиваем первые три темы (basic, exceptions, collections), без вариантов. Начинаем прощупывать кандидата простыми вопросами. Если все идет живенько, то углубляется в тематику, понимаем насколько кандидат эксперт в данной области.

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

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

Для Junior разработчиков, как правило, все ограничиваеться темой 1-6, 10 и 13. Больше 1-2-х вопросов по Spring и Hibernate редко задают, обычно даже и на них не отвечают. Но если отвечают, то это уже вызывает живой интерес и уже можно отметить что соискатель хотя бы немного знает.  С шаблонами и Linux тоже все печально, потому что без опыта им что-либо рассказать крайне сложно.

По каждой теме выставляется оценка от 0 до 5. Где 0 — не знает вообще, 5 — эксперт. У Junior больше 2 почти некогда не бывает, потому что 3 — это уже senior уровень.

Как же кандидат может понравиться интервьюеру?

Прежде всего — это отличное понимание JavaCore, обратите внимание на Multithreading.

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

Знание одной темы на экспертном уровне. Был у меня на собеседовании Junior, который отлично знал SQL, ну вот просто супер: любые запросы, любой сложности, транзакции, уровни изолированности, легко решает задачи. Конечно я его выделил из общей массы.

Отвечать четко и по теме. Не очень красиво выглядит игра в отгадалки. Вы на проекте тоже будете гадать?

Как готовиться к собеседованию?

Раз вы джун, то конечно от вас ожидают теорию. Но не просто сухие выкладки текста, а теорию своими словами, с пониманием в глазах.

Сможете ли вы так, просто прочитав книгу?

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

После нескольких месяцев самостоятельно практики, и за 2–3 недели до начала первых интервью, освежаем в памяти всю теорию. И начинанием нон-стоп собеседования.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.