Практические советы, как стать лучшим Java-разработчиком, со ссылками для изучения этих навыков

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

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

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

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

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

Эти советы одинаково полезны как для разработчиков Core Java, я имею в виду тех, кто занимается Java, которые пишут серверные приложения, но на самом деле не имеют навыков веб-разработки, таких как JSP, Servlet и JEE, так и для веб-разработчиков на Java. чья основная работа - писать веб-приложения с использованием технологии Java.

Хотя я оставил некоторые веб-вещи, такие как изучение JSF или Servlet 4.0, на другой день, чтобы этот список был кратким и простым. В любом случае, без лишних слов, вот несколько советов и предложений, чтобы стать лучшим разработчиком Java и инженером-программистом.

1. Изучите внутреннее устройство JVM и настройку производительности Java.

Если вы серьезно относитесь к тому, чтобы стать Java-разработчиком Rockstar, вы должны сначала потратить время на изучение внутренних компонентов JVM, таких как различные части JVM, как они работают, JIT, параметры JVM, сборщики мусора и сборщики и т. Д. и т.п.

Если вы хорошо знаете JVM, вы можете написать как надежное, так и высокопроизводительное приложение Java, и именно этим занимаются разработчики Rockstar Java.

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

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

Для тех, кто предпочитает онлайн-курсы книгам, серия Знакомство с виртуальной машиной Java на Pluralsight также является отличным сборником для изучения внутреннего устройства JVM.

Кстати, для участия в этом курсе вам понадобится членство Pluralsight, которое стоит около 29 долларов в месяц или 299 долларов в год (скидка 14%). Если у вас нет этого плана, я настоятельно рекомендую присоединиться к нему, так как он улучшает ваше обучение, и вам, как программисту, всегда нужно узнавать что-то новое.

Кроме того, вы также можете использовать их 1 0-дневную бесплатную пробную версию, чтобы смотреть этот курс БЕСПЛАТНО.

Если вам нужно больше вариантов, то следующие два курса по Udemy также подойдут, чтобы узнать, как читать дамп кучи, как устранять утечку памяти и понимать журналы GC:

  1. Производительность Java-приложений и управление памятью
  2. Многопоточность, параллелизм и оптимизация производительности Java


2. Изучите микросервисы и облако.

Архитектура постоянно меняется, и многие компании переходят от монолитных приложений к микросервисам.

Разработчикам Java пора изучить архитектуру микросервисов и способы создания микросервисов на Java, чтобы воспользоваться преимуществами этой недавней волны.

К счастью, среда Spring предоставляет Spring Cloud и Spring Boot, которые значительно упрощают разработку микросервисов на Java.

Если вы ищете курс, то для начала вам подойдет Освоение микросервисов с Spring Boot и Spring Cloud.

И, если вы предпочитаете книги, я предлагаю вам проверить Cloud Native Java Джоша Лонга, который предоставляет исчерпывающее руководство по разработке приложений Java для облака.

3. Изучите Spring Framework (Spring Boot)

В настоящее время разработчику Java практически необходимо изучить платформу Spring, поскольку большинство компаний предпочитают разрабатывать среды с использованием таких сред Spring, как Spring MVC, Spring Boot и Spring Cloud для разработки веб-приложений, REST API и Микросервисы.

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

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

Если вам нужны ссылки, то для начала изучите Spring Boot - Rapid Spring Application Development Дэна Веги.

4. Изучите API и библиотеки Java.

Если вы работали с великими разработчиками Java, вы могли заметить, что их общие знания об экосистеме Java и API составляют основную ее часть.

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

Конечно, вы не должны знать их все, но вы должны быть знакомы с некоторыми ключевыми API, такими как API обработки JSON, такими как Jackson и Gson, API-интерфейсами обработки XML, такими как JAXB и Xerces, библиотеками модульного тестирования, такими как Mockito. »И JUnit и др.

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

5. Изучите Java 8+ (Java 13)

Это сейчас самое главное для Java-разработчика. Ему уже 4 года, и даже Java 13 была выпущена 6 месяцев назад, и люди говорят о функциях Java 10. Я знаю многих программистов, которые не написали ни одной строчки кода, используя функции Java 8, такие как лямбда-выражения и Stream API.

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

Практически все вакансии по разработке Java теперь требуют навыков Java 8, и если бы у вас их не было, было бы очень сложно преуспеть и хорошо выступить на собеседовании по Java.

Теперь, если вы решили изучить Java 8, но беспокоитесь о том, с чего начать, я предлагаю вам проверить The Complete Java MasterClass на Udemy, который научит вас всем основам Java 8. Особенности.

И, если вас интересует более продвинутый, практический курс, то Рефакторинг Java 8 доктора Хайнца Кабуца вам подойдет.

6. Изучите шаблоны проектирования и передовые методы программирования.

Если вы пишете приложение Java с нуля, то большую часть времени вы пишете объектно-ориентированный код, а шаблоны проектирования - это проверенные временем решения распространенных проблем.

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

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

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

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

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

7. Изучите инструменты разработки и IDE.

Одна из наиболее важных черт лучших разработчиков Java - это то, что они очень хорошо владеют своими инструментами. Они не только знают больше инструментов, чем средние разработчики, но и хорошо знают свои инструменты.

Поскольку IDE, такие как Eclipse, NetBeans и IntelliJ IDEA, являются наиболее важным инструментом для программиста на Java, имеет смысл потратить некоторое время на то, чтобы научиться лучше.

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

Даже несколько небольших советов помогут в долгом пути, потому что вы используете их гораздо больше, чем думаете. Если вы серьезно настроены поднять свои навыки IDE на новый уровень и использовать Eclipse, то я предлагаю вам проверить Методы и приемы отладки Eclipse на Udemy, идеальном курсе для улучшения ваших знаний об Eclipse.

И, если вы поклонник IntelliJIDEA, вы также можете ознакомиться с этим бесплатным курсом - Начало работы с IntelliJ IDEA @Nelson Djalo на Udemy. На данный момент это бесплатно, но, пожалуйста, проверьте цену, прежде чем присоединиться к нему.



10. Изучите DevOps

Для современного Java-разработчика очень важно знать DevOps. Он должен хотя бы знать о непрерывной интеграции и непрерывном развертывании и о том, как Jenkins помогает в этом.

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

Я также предлагаю вам потратить время и узнать больше о DevOps в целом и таких инструментах, как Docker, Ansible, Kubernetes и т. Д. Вместе с Maven и Jenkins.

Если вам нужны ресурсы, то Изучите DevOps: CI / CD с Jenkins с использованием конвейеров и Docker в Udemy, вероятно, лучший курс для начала. Вы узнаете не только о CI и CD, но также подробно о Maven и Jenkins.

И, если вам нравятся книги, Проект Феникс - хороший роман об ИТ, автоматизации и DevOps. Его легко читать, а это значит, что вы пройдете через это без какой-либо головной боли, и он научит вас, как автоматизация может помочь вам в разработке ИТ и программного обеспечения.

Еще один курс, который я хотел бы порекомендовать, особенно для Docker и Kubernetes, - это Докер и Kubernetes: полное руководство Стивена Грайдера, вы изучите эти два важных инструменты в одном курсе.



8. Изучите Scala или Kotlin.

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

Это вдохновило меня на изучение Scala, а позже я также попробовал Groovy из-за его более широкого использования при создании скриптов сборки и модульного тестирования.

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

Это отличный язык от JetBrains, компании, стоящей за IntelliJ IDEA, а также официальный язык для разработки под Android, объявленный Google.

Это не только повысит вашу продуктивность, но и поможет вам перейти в область разработки Android. Если вы хотите изучить Kotlin и ищете хороший ресурс, то курс The Complete Android Kotlin Developer станет хорошей отправной точкой.

И, если вам нужно больше вариантов, вот список лучших курсов Kotlin для дальнейшего изучения.

9. Изучите модульное тестирование

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

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

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

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

Если вы ищете хороший обзор JUnit и модульного тестирования на Java, тогда Ускоренный курс JUnit и Mockito идеально подойдет для начала. Это не самый современный вариант, поскольку он не охватывает JUnit 5, но все же довольно полезен для новичков.

Вот и все мои 10 советов, как стать лучшим программистом на Java. Я знаю, что следовать всем этим советам сложно, и я не прошу этого делать, это просто непрактично.

Вы можете сначала сосредоточиться на более важных вещах, таких как Learning Java 8 и Learning Spring Framework, если вы еще не знали их, но если вы хорошо разбираетесь в них, вы можете выбрать другие темы, такие как модульное тестирование, внутреннее устройство JVM и DevOps.

Для начала вам нужно выбрать такую, как Java 8, и зафиксировать ее, прежде чем переходить к следующему совету. Если вы ищете какие-то низко висящие плоды, то лучше изучить свою IDE - хороший выбор.

Вы уже знаете свою IDE, и потратив некоторое время на ее изучение, вы быстро станете более продуктивным и лучшим Java-разработчиком.

Всего наилучшего и не забудьте поделиться советами, которые, по вашему мнению, помогли вам стать лучшим разработчиком Java.

Если у вас есть предложения или отзывы, добро пожаловать, мы все учимся друг у друга.

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

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

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