В IT-кругах есть уже сложившийся мем о рекрутерах, которые предлагают пройти собеседование на позицию JavaScript-разработчика Java-разработчику. Отсутствие базовых знаний у HR’а вызывает у профессионалов не только смех, такой специалист представляет свою компанию не в лучшем свете, снижая шансы к нулю на отклик опытных программистов.
Google, Yandex, Facebook частично использовали Java, известная игра Minecraft, и знакомые всем — Telegram, Ebay, Amazon, Netflix написаны на этом языке. Закономерно, что в рейтинге языков программирования TIOBE Java занимает верхние строчки. Также в доменах банки (например, Сбербанк, Альфа Банк) и финансы на Java написано большое количество софта, что рождает большой спрос на доработку и как следствие — запросы на подбор специалистов Java. Также стоит отметить, что Android использует всего два официальных языка — Java и Kotlin, т.е., спрос на программистов Java, готовых создавать, в том числе приложения и игры пока будет расти.
Рекрутер должен базово разбираться в Java, чтобы не допускать досадных ошибок при отборе кандидатов. Если вы в начале своего карьерного пути, предлагаем вам небольшой совместный обзор на тему: что же нужно знать рекрутеру о языке Java?
От чего следует отталкиваться рекрутеру для своего погружения в мир Java?
В первую очередь, давайте рассмотрим типовые требования в описаниях вакансий.
Естественно, что у каждой компании в зависимости от сферы ее деятельности и текущих задач требования к программисту Java будут отличаться, но базово все организации будут запрашивать:
- Опыт
- Знать синтаксис, библиотеки и фреймворки языка Java.
- Что кроется за аббревиатурой ООП?
- Понимать, как устроены базы данных MySQL, Oracle и др.
- Различать методологии: гибкие и каскадные.
- Знать Git.
- Знание паттернов проектирования.
- Профильное образование.
- Английский язык.
Для подтверждения наших слов возьмем реальную вакансию Middle Java Developer (источник https://hh.ru/vacancy/42817616). Первая картинка в карусели ↓.
Посмотрите на ключевые навыки, которые требуются от Java программиста и проверьте себя, что вам из этого знакомо?
Java
Объектно-ориентированный язык программирования от компании Oracle, созданный в 1995 году. Java имеет много общего с семейством языков С, он проще, но это не самый легкий язык для изучения в сравнении с тем же Python. У Java есть свой синтаксис, т.е. если разработчик не знает синтаксис этого языка, то программа, написанная им работать не будет.
У Java есть классификации:
- Самая востребованная версия — это Java Enterprise Edition (коротко ее называют Java EE). Вот именно ее чаще всего используют в домене финансов для разработки решений для процессинга транзакций, заявок, CRM/CMS и других систем.
- Java Standard Edition (Java SE) используется для разработки пользовательских приложений.
- Java Micro Edition (Java ME) применяется для разработок для мобильных телефонов.
Фреймворки Java
Фреймворк — ПО, автоматизирующее работу разработчика. Оно помогает убыстрять процесс кодинга за счет готовых кодов, т.е. программисту не надо тратить время на написание его с нуля, а также “склеивать” проект, то есть соединять его различные компоненты.
Самые популярные фреймворки — Spring (и его экосистема: Spring Boot, Spring Cloud, Spring Data, Spring core и Spring MVC) Hibernate и другие.
Библиотеки
В библиотеках хранятся протестированные коды, которые программисты могут использовать в своей задаче. Опять же для того, чтобы не писать код с нуля, разработчик использует готовые решения из библиотек, которые в свою очередь разбиты на пакеты и классы. Кроме стандартных библиотек Java используются многие другие, например: JUnit, JQuery, JHipsterи.
Базы данных: Oracle, MS SQL
Базы данных например: Oracle, MS SQL Server, MySQL, Postgres и т.д используются для хранения данных. У каждой этой системы есть своя специфика. У Java есть прикладной интерфейс API, который называется JDBC (The Java Database Connectivity), определяющий единый механизм взаимодействия с базами данных посредством команд SQL.
JPA
Выше мы выяснили, что Java умеет работать с базами данных при помощи JDBC. Но чтобы не писать однотипный «обслуживающий» код для сохранения Java объектов в базу данных и наоборот, была создана технология, которая их связывает — ORM (Object-Relational Mapping). Спецификация JPA (Java Persistence API) используется именно для этого, т.е. JPA — это технология, обеспечивающая связь Java объектов и записей в базах данных.
ООП
Напомним, что Java является объектно-ориентированным языком программирования т.е. концепция разрабатывалась из идеи, что во главе программного кода лежат объекты (проще говоря — кусочки программ). Это способ представления кода, чтобы его было легче читать при сложном кодировании.
Объясняя на пальцах ООП, можно привести аналогию с вашей бытовой техникой. Допустим у вас есть стиральная машина, сушильная машина и утюг — это объекты. Как и в ООП, этот каждый объект выполняет свою функцию: стирает, сушит и гладит, а внутри них есть куча составляющих: моторы, нагревательные объекты и тд. — это свойства объекта. Используя ваши объекты, вы получаете чистую и выглаженную одежду — это готовый код.
Часто на собеседованиях кандидата просят рассказать о 4 принципах ООП, а это: инкапсуляция, абстракция, наследование и полиморфизм. Предлагаем вам самостоятельно погрузиться в их изучение.
Тестирование
Если от Java программиста требуется протестировать код, то самыми популярными ПО будут: unit-тесты JUnit, TestNG или Mockito.
Рекрутеру достаточно знать пару из них на базовом уровне.
Зарплата Джава-разработчика в СНГ
В Беларуси по данным https://salaries.dev.by/ средняя зарплата Java программиста составляет около 1650 долларов США. Зарплаты варьируются в зависимости от уровня претендента, заработок: Junior’а стартует от 600 долларов США, когда Senior’ы достигают плюс-минус 4000 долларов США.
По данным https://russia.trud.com/salary/692/3331.html медиана Java-разработчика в России 141 795 рублей, что составляет около 2000 долларов США. В Украине такая же ситуация, по данным DOU.UA средняя зарплата Java специалиста с опытом работы 1-3 года — 2000 долларов США, для уровня Senior — 4500 долларов США. В среднем зарплата Java разработчиков повышается в год на 5–10%.

Задача на хантинг, источник https://hh.ru/vacancy/42817616

Текущий рейтинг популярности Java фреймворков можно найти здесь.

Зарплаты в Беларуси https://salaries.dev.by

Как Java управляет базами данных
На занятиях в школе HRPR вы пройдете технический ликбез
Чтобы знать, какие особенности следует учитывать при поиске самых разных специалистов.