Если вы только решили начать изучать java, или ищете возможности для развития, этой статьей постараюсь помочь.
Роль senior Java-разработчика за последние годы претерпела значительные изменения. Поскольку технологии продолжают развиваться беспрецедентными темпами, обязанности, навыки и ожидания старших инженеров развиваются, чтобы соответствовать требованиям отрасли.
Junior или middle разработчику часто бывает трудно сказать, какие шаги следует предпринять, чтобы расти дальше. Я потратил несколько дней, собирая все навыки, которые можно ожидать от senior Java-разработчика.
Общие знания в области ИТ. Senior разработчик должен хорошо понимать не только Java и Spring, но и всю ИТ-среду: типичные шаблоны проектирования, протоколы передачи данных, форматы кодирования данных, брокеры сообщений, инструменты мониторинга и т. д. Это также включает в себя базовые знания, алгоритмы, знание работы компьютера и хотя бы основы математики.
Core Java — от вас требуется не что иное, как отличное понимание всех основных функций Java. Не только когда использовать ту или иную функцию, но и когда ее НЕ использовать.
- Синтаксис
- Типы данных, переменные
- Условия
- Функции
- Структуры данных
- ООП, классы и интерфейсы
- Работы с файлами и API
- Управление памятью
- Коллекции
- Сериализация
- Работа с сетью
- Обобщенные типы
- Стримы
- JVM
- Сборка мусора
- Работа с потоками
Java фреймворки и библиотеки — существует множество различных библиотек, но я бы выбрал пару, которая де-факто является лидером отрасли:
- Spring
- Spring Boot
- Hibernate
- Spark
- Mockito
- Wiremock
- Logback
Системы сборки
- Maven
- Gradle
Как работает JVM — старшему разработчику недостаточно знания языка программирования. Понимание принципов преобразования программы в компьютерные команды открывает перед инженером богатый набор возможностей.
Как работает Интернет. Я бы сказал, что 99% серверной части Java работает в среде Интернет/интранет. Ни один опытный разработчик не сможет игнорировать хотя бы основы организации Интернета.
Работа в команде – ну, это «хорошо иметь» навыки. Но скажем откровенно: мягкие навыки часто имеют гораздо большее значение, чем жесткие. Младшие разработчики, пожалуйста, никогда не пренебрегайте этим.