Quantcast
Channel: Найцікавіше на DOU
Viewing all articles
Browse latest Browse all 8115

Писать код уже не достаточно: обязанности современных back-end разработчиков

$
0
0

[Об авторе: Дмитрий Соколов — Independent Java Trainer и Ментор, имеет более семи лет опыта написания Java приложений как Java Tech Lead и full-stack разработчик. Регулярно проводит тренинги и мастер-классы, делится знаниями о том, как писать и поддерживать развивающиеся проекты]

Мне радостно на сердце от того, что все больше молодежи идет работать в IT. Ребята начинают читать профильные сайты. Эта статья посвящается тем, кто сейчас на пути становления разработчиком ПО, а именно — серверной части (back-end).

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

Так действительно было 10-15лет назад. Сегодня программистов как таковых почти нет, этот термин уже неуместен. Для обозначения этой профессии больше подойдут определения «разработчик» или «инженер».

Почему так? Ответ ниже.

Обязанности современного разработчика

Давайте рассмотрим типичный день разработчика на Java. Его работа сводится к таким задачам:
— Зайти на удаленный сервер через консоль и настроить одну из компонент, подправить скрипт, сконфигуровровать один из вспомогательных сервисов.
— Проверить почту, систему ведения проектов; общаться с коллегами на предмет наличия задач, которые необходимо сейчас решить.
— Почитать инструкцию к недавно введённому фреймворку, разобраться и выполнить с его помощью одну из задач.
— Исправить ошибку, недавно найденную тестировщиками.
— Ответить на серию писем или сообщений в переписке с заказчиком. Разумеется, на английском. При необходимости созвониться и обговорить вопросы устно.
— Обсудить с коллегами дальнейшие планы на проекте, проблемы и идеи. Помимо запланированных встреч это может происходить во время обеда или в небольшом перерыве, когда вы все свободны.
— Пообщаться с новичками, которые еще вникают в проект (если вы — ведущий разработчик). Оказать свою помощь, если требуется.
— Общаться с другими командами, если над проектом работает больше одной команды. Время от времени может возникать необходимость обсудить вопросы, например, с front-end разработчиками или «ораклистами», инженерами баз данных. Возможно, понадобиться обращаться к ним за советом.
— Следить за состоянием серверов: контроля версий, непрерывной интеграции, базой данных, тестового, рабочего и боевого серверов. Это минимум, а возможно, их будет намного больше, это зависит от сложности проекта.
— Посидеть самому или в паре и подумать над архитектурой системы или какой-то одной компонентой.

Тут я перечислил не все активности, а только самые распространение и базовые.

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

Программист VS Инженер

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

Итого программист — это тот, кто только пишет код.

Разработчик-инженерполноценно участвует во всех циклах написания сложного продукта. Разница весьма значительна.

Именно это особенно тщательно проверяют при собеседовании на позицию Senior и выше (Technical и Team Lead, Архитектор).

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

Конструировать, а не программировать

По мере развития IТ проекты становятся всё сложнее. Системы требуют разбиения на мелкие подсистемы, наборы решений, фреймворков. Как следствие появились вакансии для разработчиков, где человеку на самом деле придется заниматься исключительно конфигурацией огромной системы.

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

То же самое происходит и с программированием. Виток развития, через который мы проходим сейчас, дошел до уровня, когда чистый «нативный» код уже почти не используется. Написано огромное количество готовых решений (фреймворков) почти для любой задачи. Используя их, ты собираешь конструктор. Не пишешь код с нуля, а соединяешь части между собой через простое конфигурирование.

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

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

Как держать руку на пульсе

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

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

И тот, кто не успевает, — либо остаётся на месте и не развивается, либо вообще выпадает из обоймы.

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

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

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


Viewing all articles
Browse latest Browse all 8115

Trending Articles