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

Языков программирования существует великое множество, но 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.