Собеседование с Java-разработчиком

Добавлено: 27/12/2017
3523

Языков программирования существует великое множество, но Java — один из самых популярных языков для back-end разработки, поэтому он первый в нашей подборке.

 

 

 

 

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

Есть три основных классификации:

  • Java EE (enterprise edition) — подходит для разработки системы аукционной закупки рекламы, CRM/CMS, решений, связанных с финансами: процессинг транзакций, документооборот, обработка заявок.
  • Java SE (standart edition) — скорее подходит для разработки пользовательских приложений, в первую очередь — для настольных систем, которые не требуют отдельного сервера для работы.
  • Java ME (micro edition) —  для устройств, ограниченных в ресурсах, например: мобильные телефоны или проигрыватели дисков Blu-ray.

Самой востребованной версией является Java EE.

Разберёмся с наиболее популярными фреймворками. Они представляют собой программное обеспечение, позволяющее склеить различные компоненты проекта. Spring — это самый популярный web-фреймворк для Java, вокруг которого выросла целая экосистема из дополнительных модулей, подфреймворков, фреймворках в фреймворке и билд-тулов. Ключевыми из них являются:

  • Spring MVC — каркас, основанный на HTTP и сервлетах, предоставляющий множество возможностей для расширения и настройки.
  • Spring Data — обеспечивает доступ к данным: реляционным и нереляционным БД.
  • Spring Security — авторизация и аутентификация, доступ к данным и методам.

Типичное web-приложение, скорее всего, будет включать набор вроде Spring MVC, Data, Security. Текущий рейтинг популярности Java фреймворков можно посмотреть вот здесь.

Чтобы нанять java-разработчика, нужно думать как java-разработчик. Это действительно так, нужно понимать, как люди видят этот рынок. Большинство специалистов этого направления работают в разработке крупных, зачастую корпоративных систем. Практикуется как инхаус, так и различные виды аутсорса. В последнем варианте есть как свои плюсы, так и свои минусы. Если выбирают зарубежный проект, как следствие, будут высокие зарплаты, бонусы и ДМС, общение с заказчиком на английском языке, возможные командировки. Кроме того, это большие проекты, зачастую с интересными процессами, архитектурой и задачами. Обратная сторона - медленная скорость принятие решений на проекте, не самые современные технологии, не всегда есть возможность ощутить значимость своей работы из-за бюрократии на стороне заказчика.  

На собеседовании я часто спрашиваю, какая была самая интересная задача за последний год. Это показывает, как человек умеет рассказывать о работе и насколько сложные задачи он умеет решать. Обязательно спрашиваю о 3-4 технологиях из резюме, чтобы проверить их знание. Всегда очень подозрительно видеть 15-20 технологий у человека, который подразумевает отличное владение ими. Ну и обязательно спрашиваю, что человека интересует помимо зарплаты, потому что мне интересно работать с ребятами на долговременной основе, а не пару месяцев.

Андрей Ребров, CTO и Co-Founder в Scentbird

Типичные вопросы, которые задают на собеседовании:

  • Какие задачи выполняете на текущем месте?

  • Какие библиотеки и фреймворки используете?

  • Какие проекты будут наиболее интересными?

  • Как хотите развиваться дальше?

  • Изучаете ли другие языки программирования?

  • Как относитесь к возможным front-end задачам?

Если говорить о работе в небольшой компании, в которой нет отдельной команды тестировщиков, немаловажным моментом могут быть навыки работы с unit-тестами JUnit, TestNG или Mockito.

ПОДПИШИТЕСЬ НА БЛОГ