{"id":14284,"url":"\/distributions\/14284\/click?bit=1&hash=82a231c769d1e10ea56c30ae286f090fbb4a445600cfa9e05037db7a74b1dda9","title":"\u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0444\u0438\u043d\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0430 \u0442\u0430\u043d\u0446\u044b \u0441 \u0441\u043e\u0431\u0430\u043a\u0430\u043c\u0438","buttonText":"","imageUuid":""}

RoadMap для Java-разработчика 2023

Если вы хотите стать профессиональным Java-разработчиком или хотите поднять свои навыки на новый уровень, но не уверены, какие технологии, инструменты, фреймворки и библиотеки вам следует освоить, тогда вы пришли по адресу. Я делился множеством дорожных карт, таких как RoadMap веб-разработчика, RoadMap инженера DevOps и RoadMap React.js разработчика.

Один из запросов, который я получал от многих своих читателей, касался создания дорожной карты для Java-разработчиков. Поскольку я постоянно работал на Java, создать дорожную карту Java-разработчика не составило труда.

В любом случае, я наконец-то готов поделиться с вами своей RoadMap разработчика на Java. Она содержит мой многолетний опыт и беспрепятственный путь к тому, как стать экспертом в данной сфере.

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

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

Я сделал её простой, чтобы большинство людей могли следовать этому пути, включил только самое необходимое. Но если будет достаточно желающих, я подумываю опубликовать Java Developer RoadMap 2.0, чтобы добавить некоторые продвинутые вещи, такие как внутренние компоненты JVM, профилирование, модули Java 9, облачная Java, различные облачные платформы например, AWS, GCP или Azure, а также более продвинутые инструменты, такие как Chef для DevOps и многое другое.

Давайте рассмотрим эту дорожную карту разработчика на Java, чтобы понять, как стать Java-разработчиком в 2023 году!

Обязательные навыки для любых Java-разработчиков

Теперь давайте шаг за шагом рассмотрим эту RoadMap Java-разработчика и выясним, как вы можете овладеть необходимыми навыками, чтобы войти в эту сферу в 2023 году:

1. Git & Github

Это одна из самых популярных систем контроля версий. В настоящее время невозможно жить без Git-а. Как программист, вы должны быть знакомы с Git и Github, основными концепциями Git, такими как branch, master, checkout, checking, push и pull, а также с основными командами git, такими как git diff, git commit и т.д.

Я настоятельно рекомендую Java-разработчикам изучить Git и Github, и если вы уже работали с ними, вам следует повысить уровень своих навыков работы с этими инструментами. Если вам нужен ресурс, то для начала вы можете ознакомиться с The Git Complete Guide на Udemy.

2. Linux

Не только для веб-разработчика, но и для любого программиста командная строка Linux очень важна. Я настоятельно рекомендую вам потратить некоторое время на её изучение. Поскольку большинство Java-приложений являются серверными, вы часто обнаружите, что они работают на серверах Linux.

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

Если вам нужен ресурс для повышения уровня ваших навыков работы с Linux, я рекомендую ознакомиться с курсом Linux Mastery: Master the Linux Command Line in 11.5 Hours на Udemy. Это отличный курс для всех, кто хочет изучить команды Linux с нуля.

Если вам нужно больше ресурсов, вы можете воспользоваться этими бесплатными курсами, чтобы начать изучать Linux.

3. Структуры данных и алгоритмы

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

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

Если вы знаете продвинутые структуры данных, такие как Trie, B-Tree, AVL tree, то это очень хорошо. Но, если вы ещё не знакомы с ними, тогда я предлагаю вам найти побольше информации об этом в интернете.

4. HTTP / HTTPS

Протокол HTTP является основой в интернете, и хорошее знание как HTTP, так и HTTPS является обязательным навыком для веб-разработчика. По крайней мере, вы должны знать о том, как работает HTTP, каковы различия между HTTP и HTTPS, их цели и т.д.

5. Основы информатики

Если вы создаёте глобальные приложения, которые отображают информацию на многих разных языках по всему миру, то вы должны хорошо разбираться в кодировках символов.

По сути, они сообщают браузеру, как отображать ваши данные. Если вы хотите узнать больше о компьютерных науках, вы также можете ознакомиться с курсом Computer Science 101: Master the Theory Behind Programming на Udemy.

6. SQL

Это ещё один распространённый технический навык, которому должен научиться каждый Java-разработчик, поскольку он поможет вам устранять внутренние неполадки. Если вы знаете SQL, вы можете понять хранимую процедуру, запросить базу данных и выяснить, находится ли проблема на уровне Java или на уровне базы данных.

Я настоятельно рекомендую каждому программисту, будь то Java-разработчик или Python-разработчик, изучить SQL. Это один из тех навыков, которые легко освоить и которые долго будут служить вам в вашей карьере программиста.

Если вам нужен ресурс, я предлагаю ознакомиться с Complete SQL + Databases Bootcamp: Zero to Mastery в ZTM Academy.

7. Шаблоны проектирования

Нет сомнений в том, что каждый программист должен знать Git и Github, поскольку они являются стандартом с точки зрения контроля версий и хранилища кода. Если вы хотите изучать и осваивать шаблоны проектирования, в частности шаблоны проектирования ООП, то я предлагаю вам присоединиться к курсу Дмитрия Неструка Design Patterns in Java на Udemy. Это отличный курс для изучения современной реализации классических шаблонов проектирования на Java.

Дорожная карта разработчика Java на 2023 год

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

1. Инструменты

Раздел "Инструменты" разделён на различные области. Во-первых, IDE, которая является вашим основным инструментом и может выполнять практически всё, что вам необходимо. Например: компилировать, запускать, отлаживать, профилировать, тестировать, сравнивать файлы и код, рефакторинг и многое другое.

1.1 IDEs

Для разработчиков Java есть две основные IDE: Eclipse и IntelliJIDEA. Вы можете выбрать любую из них. Так как раньше я использовал Eclipse, а в настоящее время работаю в IntellijIDEA, мне они нравятся обе, но большинство Java-разработчиков, которых я знаю, работают именно в IntellijIDEA.

Я предлагаю вам освоить все основные функции IDEA, которые она предлагает, чтобы стать настоящим мастером Java. Если вам нужен ресурс, я думаю, что IntelliJ IDEA Tricks to Boost Productivity for Java Devs - отличное вариант для начала.

1.2 Инструменты сборки

Вторая часть - это инструменты сборки (такие как Maven и Gradle), которые нужны вам для создания и развёртывания ваших проектов. Любого из них было бы достаточно. Для всех новых Java-проектов отдавайте предпочтение Gradle, он гораздо более лаконичен, чем Maven.

Если вы хотите изучить как Maven, так и Gradle, доступных ресурсов не так много. Если вы поинтересуетесь моим мнением, я рекомендую курс Apache Maven: Beginner to Guru Джона Томпсона на Udemy.

А если вы хотите изучать Gradle, я предлагаю вам ознакомиться с Gradle for Java Developers от другого замечательного преподавателя Udemy, Бхарата Типпиредди.

1.3 Контейнеры и инструменты DevOps

И, третья и наиболее важная часть включает в себя контейнеры, такие как Docker и Kubernetes, инструменты CI / CD, такие как Jenkins и TeamCity, и инструменты автоматизации инфраструктуры, такие как Ansible.

Из них Docker является наиболее важным, потому что он упрощает настройку вашей среды разработки, а также упрощает развёртывание микросервисов Java.

Kubernetes - это инструмент следующего уровня, который на самом деле не нужен всем Java-разработчикам, особенно если вы не занимаетесь DevOps и не управляете такими вещами, как масштабирование и развёртывание. Но его будет полезно освоить с точки зрения знаний.

Я предлагаю вам хорошенько освоить Docker и получить базовые знания Kubernetes. Если вам нужны ресурсы, я рекомендую курс Максимиллиана Шварцмюллера Docker & Kubernetes: The Practical Guide на Udemy. Вы можете изучить оба этих инструмента на одном курсе.

2. Java APIs

Следующая важная вещь, которую следует изучить - это API JDK, которые очень, очень важны для любого Java-разработчика. Это довольно большой раздел, и именно поэтому он разделён на основные области, такие как Java Collections framework, Java Concurrency, Java IO и Java 8 API. Давайте рассмотрим каждую из них:

2.1 Java Collections Framework

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

По крайней мере, вы должны знать обо всех повседневных объектах, таких как ArrayList, HashMap, HashSet, LinkedHashSet, TreeSet и т.д. Каждый из них имеет своё собственное свойство, например, ArrayList - это динамический массив, который может расти, HashMap - это стандартная реализация хэш-таблицы, которую можно использовать для хранения пар ключ-значение.

Аналогично, HashSet - это реализация набора, которая не допускает дублирования элементов. Я настоятельно рекомендую вам ознакомиться с курсом Ричарда Уорбертона Java Fundamentals: Collections на Pluralsight, чтобы углубленно изучить Java Collection Framework.

2.2 Java Concurrency

После Java Collections следующий, наиболее важный API в Java связан с многопоточностью и параллелизмом, и я твердо верю, что если вы хотите быть компетентным Java-разработчиком, вы должны хорошо понимать Java Concurrency API и владеть им.

Вы должны не только иметь глубокое понимание фундаментальных понятий, таких как поток, возможность выполнения, блокировка объектов и синхронизация, но и должны быть знакомы с такими понятиями, как deadlock, livelock, состояние гонки, и как с ними бороться.

Вам также следует узнать о передовых концепциях Java, таких как синхронизаторы, добавленные в Java 5 и последующие версии. Я имею в виду CyclicBarrier, CountDownLatch, Phaser CompleteableFuture и т.д. А также о фьючерсах и о том, как выполнять асинхронную операцию в Java.

Я предлагаю вам присоединиться к углубленному курсу, такому как Java Concurrency in Practice bundle, от Хайнца Кабуца, чемпиона Java и авторитета, когда дело доходит до параллелизма и шаблонов проектирования. Этот курс немного дорогой, но вы изучите гораздо больше концепций в глубину, что делает его полностью оправдывающим ваше время и деньги.

С другой стороны, если цена является проблемой, вы также можете ознакомиться с этим курсом на Udemy — Concurrency, Multithreading, and Parallel Computing in Java, который не будет стоить вам больше 10 долларов, если вы получите его на распродажах Udemy flash, которые происходят каждый месяц. Это также отличный курс для изучения параллелизма и многопоточности на Java.

2.3 Java IO

Я опросил более 100 Java-программистов и заметил одну закономерность: все они очень мало знают об API ввода-вывода Java и NIO по сравнению с Java Collections и Java Multithreading API. Я могу понять, что многие люди тратят много времени на изучение этих двух API, но вы не можете оставить позади эти критически важные аспекты.

Если вам нужно закодировать реальное базовое приложение Java, вам нужно будет использовать такие классы, как File, InputStream, OutputStream, Reader, Writer из java.io, который является ядром Java IO API. Аналогичным образом, вам также необходимо знать о ByteBuffer, FileChannel, Selector и других важных классах из java.nio API, если вы хотите написать приложение на основе сокетов.

К сожалению, существует не так много специализированных ресурсов по обучению Java IO и Java NIO API, но вы можете найти общедоступную информацию в интернете.

2.4 Java 8 API

Теперь следующий и ещё один необходимый API, который должен изучить Java-программист - это функции Java 8, которые полностью изменили способ программирования Java в наши дни. Чтобы стать разработчиком Java в 2023 году, вы должны знать, как использовать лямбда-выражение, Stream API, дополнительные классы и новый API даты и времени.

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

Когда дело доходит до изучения функций Java 8, на рынке доступно множество отличных ресурсов. Тем не менее, если вы уже знаете Java, я предлагаю вам выбрать ресурс, который фокусируется только на функциях Java 8 - Java 8 for Experienced Developers: Lambdas, Stream API & Beyond. Таким образом, вы сможете выучить Java 8 в кратчайшие сроки.

Хотя функции Java 8 необходимы для разработчиков Java, если вы можете, пожалуйста, ознакомьтесь со всеми другими новыми функциями, введёнными с Java 9 по Java 13, такими как модули, var для локальных переменных, статические фабричные методы для коллекций, текстовый блок, строка в Switch и многое другое.

3. Фреймворки

Самое лучшее в Java - это то, что у неё динамичная экосистема, а это значит, что существует множество фреймворков и библиотек практически для всего. Обычно я не предлагаю разработчику Java изучать фреймворк до тех пор, пока ему не понадобится использовать его в своём проекте. Тем не менее, есть некоторые фреймворки и библиотеки, которые, я считаю, должен знать каждый разработчик Java, такие как Spring, Spring Boot, Hibernate, Log4j, JUnit и т.д.

3.1 Spring Framework

Если вы хотите стать разработчиком Java в 2023 году, я настоятельно рекомендую вам сначала изучить Spring Framework. Это один из самых популярных фреймворков Java, и почти каждое отдельное Java-приложение, над которым я работал за последние 5 лет, использует его.

Spring Framework поощряет написание чистого кода, который легче тестировать и поддерживать, предоставляя вам такие функции, как внедрение зависимостей и инверсия управления. Он также имеет богатый API для большинства повседневных задач, и именно поэтому каждый Java-разработчик должен изучить Spring framework.

3.2 Hibernate

Второй фреймворк, который я рекомендую изучить каждому разработчику на Java - это Hibernate, основанный на JPA (Java Persistence API). Чтобы быть точным, Hibernate появился до JPA, но поскольку JPA является стандартным API для реализации уровня сохраняемости в Java, Hibernate реализует его.

Итак, почему вы должны изучать Hibernate? Потому что большинство Java-приложений, с которыми вы будете работать, будут взаимодействовать с базой данных, а работать с базой данных на Java с использованием JDBC и без надлежащего фреймворка, такого как Hibernate, мучительно.

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

Теперь, когда дело доходит до изучения Hibernate, на рынке доступно много отличных ресурсов, но я предпочитаю курс Spring & Hibernate for Beginners, потому что вы можете убить двух зайцев одним выстрелом. Вы можете изучать Spring и Hibernate в одном курсе.

Кстати, если вы действительно хотите освоить Hibernate или ищете продвинутый курс , то книга Влада Михальчи High-Performance Java Persistence и курс - лучший ресурс для всех.

3.3 Spring Boot

Это еще один фреймворк, который я рекомендую изучать каждому разработчику Java в 2023 году и в дальнейшем. Spring Boot перенял философию упрощения Spring и упростил работу с самой Spring. Точно так же, как Spring упрощает создание Java-приложения, Spring Boot упрощает создание Java-приложения на основе Spring.

Такие функции, как автоконфигурация, устраняют большую часть проблем, связанных с настройкой приложения Spring. Аналогичным образом, функции starter POM сгруппировали часто используемые зависимости в простые многоразовые POM.

3.4 Фреймворки микросервисов Java — MicroProfile, Micronaut и Quarkus

Хотя изучения Spring Boot и Spring Cloud достаточно для разработки микросервисов на Java, вы можете изучить несколько более продвинутых фреймворков, таких как Microprofile от Eclipse, Micronaut и Quarkus.

3.4.1 Quarkus

Quarkus - один из многообещающих фреймворков для Java-разработчиков. Это собственный Java-стек Kubernetes, адаптированный для OpenJDK HotSpot и GraalVM, созданный на основе лучших в своём классе Java-библиотек и стандартов. Quarkus адаптирует ваше приложение для GraalVM и HotSpot, чтобы получить удивительно быстрое время загрузки и невероятно низкий объем RSS-памяти.

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

Короче говоря, это одна из лучших платформ для Java-разработчиков для создания приложения и чего-то, чему стоит научиться в 2023 году. Если вы хотите изучить Quarkus и нуждаетесь в ресурсах, то для начала отлично подойдёт Quarkus Backend development with Java and GraalVM.

3.4.2 Eclipse Microprofile

Это инициатива, направленная на оптимизацию корпоративной Java для микросервисной архитектуры. Фреймворк управляется Eclipse, одной из ведущих организаций Java и компанией, создающей популярную среду разработки Eclipse IDE.

Целью Eclipse of MicroProfile является определение стандартных API для создания микросервисов и предоставления переносимых приложений в нескольких средах выполнения микропрофиля. Текущая версия Eclipse Microprofile - 3.2. Это полезный Java-фреймворк для изучения в 2023 году.

3.4.3 Micronaut

Это ещё один фреймворк Java, который вы сможете изучить в 2023 году. Micronaut - это современная fullstack-платформа на базе JVM для создания модульных, легко тестируемых микросервисных и бессерверных приложений.

Это фреймворк polyglot, позволяющий создавать приложения с использованием Java, Kotlin или Groovy. Некоторые из ключевых преимуществ Micronaut - это сокращение времени запуска, невероятно высокая пропускная способность и минимальный объём памяти.

Если вы хотите узнать больше о MicroNaut, вы также можете ознакомиться с курсом Learn Micronaut — cloud-native microservices with Java на Udemy. Существует не так много курсов, но этого и документации MicroNaut достаточно, чтобы начать разработку приложений с помощью MicroNaut.

4. Тестирование

Тестирование является важным навыком для любого Java-разработчика, особенно модульное тестирование, интеграционное тестирование и тестирование автоматизации. Как минимум, каждый разработчик Java должен быть знаком с JUnit и Mockito, двумя самыми популярными программами модульного тестирования и макетной библиотекой.

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

Существуют и более продвинутые библиотеки, такие как Cucumber для бизнес-ориентированного тестирования, Robot Framework для интеграционного тестирования, но JUnit не заменить, она вам всегда понадобится.

Когда дело доходит до библиотеки Mocking, у вас есть несколько вариантов, таких как PowerMock, Mockito и EasyMock. Тем не менее, я настоятельно рекомендую вам изучить Mockito, потому что это обширная библиотека. Многие Java-разработчики и компании выбирают именно её. Она постепенно становится стандартной библиотекой для создания макетных объектов в Java.

Если вы хотите изучить JUnit и Mockito с нуля, то я предлагаю вам присоединиться к Learn Java Unit Testing with Junit & Mockito in the 30 Steps от In28Minutes на Udemy. Это практический курс для начала работы с обеими библиотеками.

6. База данных

Доступ к базе данных является важной частью многих приложений, и, к счастью, Java поставляется с JDBC (Java Database Connectivity) API, который предоставляет стандартный набор API для подключения к любой реляционной базе данных.

Как разработчику приложений, вам просто нужно знать API, поскольку все поставщики предоставляют их реализацию. Вам просто нужно включить их JAR-файл в classpath, и ваш код будет работать нормально.

Кстати, JDBC - не единственный вариант взаимодействия с базой данных. Существуют библиотеки с открытым исходным кодом, такие как JOOQ, которые могут помочь вам писать SQL-запросы на Java.

jOOQ генерирует Java-код из вашей базы данных и позволяет создавать типобезопасные SQL-запросы с помощью своего fluent API.

Java предлагает отличные API, такие как Swing и JavaFX, для разработки клиентов с графическим интерфейсом. Swing был действительно популярен пару лет назад, но сейчас лидирует C#. JavaFX - ещё один популярный Java API для разработки приложений с графическим интерфейсом на Java.

Если вы хотите разработать приложение с графическим интерфейсом, такое как NetBeans, одном из известных редакторов Java, которые также написаны на Java, то вы можете изучать Java FX в 2023 году. Я бы не советовал изучать Swing, если вы не работаете в банке, который платит вам тысячи долларов в месяц за поддержание своего торгового интерфейса на основе Swing.

Если вы хотите изучить JavaFX в 2023 году и вам нужен ресурс, вы также можете ознакомиться с курсом Java FX Concepts Bootcamp 2023 на Udemy.

Вы также можете создавать и развёртывать приложения JavaFX на Raspberry PI, одном из небольших, но мощных компьютеров. Если вы заинтересованы в этом, у Фрэнка Дельпортаесть отличный курс Use Java and Java FX on a Raspberry PI для начинающих. Для начала вы можете ознакомиться с ним.

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

Статья была взята из этого источника:

0
3 комментария
Аккаунт заморожен

Комментарий недоступен

Ответить
Развернуть ветку
Vardi

А что из этого на Джуна?)

Ответить
Развернуть ветку
Андрей Бокарев

А вторая версия то вышла или выйдет?

Ответить
Развернуть ветку
0 комментариев
Раскрывать всегда