Навыки, необходимые для продвижения по карьере в Java

СохранитьСохраненоУдалён 0

С 2001 года самая низкая позиция Java в рейтинге Tiobe была # 2. По данным StackOverflow Developer Survey, в 2019 году Java стала 5-м по популярности языком программирования в мире.

Работа с таким распространенным языком может потребовать много специфических навыков. Таким образом, мы попытались выяснить, какие навыки необходимы именно разработчикам Java для успешной карьеры.

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

За 12 месяцев Вы познакомитесь с алгоритмами и структурами данных, а также инструментами и библиотеками, которые используются в разработке приложений на языке Java.

Навыки, которыми должны обладать Java-разработчики

Ниже Вы увидите рейтинг навыков, которые упоминались чаще всего после обработки 300 вакансий для разработчиков Java с таких сайтов, как AngelList, StackOverflow, LinkedIn и др. Вакансии были от компаний разных размеров и сфер деятельности.

навыки для Java разработчика

В 2018 году Java EE была переименована в Jakarta EE, поскольку теперь она разрабатывается под эгидой Eclipse Foundation. Тем не менее, старый термин все еще часто встречается в спецификациях рабочих мест, поэтому он и включен в таблицу вместо нового названия.

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

вернуться в меню ↑

Ключевые моменты

Главный вывод: спрос на разработчиков Java высок. Если вы введете «Java» в строке поиска LinkedIn, вы получите 370 тыс. вакансий.

Для сравнения, для Python — 249 тыс. вакансий и 278 тыс. для JavaScript. Ниже приведены другие ключевые моменты о текущих и будущих тенденциях в разработке Java.

Веб программирование

Большинство компаний предпочитают создавать серверные части своих веб-приложений с использованием Spring MVC, тогда как наиболее распространенными интерфейсными платформами являются Angular (95) или React.js (50).

Конечно, это не означает, что Java-разработчик должен хорошо разбираться во внешних интерфейсах JavaScript, но общее понимание того, как эти технологии работают и взаимодействуют с вашим Java-кодом, безусловно, будет полезно.

Среди тех серверных сред Java, которые не упомянуты в диаграмме, Apache Struts (33) был самым популярным. Последняя версия Struts была выпущена 5 лет назад, но это не относится к Spring, который постоянно пытается идти в ногу с последними обновлениями Java.

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

Обработка данных

Большие данные — не так часто используются на Java, но, как показывают исследования, в ближайшем будущем будут. По данным IBM, 90 процентов всех данных было создано за последние два года, поэтому нам определенно нужны мощные и стабильные решения для обработки всей этой информации.

Возможно, Java когда-нибудь поделится рынком Data Science с Python. На данный момент некоторые работодатели уже хотят, чтобы кандидаты были знакомы с такими решениями, связанными с данными, как Apache Kafka (49), Hadoop (27), Azure (23) и Spark (21).

Языки JVM

Ни один из языков JVM не упоминался достаточно часто, чтобы попасть в приведенную выше таблицу. Тем не менее, они все еще встречались в некоторых спецификациях работы, и самым популярным был Scala (33). Если вы еще не знакомы со Scala, возможно, стоит уделить этому внимание. Особенно, если вы работаете с данными.

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

За 12 месяцев Вы познакомитесь с алгоритмами и структурами данных, а также инструментами и библиотеками, которые используются в разработке приложений на языке Java.

Microservices

Многие опытные разработчики считают Java лучшим языком для разработки микросервисов. Разработчики также любят микросервисы: лучшая поддержка микросервисов является основным приоритетом сообщества для Jakarta EE.

Расширение ваших знаний об этой методике разработки программного обеспечения является обязательным в 2019 году. Кстати, вы также можете узнать больше о сервисных сетках. Хотя термин Istio (7) упоминался не так часто, как Kubernetes (18), подобные технологии оркестровки определенно станут более популярными с ростом популярности приложений для микросервисов.

Веб-серверы и базы данных

Наконец, если говорить о базах данных NoSQL, работодатели предпочитают: Cassandra (41) и MongoDB (33). Что касается веб-серверов, Tomcat (35) и Apache (35) были лидерами.

вернуться в меню ↑

Тенденции Java: мнения экспертов

Вот что говорят эксперты о грядущих тенденциях Java:

«В ближайшем будущем мы, вероятно, увидим повышенный интерес к Quarkus и связанным с ним технологиям, работающим на GraalVM. Например, это может быть Vert.x.»

Джеймс Губернатор, Основатель RedMonk

Относительно низкая популярность Spring Boot по сравнению с «классическим» Spring удивила меня. С другой стороны, я был приятно удивлен вторым местом Java EE.

JPA (Java Persistence API), один из API Java EE, был указан как отдельный элемент, наряду с высоким спросом на навыки работы с SQL. Высокий спрос на навыки Maven совпадает с моим реальным опытом: Maven является одним из ведущих инструментов сборки.

Apache Kafka в настоящее время очень популярен на конференциях, но он не применим в качестве общей архитектуры для всех проектов, что объясняет его относительно низкую потребность. Я бы также ожидал, что интерес к навыкам Google Cloud и Azure повысится — оба облака уже активно используются в проектах.


Адам Бьен, Java Чемпион, JavaOne Rockstar Консультант


Сегодня Spring Framework и архитектура микросервисов де-факто являются стандартами в мире Java. Но постоянно развивающаяся отрасль требует от разработчиков программного обеспечения новых навыков в дополнение к освоению существующих.

Сетка сервисов и прокси сервисов меняют способ разработки микросервисов. Поэтому работодатели ищут инженеров, которые работают с Istio, Linkerd2 или Envoy. Поскольку все больше и больше компаний переходят на публичные и гибридные облачные вычисления, важно иметь опыт работы с Amazon AWS, Google Cloud Platform или Microsoft Azure.

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

Получите некоторый опыт работы с реактивными средами (Project Reactor, RxJava, Spring WebFlux и т. Д.) и узнайте, что отличает реактивное программирование от построения реактивных систем.

Что касается хранения данных, то NoSQL сегодня являются необходимыми навыками для инженеров, но глобальные системы повышают потребность в новом классе решений для управления базами данных.

Строго согласованный Google Spanner — это пример готовой к работе базы данных NewSQL, предоставляемой в качестве сервиса. Хотя трудно предсказать популярность самих решений для хранения данных NewSQL, будущее за высокораспределенным программным обеспечением, поэтому важно понимать принципы, лежащие в основе согласованных систем, особенно согласованных протоколов.


Алексей Борисов, Старший инженер-программист в Netflix, экс-Гуглер


«Этот рейтинг навыков звучит для меня разумно для корпоративного Java-проекта. Однако я больше не вижу большого спроса на SOA.

Что касается Spring и Spring Boot, они часто используются одновременно, поэтому различие, вероятно, больше не актуально.

В будущем я вижу тенденцию и растущий интерес ко всем видам облачных технологий.»


Себастьян Дашнер, Чемпион Java


«Java-разработчикам (как и всем разработчикам) всегда будет полезно глубокое понимание основных инструментов и языков, таких как Git и SQL.

Независимо от того, какую ОС вы используете, любой язык сценариев — это еще одна вещь, которая может ускорить вашу работу. Разработчики, которые хотят продвигаться вперед, должны также знать об инфраструктуре, в которой работает код (облако), и как он туда попадает (CI).

Наша задача — не писать код, а менять программное обеспечение. Понимание более широкой системы, в том числе бизнес-сферы, заставит разработчиков принимать лучшие решения на Java и любом другом языке ».


Джессика Керр, Разработчик в Атомист

Java — это зрелый язык со стабильным набором инструментов для различных нужд. Однако, поскольку он постоянно развивается, держать руку на пульсе всегда полезно для вашей карьеры. Надеюсь, эта статья поможет вам быть в курсе последних тенденций Java!

Есть вопрос или дополнение?

      Оставить отзыв

      EdAdvisor
      Регистрация
      Сброс пароля
      Сравнить товары
      • Итого (0)
      Сравнить
      0