Колонки

Как и зачем становиться Java-разработчиком в 2022 году

Колонки
Руслан Кондратьев
Руслан Кондратьев

Backend-разработчик «Инфомаксимум»

Анастасия Удальцова

О том, как начать путь Java Developer, где учиться и на что обратить внимание кроме hard skills, рассказывает Руслан Кондратьев, backend-разработчик «Инфомаксимум».

Как и зачем становиться Java-разработчиком в 2022 году

Многообразие разработки

Сегодня в области разработки программного обеспечения существует много видов профессий:

  • разработчики (backend, frontend, fullstack);
  • тимлиды — руководители команд;
  • специалисты по тестированию (QA, QC);
  • инженеры непрерывного развертывания и интеграции (DevOps);
  • администраторы баз данных и серверов (DBA).

Backend-разработка — это отдельный вид искусства. Сложный, порой непонятный, однако интересный и перспективный.

Решили окунуться в это с головой? Тогда предложу небольшую дорожную карту, которая поможет сориентироваться по профессии, подскажет полезные скиллы и, возможно, замотивирует.

 

О ценности моральной — и не только — подготовки

Во многом IT — это сфера, свободная от предрассудков. Здесь нет каких-либо ограничений или требований в специальном образовании определенного университета или института.

Если вы осознаете, что готовы учиться, тратить довольно много времени на самообразование, обладаете упорством и довольно самокритичны, есть шанс начать развиваться как IT-специалист.


Читайте по теме:

Каких IT-специалистов, кроме разработчиков, не хватает в России

Попасть в IT не-айтишнику: как сделать это в 2022 году?


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

Говоря о backend-разработчиках, а конкретно о Java Developer (джавистах), стоит сразу упомянуть термин — «порог вхождения», и он достаточно высок.

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

 

Hard Skills

IT — одна из самых динамичных и быстроразвивающихся отраслей. Чтобы быть «в тренде» — а заодно и в авангарде профессии — необходимо использовать самые современные методики и принципы разработок.

У нас есть «hard skills». Это технические знания, знания рабочего языка программирования, парадигм программирования, шаблонов проектирования и так далее.

Давно прошли те времена, когда стереотипные бородатые дяди-программисты сидели месяцами и оттачивали мастерство на определенной задаче заказчика.

Сразу обрисую, что конкретно для Java-разработчика самые жесткие «хардскиллы» — владение самым Java (а еще версией Java EE), его ядром, утилитными библиотеками, коллекциями и навыком работы с многопоточной реализацией.

Все это нужно для понимания особенностей языка и современного процесса разработки.

Дополнительно детально надо изучить:

  • разработку в различных операционных системах (Windows, Linux, возможно, Mac);
  • средства разработки, например, Intellij Idea, Eclipse или VS Code. Это сокращает время разработки,
  • написание unit- и интеграционных тестов;
  • составление нагрузочного тестирования (например, Jmeter);
  • язык SQL — как наиболее универсального для работы с базами данных;
  • принципы взаимодействия с транзакционными базами данных, среди которых MySql, PostgreSQL, MariaDB, Oracle и H2;
  • взаимодействие с контейнерами веб-приложений;
  • вопросы виртуализации и контейнеризации. Для этого отлично подойдет Docker

По сути, все вышеперечисленное и составляет тот самый «порог вхождения», о котором я говорил выше. Но и это еще не все.

Стоит обратить особое внимание на версионирование кода — группировку и маркировку изменений в нем. Отличный инструмент для этого — система Git.

Кроме того, полезно знать существующие виды программных архитектур — монолит, микросервис, гексагональные — и понимать принципы «чистого кода».

Зачем? Архитектура любого приложения — его каркас. Важно понимать, из каких уровней он состоит и за что отвечает каждый из них. Это формирует общую картину взаимодействия частей приложения.

Читатель, познакомимся? Заполни короткую анкету по ссылке

Стоит четко осознать, что разработка на Java сегодня — это четко поставленные сроки, понимание необходимых временных затрат на реализацию.

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


Фреймворк — или framework — готовый программный комплекс, включающий в себя необходимые инструменты и библиотеки.


Поэтому их знание сейчас — обязательно.

Из популярных и интересных выделю:

  • Spring — огромный программный продукт, сочетающий в себе массу готовых решений для web-разработки, связи с базами данных, микросервисных архитектур и интеграций;
  • Hibernate — один из самых известных и востребованных фреймворков, основная задача которого — связка объектно-ориентированного программирования и реляционных баз данных. С его помощью объекты из мира Java отображаются в плоские структуры таблиц БД.
  • AWS Amplify — фреймворк, который значительно упрощает создание своих приложений. Он помогает создавать весь бэкенд — серверную часть приложений — «прямо из коробки»;
  • Eclipse Link — профильный фреймворк для Java, который помогает решать задачи отображения ORM;
  • Mockito — главная фишка фреймворка в том, что он предоставляет очень простой API — особый пул правил, по которым система как бы «общается» и обменивается данными с другими системами — для создания макетов и определения их поведения, а еще позволяет быстро и эффективно тестировать сложное API, заменяя ненужные блоки заглушками.
  • JUnit — отличный инструмент для unit- и интеграционного тестирования, который помогает ускорять процесс разработки и повышать качество кода.

Любая разработка сопряжена с тестированием, которое минимизирует вероятность появления ошибок кода в продакшене. Поэтому знание фреймворков тестирования — обязательно.

В последние годы практически обязательным hardskill становится английский язык. Пусть не на уровне Advanced, но необходимо понимать техническую документацию и уметь найти что-то на спецфорумах и профильной литературе. 

Конечно, физически невозможно знать абсолютно все фреймворки/библиотеки/виды баз данных.

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

 

Soft skills

Примите сразу: в современной разработке нет понятия «Я». При самом потрясающем раскладе вы никогда не станете уникальным и идеальным программистом, без которого компания сразу же разорится.

Есть только «Мы». Мы — это команда разработчиков, работающих над общей задачей.

Поэтому помимо знания инструментария нужно осознавать свое место в пространстве разработки.

Сюда же отлично вписывается знание методик организации процесса — Agile/Kanban/Scrum, потому что они — важный инструмент коммуникации как внутри команды, так и между разработчиком и заказчиком.

Быть всегда готовым переключиться на более приоритетную задачу, помочь коллеге в его проблеме, делиться опытом с другими участниками процесса — вот краеугольный камень любых soft skills.

Без них любой backend-разработчик рано или поздно окажется на обочине истории.

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

 

Дорожная карта

Главный совет для новичков — не стоит «бросаться в омут с головой» и нельзя объять необъятное.

  • Будьте системны и степенны: найдите курсы для новичков или книги, где даются примеры написания простейших программ.

Не старайтесь в кратчайшие сроки освоить как можно больше материала. Это вызовет кашу в голове и отобьет желание учиться.

  • Сначала пробуйте выполнять простые задания.

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

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

Обязательное требование — это практика, и чем ее больше тем лучше.

  • Приучите себя к планированию.

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

По мере приобретения опыта переходите к более сложным задачам.

Какой-то конкретной финишной черты в обучении не существует. Чем больше читаете и пишите код, тем больше опыта и скиллов.

  • Приучайте себя быстро искать информацию в интернете.

Нарабатывайте базу знакомых вам сайтов, в которых вы можете быстро найти ответы на ваши вопросы.

  • Найдите себе ментора — опытного программиста, который сможет подсказать решение вопроса.

 

Зарплаты

По недавнему исследованию Хабра, средняя зарплата по всем ИТ-специализациям составляет примерно 162 845 руб в месяц, а конкретно джависта ~ 125 тыс. Конечно, многое еще зависит от конкретных навыков, грейда и т. д. 

С чем это связано?

Во-первых, это сложно. Разработка — это творческая профессия, вы сами решаете, как лучше что-то сделать, сами отвечаете за результат, и чтобы все получилось, нужно много знать.

Вам никто не скажет, как делать, чтобы вы и дальше так постоянно делали. Решение, принятое сегодня, уже завтра может оказаться неэффективным. И нужно будет думать.


Читайте также:

Необходимые навыки для работы в сфере eCommerce — каким специалистам из IT она подойдет?

Среди языков программирования есть свой латинский — и он по-прежнему пользуется популярностью


Во-вторых, есть мировой рынок и конъюнктура.

Если заказчик будет мало платить, вы всегда найдете другую работу, поэтому организации стараются заинтересовать разработчиков.

В западных компаниях зарплаты выше и никому не хочется, чтобы разработка велась только в иностранных организациях.

В-третьих, доля опытных разработчиков невелика, что повышает спрос. 

 

Плюсы и минусы

У каждой медали две стороны, как и у любой профессии. 

Из плюсов:

  • Независимость.

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

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

  • Высокая гибкость.

IT развивается быстрыми темпами. Работу найти достаточно несложно как опытному разработчику, так и начинающему, ведь многие компании активно проводят стажировки и готовы обучить.

  • Высокая заработная плата.

Уровень заработных плат довольно высок.

  • Возможность развиваться.

Сама профессия разработчика де-факто предполагает постоянное развитие и самообучение, иначе можно «выпасть из обоймы»

К минусам можно отнести:

  • Высокий порог вхождения. Не все готовы взвалить на себя довольно тяжелый и умственный труд в начале пути;
  • Необходимо постоянно заниматься саморазвитием. Без саморазвития будет плохая отдача в работе;
  • Сидячий образ жизни. Бегая по дорожке, код не напишешь;
  • Высокие временные затраты. Если вы не любите много работать, IT-сфера не для вас. 

 

Рекомендации

У каждого программиста — своя история «входа» в профессию и свои ресурсы, которые он бы мог посоветовать для изучения.

Сейчас много различных книг, групп в соцсетях и Telegram-каналов, в которых можно почерпнуть полезную информацию и найти интересные задачи.

Что я могу посоветовать из книг:

  • Герберт Шилд «Java.Полное руководство»;
  • Д. Грофф «SQL. Полное руководство»;
  • Э. Гамма, Р. Хелмс «Приемы объектно-ориентированного программирования»;
  • Э. Моуэт «Использование Docker»;
  • Парминдер Сингх Кочер «Микросервисы и контейнеры Docker»;
  • Брайн Гетц «Java, Concurrency на практике»;
  • Брайг Хоган «HTML5 и CSS 3»;
  • Роберт Мартин «Чистый код»;
  • Роберт Мартин «Чистая архитектура»;
  • Роберт Мартин «Чистый Agile»;
  • Роберт Мартин «Идеальный программист»;
  • Э. Гонсалвес «Java EE7» (можно 8);
  • Ю. Козмина, Р. Харроп «Spring 5 для профессионалов»;
  • А. Бенкс «GraphQl: язык запросов».

Никогда не будет лишним почитать «Хабр».

Из неплохих и популярных онлайн-курсов:

Универсальный совет: ставьте перед собой цели, стремитесь к их достижению и много практикуйтесь. Удачи.


Фото на обложке: Shutterstock / Joyseulay

Подписывайтесь на наш Telegram-канал, чтобы быть в курсе последних новостей и событий!

Нашли опечатку? Выделите текст и нажмите Ctrl + Enter

Материалы по теме

  1. 1 Как компания хотела автоматизировать процесс, но запустила новый продукт: история роста и масштабирования
  2. 2 Перечислен импортный софт, от которого российский бизнес не готов отказаться
  3. 3 Аутстаффинг IT-специалистов: всё, что нужно знать об аренде разработчиков, прежде чем начинать проект
  4. 4 Как распознать перспективного «джуна» и не потерять время и деньги?
  5. 5 Самые интересные и высокооплачиваемые вакансии сентября в стартапах