Java-разработчик: чем он занимается, что должен уметь и сколько зарабатывает
Netflix и Uber написаны на Java, и ими пользуются миллионы. Хотите создавать такие же крутые и популярные приложения? Читайте нашу статью.
Фото: westend61 / getty images
Согласно распространённому стереотипу, для достижения истинного мастерства в любом деле необходимо не менее 10 000 часов практики. Чтение этого текста займёт не больше 10 минут, зато поможет вам составить дорожную карту по освоению Java-разработки.
Эксперт
Константин Шибков
Старший Java-разработчик в CDEK, эксперт программы «Линейка Java» в Skillbox, организатор Java Challenge и Agile Ufa Meetup. Пишет на Java, Kotlin и Python. Проводит вебинары по Java и ведет алгоритмический клуб JavaKeyFrames.
Вы узнаете:
- Что за язык такой Java, и какие у него особенности
- Кто такой Java-разработчик и чем он занимается
- С чего начать его изучение
- Какие навыки обязательны для Java-разработчика
- Какие есть плюсы и минусы у профессии
- Сколько зарабатывают джависты
- Насколько они востребованны
Java: что это за язык, какие у него особенности и области применения
Java — это строго типизированный объектно-ориентированный язык программирования общего назначения. Рассмотрим каждую из составляющих этого определения.
«Строго типизированный» означает, что в программах на языке Java типы переменных должны быть указаны явно: переменная, в которой будут храниться целые числа, объявляется с типом int, строки — со string и так далее. При этом тип переменной не может случайно измениться во время исполнения программы, и к каждому типу данных можно применить строго определённый набор операций. Это придаёт коду на Java больше предсказуемости.
«Объектно-ориентированный» означает, что программы на Java оперируют абстрактными объектами — сущностями, представляющими собой набор свойств и методов. Это, в отличие от процедурного стиля, повышает читаемость и возможность повторного использования кода.
«Общее назначение» языка говорит о том, что на Java пишут приложения и сервисы для самых разных целей и задач: игры, бэкенд сайтов и веб-приложений, мобильные приложения и много чего ещё.
Чтобы писать, компилировать и запускать программы нужно установить JDK — Java Development Kit. Это набор инструментов для разработки приложений, главный элемент в котором — виртуальная машина Java (JVM).
Подробно о том, что такое JDK и как устроена Java Virtual Machine, читайте в статье Ивана Углянского.
Java относится к Си-подобным языкам программирования, потому что его синтаксис схож с синтаксисом C/C++. Так что, если вы знакомы, скажем, с Python или C#, которые тоже относятся к Си-подобным, то освоить Java вам будет проще. Программы, написанные на Java, запускаются на любой ОС, которая поддерживает его виртуальную машину, включая Windows, Linux и macOS.
Кто такой Java-разработчик и чем он занимается
Java-разработчик (Java developer) — это специалист, который пишет, тестирует и поддерживает программы на языке Java. Рассмотрим каждое из направлений его деятельности подробнее.
Написание кода. Самая интересная и творческая часть работы любого программиста — создавать программы, которыми будут пользоваться тысячи, или, если повезет, миллионы клиентов. К сожалению, большую часть времени код приходится не писать, а исправлять :)
Тестирование. Перед выходом приложения в продакшен необходимо убедиться, что все его части работают корректно и согласованно. Для этого разработчики пишут тесты — программы, которые воспроизводят различные сценарии использования приложения, даже самые неочевидные. И хотя во многих компаниях тестированием занимаются QA-инженеры, разработчику желательно самому уметь читать и писать тесты.
Поддержка. Написали код, протестировали каждую фичу и систему в целом, выкатили приложение. На этом работа джависта заканчивается? Нет — она только начинается! Скорее всего, ваш заказчик или продакт-менеджер уже запланировал новые фичи, которые нужно будет внедрять, да так, чтобы ничего не поломать. Если приложение использует внешние зависимости, то наверняка после обновления API приложение начнет работать непредсказуемо — придётся дебажить. И, конечно, сколько бы времени вы ни потратили на тестирование, после запуска всё равно всплывут какие-нибудь ошибки. В общем, без дела джавист не сидит.
Пару слов о том, в каких сферах востребованы Java-программисты. Они пишут примерно всё и примерно для всех: начиная от веб-сервисов мелких торговых сетей и заканчивая серьёзными приложениями для операторов мобильной связи и электронной коммерции СУБД и IoT-системами.
Как стать Java-разработчиком: советы для новичков
Хорошо, с джавистами мы познакомились. Теперь нужно понять, как влиться в их стройные ряды. Алгоритм примерно такой же, как и для любого другого языка.
- Учим основы программирования по учебникам и курсам. Изучите особенности встроенных типов данных и операций, которые им соответствуют, условные конструкции if/else и циклы, а также научитесь создавать собственные функции. Ну и про объектно-ориентированное программирование не забываем. Можно начать с пособий Брюса Эккеля «Философия Java» и «Изучаем Java» от Кэти Сьерра и Берта Бейтса.
- Решаем тестовые задачи для Java-разработчиков. Вы найдёте их на сайтах вроде HackerRank и CodeGym. Параллельно можно пробовать решать задачи на LeetCode — сегодня это, пожалуй, самая популярная платформа для решения алгоритмических задач.
- Осваиваем Java-фреймворки и библиотеки: они позволяют создавать приложения быстрее, делать их более гибкими и легко поддерживаемыми.
- Осваиваем рабочие среды, редакторы кода и другие инструменты разработки. Сегодня самый популярный редактор кода, из которого можно собрать практически полноценную IDE, — VS Code. Лидеры среди IDE — IntelliJ IDEA, Eclipse и NetBeans. И, конечно, все современные коммерческие проекты делаются в командах, поэтому стоит освоить систему контроля версий Git.
- Пишем свой первый проект и публикуем его в своём GitHub-репозитории. Предыдущие шаги были лишь подготовкой к превращению вас в программиста. Ваши способности будут оценивать по вашему коду, поэтому без собственного небольшого проекта найти первую работу будет довольно тяжело. Начать можно с чего-то простого, например с конвертера валют, постепенно усложняя логику (подключить API внешних сервисов) и добавляя новые фичи.
Обязательные навыки Java-разработчика
Остановимся подробнее на знаниях и практических навыках, которые нужны Java-разработчику. Чтобы стать востребованным специалистом помимо основных команд и конструкций языка вам предстоит освоить:
- паттерны проектирования и дизайны архитектуры, включая SOLID, MVC и Clean Architecture, чтобы создавать гибкое и масштабируемое программное обеспечение;
- системы контроля версий, такие как Git и SVN. Скорее всего, вы будете пользоваться только Git: согласно исследованию Stack Overflow, им пользуются почти 94% респондентов;
- принципы работы с базами данных: в первую очередь c PostgreSQL (она сейчас самая востребованная), а также с MySQL, MongoDB и Oracle DB;
- основы проектирования и создания RESTful API для взаимодействия с мобильными устройствами и веб-клиентами;
- написание модульных и интеграционных автоматизированных тестов;
- устройство серверных приложений и концепции сетевой безопасности;
- основные алгоритмы и структуры данных;
- понимание научно-технической терминологии и умение читать документацию на английском языке.
Кроме того, очень пригодятся умения работать в команде, хорошо взаимодействовать с другими специалистами, быстро обучаться новому.
Плюсы и минусы профессии Java-разработчика
Начнем, пожалуй, с самого интересного: в среднем Java-программисты зарабатывают значительно больше, чем представители других профессий и даже чем некоторые IT-специалисты.
Дело в том, что джависты нужны практически всем — крупным банкам, логистическим и телекоммуникационным компаниям и так далее. В общем, они нарасхват везде, где есть сложные системы, которые требуют высокого уровня надёжности.
На Java написаны тысячи приложений и сайтов — всю эту кодовую базу нужно непрерывно поддерживать и развивать. Так что даже перед новичками открывается широкий выбор отраслей и направлений.
Тезисно — о других плюсах профессии:
- У Java огромное количество библиотек, фреймворков и инструментов, а также подробная документация. Это позволяет быстро найти информацию о незнакомых функциях и классах, понять, как их использовать и применить в своей программе. Так что времени на изучение новых инструментов уходит меньше, чем, скажем, в C++.
- Код, написанный на Java, работает во всех операционных системах.
- В языке поддерживается обратная совместимость: к приложению, написанному на Java 7, можно без особых проблем дописать код на Java 17 — и всё это будет работать.
- Наконец, Java — это просто красиво :)
Но есть и некоторые минусы:
- У Java довольно сложные синтаксис и структура. Не хочется лить воду на мельницу извечного холивара между представителями разных языковых школ, но факты говорят сами за себя: если вы не любите заморачиваться и хотите въехать в IT с минимальными усилиями, лучше начать с Python.
- Высокая конкуренция на всех уровнях. На каждую вакансию джуна найдётся по 4–6 претендентов. Мидлов и сеньоров, которые ищут работу, тоже хватает.
- Как мы уже неоднократно говорили, Java прекрасен настолько, что затягивает в себя полностью. Так что без переработки вам, скорее всего, не обойтись: по статистики нашего эксперта, 8 из 10 джавистов трудятся значительно больше положенного. Может быть, всё-таки Python? :)
- Работа с финансовыми и логистическими ресурсами предполагает высокую ответственность — а именно там больше всего востребованы джависты. Из-за случайной ошибки или небрежности тысячи людей могут не получить вовремя деньги, посылки или будут завалены тоннами спама. В общем, ещё раз подумайте — оно вам надо?
Зарплаты Java-разработчиков
Данные по зарплатам программистов постоянно меняются, в зависимости от событий на отечественном и мировом рынке. Но одно ясно точно: Java-разработка остаётся одним из самых прибыльных ремёсел.
Согласно «Хабр Карьере», средняя зарплата джависта в 2022 году составляла 180 тысяч рублей в месяц при медиане в 165 тысяч. В 2023 году, согласно тому же «Хабру», Java стал самым популярным языком у работодателей, а средняя зарплата middle-разработчика выросла до 192 тысяч рублей в месяц.
Медианное значение актуальнее «средней температуры по больнице»: если в выборке есть один человек, который зарабатывает очень много, то средняя зарплата искусственно высокая, а значит, не отражает реальную ситуацию на рынке труда.
Востребованность Java-разработчиков на рынке труда
Порядка 30% Android-приложений во всём мире разрабатываются на Javа. Язык активно используется в крупных корпорациях, таких как Amazon, Google, IBM, Oracle. Ещё одна быстрорастущая сфера применения языка Java — всё, что связано с обработкой больших данных и сферой data science.
Среди крупных отечественных компаний, использующих платформу Java, — «Яндекс», платёжная система «Мир», «1С», «Газпром», «Эльдорадо» и другие. Так что было бы желание — а работа рано или поздно найдётся.
Больше интересного про код — в нашем телеграм-канале. Подписывайтесь!