Изучите настройку производительности Java
Один из навыков, это знание и понимание внутренних функций JVM, поведения GC и настройки производительности Java.
По мере роста вашего опыта Java, и вы станете старшим разработчиком Java с более чем 5-6-летним опытом, от вас ожидается знать как общую картину, так и небольшие подробности о фундаментальных принципах Java.
Если вы не можете профилировать приложение или не можете понять, почему он медленный или как сделать его быстрым, то вам следует прочитать хорошую книгу о внутренних функциях JVM и настройке производительности.
Ежедневное кодирование в течение 2 часов
Еще одна вещь заключается в том, что по мере роста вашего опыта вы тратите свое время на координацию, отвечаете на электронные письма, являетесь катализатором, устранением неполадок, наставничеством и, как правило, являетесь руководителем проекта.
То, что вы оставили, – это кодирование, которое является самым важным навыком для программиста.
Если вы чувствуете, что недостаточно выполняете кодирование, тогда принимайте решение для кодирования каждый день. По крайней мере, напишите что-нибудь, будь то в вашем проекте, в среде с открытым исходным кодом, в библиотеке или в утилите.
Поскольку начало является самым сложным делом, мы предлагаем, чтобы в любое время, когда вы чувствуете сопротивление, начинайте читать и делать рефакторинг кода для удовольствия. Вам это понравится, и в этом случае вы также будете писать код.
Улучшайте свои знания структур данных, алгоритмов и логики программирования.
Профилируйте Ваше приложение Java раз в месяц
В этой резолюции прилагается первая резолюция о чтении хорошей книги о внутренних компонентах JVM и настройке производительности. Просто прочтения книги будет недостаточно. Вы должны применить эти знания в своем живом проекте.
Предлагаем вам профилировать ваше приложение Java, по крайней мере один раз в месяц, и тратить много времени на понимание и анализ результатов.
Вы также можете взять кучу с вашего Java-процесса или, если у вас был кратковременный крах, взять эту кучу и выяснить, какой объект занимает большую часть вашей памяти. Есть ли утечка памяти в вашем приложении Java?
В чем причина? Что произойдет, если другие 100K новых клиентов получат доступ к вашему приложению? Если вы можете спокойно ответить на все эти вопросы, тогда вы в хорошей форме.
Участвуйте в проблемах с кодированием
Эта цель, опять же, связана с нашей второй резолюцией – писать код каждый день в течение 2 часов. Давайте посмотрим правде в глаза, иногда у вас нет достаточных шансов в вашем живом проекте для кодирования.
Если вы голодаете за сложный код, то нет ничего лучше, чем участвовать в программировании.
В Интернете есть много веб-сайтов, в которых есть проблемы с программированием и дается возможность проверить свои навыки, но TopCoder просто лучший.
Изучение сетевого программирования в Java
Еще одна вещь, заключается в том, что разработчикам Java необходимо улучшить их программирование сокетов и основы сети.
Многие разработчики не могут ответить на большинство вопросов сетевого программирования Java.
Некоторые из них даже пытаются описать ключевые различия между TCP и UDP, которые, возможно слишком простыми, чтобы спросить любого Java-разработчика с 2-5-летнем опытом работы.
Если вы чувствуете, что у вас недостаточно возможностей изучать программирование сокетов на Java или что вам не нужно, потому что вы являетесь разработчиком веб-приложений Java, работающим с JSP, Servlet и JSF, я предлагаю вам прочитать хотя бы одну хорошую книгу о Java, NIO и программирование сокетов.
Java 9
В 2017 году было выпущено несколько крупных релизов, а одним из них был JDK 9. Начните изучать новые функции Java 9, например Jigsaw, реактивные потоки, усовершенствования API и т. д.
Тестирование устройства
Если вы хотите стать лучшим разработчиком, вам следует работать над навыками тестирования. И не только модульное тестирование, но и автоматическое тестирование в целом. Это также включает интеграционное тестирование. Вы можете изучить JUnit 5 и другие библиотеки тестирования модулей, такие как Mockito, PowerMock, Cucumber и Robot, чтобы перейти на следующий уровень. Mockito действительно мощный и позволяет вам написать единичный тест для сложных классов путем издевательских зависимостей и просто сосредоточиться на тестируемых объектах. Если вы новичок в модульном тестировании и хотите изучить его в 2018 году, то стартовая точка JUnit и Mockito Crash Course от Udemy является хорошей отправной точкой.
Резюме
Если вы являетесь Java-программистом с опытом работы в пару лет, вы также можете вдохновиться этим списком, чтобы установить свою цель. Некоторые другие вещи, которые вы можете добавить в этот список, – это обучение Android , Docker и Spark, поскольку они необходимы для любых Java-программистов.
Это является простым и достижимым, потому что небольшие успехи приводят к большим успехам. Установка небольших целей и их достижение лучше, чем постановка больших, непрактичных целей и неудача перед стартом.