Программирование на Java с нуля: дорожная карта разработчика
Java — один из самых востребованных языков программирования. Подготовили дорожную карту для изучения программирования на Java с нуля.
98К открытий104К показов
Java уверенно занимает лидирующие места в списках самых популярных и востребованных языков программирования. Этот язык используется в широком спектре задач: десктопных приложениях, веб- и Android-разработке, в работе с серверами и встраиваемыми системами. Мы вместе с факультетом Java-разработки GeekBrains составили дорожную карту по Java, которая поможет систематизировать изучение этого языка.
- Базовые темы для изучения Java с нуля
- Ресурсы для изучения программирования на Java по сферам разработки
- Инструменты Java-разработчика
- Фреймворки для разработки на Java
- Дополнительные материалы для изучения Java
- Что дальше?
Базовые темы для изучения Java с нуля
Начать обучение Java с нуля стоит с того же, с чего начинается изучение любого языка: синтаксиса, терминологии, основных конструкций, операций, условий и циклов. Перед тем, как переходить к специфическим задачам, которые зависят от сферы программирования на Java, нужно изучить:
- принципы ООП;
- обобщения;
- рекурсию;
- работу с памятью;
- виртуальную машину Java;
- базы данных и СУБД;
- многопоточность;
- коллекции;
- лямбда-выражения;
- исключения.
Не стоит забывать про Maven — инструмент сборки и управления проектом, а также про систему контроля версий Git. Кроме того, любое приложение нужно уметь тестировать и грамотно документировать.
После изучения основ вам могут понадобиться шаблоны (паттерны) проектирования. Также вам может быть интересен Netflix Stack — набор сервисов с открытым исходным кодом для создания и поддержки приложений.
Дальнейший путь обучения программированию на Java зависит от направления, в котором вы планируете развиваться. Мы собрали необходимые для этого материалы: курсы Java, книги для различных направлений и подкасты. А ниже вы найдёте описания инструментов и фреймворков для Java-разработки.
Ресурсы для изучения программирования на Java по сферам разработки
Веб-разработка
Java программирование в веб представлено в виде сервлетов. Эта технология расширяет веб-сервер.
Сервлеты — особый тип Java-программ, который выполняется внутри веб-контейнера. Они являются промежуточным звеном между запросами клиента и сервером. Также могут пригодиться фреймворки: Spring и Netty.
Программирование WEB-приложений на языке Java
Android разработка
Разработка приложений под Android — ключевая особенность Java. При этом речь идёт не только о смартфонах, но и о планшетах, смарт-часах, телевизорах и приставках. API Android написана на API Java, поэтому при разработке вы можете использовать всё те же инструменты, что и при нативной разработке. Если вас заинтересовало Java обучение именно в этом направлении, то рекомендуем ознакомиться с этими материалами:
Нативная разработка
Не стоит забывать и про программирование на Java для десктопов. Основная платформа для десктопной разработки — JavaFX.
Big Data
Анализ больших данных — процесс обработки большого набора данных для поиска скрытых закономерностей, трендов рынка и предпочтений клиентов. И в этом Java тоже преуспевает.
Инструменты Java-разработчика
- JUnit — лидер среди библиотек для модульного тестирования ПО на Java.
- SpotBugs — инструмент для статического анализа кода, который находит в приложении потенциальные ошибки.
- Git — основная система контроля версий.
- YourKit — профайлер для Java-приложений. Позволяет отследить утечку памяти, сравнить производительность разных вариантов кода и диагностировать иные проблемы производительности.
- Log4j — инструмент для логирования.
- Sonar или Checkstyle — инструменты для линтинга кода (анализа качества стиля кода).
- Java Decompiler — инструмент, который восстанавливает исходный код Java из class-файлов.
- Gradle и Maven — инструменты для автоматизации проектов и облегчения процесса сборки.
- Groovy — объектно-ориентированный язык программирования, разработанный как дополнение к Java с возможностями Python, Ruby и Smalltalk. Имеет динамическую типизацию, замыкания, встроенный синтаксис для списков и ассоциативных массивов.
- JMeter — инструмент нагрузочного тестирования.
- VisualVM — визуальная интеграция инструментов командной строки JDK и лёгкие возможности профилирования.
- Apache Tomcat или Jetty — контейнеры для сервлетов (надстройка над веб-сервером).
Фреймворки для разработки на Java
Spring
Spring является одной из самых популярных платформ для Java. Преимущественно она используется для создания веб-приложений, хотя отлично справляется и с другими задачами. С ней программирование на Java становится лёгким даже в высоконагруженных приложениях.
Spring не является одним цельным фреймворком. Он представляет из себя набор модулей для решения конкретных задач. Вот некоторые из них:
- конфигурирование компонентов приложений и управление жизненным циклом объектов;
- доступ к данным;
- удалённый доступ;
- управление транзакциями;
- аутентификация.
Netty
Это асинхронный событийно-ориентированный сетевой фреймворк для простой разработки высокоэффективных клиент-серверных протоколов. На сегодняшний момент его используют Apple, Google, Facebook и Twitter.
Vaadin
В веб-разработке Java обычно используется на серверной части. Но не в этом случае. Фреймворк Vaadin имеет две модели разработки: для сервера и для клиента. Модель работы приложений на Vaadin очень схожа с моделью работы нативных приложений Java — это существенно упрощает процесс разработки. Для генерации кода на стороне клиента фреймворк использует Google Web Toolkit.
Grails
Этот фреймворк создан для языка Groovy, который, в свою очередь, написан на Java. Такая иерархия надстроек отлично облегчает разработку приложений. Так что если вам нужно создать высокоэффективное приложение с низким порогом вхождения — этот фреймворк именно для вас.
Дополнительные материалы для изучения Java
Что дальше?
Конечно, что прочесть несколько книг и посмотреть видеокурсы недостаточно. Вам предстоит написать большое множество программ, ведь знания без опыта почти бесполезны. Вносите вклад в open source проекты, посещайте конференции и обменивайтесь опытом на форумах. Или поступайте на факультет Java-разработки в GeekUniversity — там вас научат всему, что необходимо, чтобы стать Java-программистом, и помогут получить работу после курса.
98К открытий104К показов