Чем занимается разработчик на Java и как им стать

Советы для начинающих.

Java занимает второе место в рейтинге языков программирования по версии Github. На этом языке написаны веб-приложения Twitter, Amazon и eBay, его используют b2b-проекты и банки — и все они ищут разработчиков на Java. Что нужно знать, чтобы стать таким специалистом, и какие задачи нужно будет решать на работе, рассказывает автор курса «Java-разработчик» в Яндекс.Практикуме Анастасия Рагозина.

Почему именно Java

Крупные бизнесы и компании из сектора b2b часто используют для своих сервисов именно Java: функциональность этого языка уже устоялась, вокруг него сложилось большое сообщество, а ещё есть стабильная поддержка и множество библиотек под разные задачи. Всё это означает, что язык вряд ли изменится настолько, что написанные на нём программы «сломаются» и их нужно будет переписывать заново.Java — это довольно простой язык, однако порог входа в разработку на нём выше, чем в случае Python. Зато Java устроен так, что сам уберегает пользователей от некоторых ошибок, не позволяет их сделать благодаря встроенным подсказкам и другим функциям. У Java долгая история: первая официальная версия вышла в 1995 году. Поэтому всё, что может пойти не так у новичка в Java, уже кем-то описано в интернете — на старте это помогает быстрее сориентироваться в языке и не бояться ошибаться.

Какие задачи решает Java-разработчик

Основное направление разработки на Java — это бэкенд, работа над той составляющей продукта, где реализована его логика. Бэкенд-разработчики решают такие задачи:

— Написать быстрый и безопасный код. Подумать о возможных уязвимостях, предусмотреть защиту от них.

— Подумать, как код будет работать под нагрузкой. Проверить, справится ли приложение, если туда одновременно придут 2000 пользователей.

— Продумать хранение данных. Определиться, как лучше хранить и обрабатывать данные: описать и реализовать схему базы данных и запросы к ней.

— Придумать архитектуру приложения и его API. На этом этапе нужно определиться с инструментами и решить, какие внешние системы могут понадобиться для работы приложения.

API — это интерфейс, с помощью которого можно обращаться к другому сервису. Например, когда мы вызываем такси, приложение обращается к сервису с картами города, строит маршрут, вычисляет стоимость поездки. Приложение не хранит карты, а просто отправляет запрос в нужный момент. Задача разработчика — понять, нужно ли интегрировать API в продукт и как это лучше сделать.

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

Что нужно знать и уметь на старте

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

От стажёров ждут таких знаний:

Java-core. Знать базовые конструкции языка: функции, переменные, типы данных. Помнить основные классы стандартной библиотеки.

Базы данных. Знать, что это такое и как к ним обращаться.

А к джунам уже больше требований:

Java-core. Уверенно ориентироваться в конструкциях языка, знать стандартные библиотеки и понимать, для каких задач они нужны.

Фреймворки. Основной, который нужно освоить, — это Spring.

Git. Система контроля версий, которая помогает совместно работать с кодом. Джуну нужно уметь ориентироваться в ней и вести разработку вместе с другими коллегами.

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

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

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

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

Этапы работы и инструменты

Обычно вся разработка ведётся в команде. Размер команды варьируется в зависимости от компании. В маленьких командах Java-разработчик может совмещать несколько ролей: например, выполнять некоторые задачи DevOps и работать над инфраструктурой или тесно работать с менеджерами продукта. В больших компаниях роли обычно чётко определены.

Java-разработчик пользуется теми же инструментами, что и любой другой инженер разработки:

Jira или YouTrack: приложения, где можно получать и закрывать задачи.

Git: система контроля версий, которая нужна для хранения истории изменений в коде и совместной разработки;

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

Процесс работы тоже зависит от компании. В больших командах он чаще всего устроен так: есть аналитик, который приносит задачи, и тимлид, который распределяет их между разработчиками. Обычно у новичков есть наставник — более опытный разработчик, который помогает решать задачи и отвечает на вопросы. Важно не бояться попросить его о помощи, если не удаётся найти решение самому.

После того как разработчик получает задачу от тимлида, он начинает поиск решения: разбирается, что нужно сделать, где именно в коде проекта это должно быть реализовано, продумывает варианты работы этого решения (например, что будет, если пользователь ошибётся при вводе и тому подобное). Только после этого можно писать код.

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

Что почитать и посмотреть на старте

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

— Кэти Сьерра, Берт Бейтс, Изучаем Java. Эта книга хорошо подходит для новичков. В ней понятно изложены основы языка и программирования в целом, однако для более глубокого погружения вам придётся обращаться к дополнительным источникам.

— Герберт Шилдт, Java: полное руководство. Классическая книга по разработке на Java — с разборами практических кейсов и подробным изложением теории.

— Видеокурс «Программирование на Java». Курс лектора из Computer Science Center. Больше подойдёт тем, кто хотя бы немного знаком с разработкой.

— Learning the Java Language (The Java™ Tutorials). Туториалы, подготовленные разработчиками языка — командой Oracle. Все материалы на английском языке и требуют хотя бы минимальных знаний в области программирования.

Краткий пересказ от YandexGPT