Плюсы и минусы профессии программиста

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

Кто такой программист

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

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

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

Катя Климова
Менеджер разработки в Контуре

Фронтенд-разработчик

Результат деятельности фронтенд-разработчика — удобный интерфейс, то есть всё то, с чем взаимодействует пользователь: от страницы крупного маркетплейса в интернете до кнопок на панели платежного терминала.

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

Женя Редько
Ведущий инженер-программист Контура

Чтобы стать фронтенд-разработчиком, понадобится серьезная программистская подготовка. Например, знание HTML, CSS и JavaScript, умение пользоваться библиотеками и фреймворками, на подобии React, навык работы с таскраннерами, сборщиками и системами контроля версий, вроде Git. Не лишними будут понимание адаптивной верстки, кроссбраузерности, принципов UI/UX-проектирования и наличие дизайнерских скилов.

Бэкенд-разработчик

Бэкендер — это программист, который разрабатывает «внутреннюю» часть сайта, приложения или ПО, то есть всё то, что не видно пользователю напрямую. Его зона ответственности — логика и работоспособность системы. Например, хранение данных регистрации в приложении, автоматическая отправка писем, интеграция корзины с платежным шлюзом или обновление остатков товара после покупки в интернет-магазине.

Список навыков бэкенд-разработчика, который работодатели размещают в описании вакансии, во многом зависит от специализации компании и ее продукта. Для работы в финтехорганизации, например, в банке, может пригодиться знание основ продаж, а в логистическом центре — понимание системы маршрутов доставки. Это связано с тем, что для решения задач порой необходимо глубокое погружение в бизнес-процессы компании. При этом базовый набор хард скилов включает знание хотя бы одного языка, например, PHP, Python или C#, основы работы с базами данных, умение применять паттерны программирования и фреймворки, например, Django, Yii,.NET, ASP.NET Core и другие, понимание принципов работы серверов, навыки юнит-тестирования и использования систем контроля.

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

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

Катя Климова
Менеджер разработки в Контуре

Где и с чем работают программисты

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

У опытных программистов выбор места и направления работы гораздо шире. Они могут заниматься продуктовой или коммерческой разработкой в В2В или В2С-компаниях, поддерживать зрелый продукт или сменить его на стартап. Несмотря на то, что в любом из этих случаев роль программиста сводится к написанию кода, работа в каждом сегменте будет иметь свои отличия.

Работа в В2В и В2С

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

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

Работа программиста в В2В и В2С сегменте не имеет технических отличий. И в том, и в другом случае нужно будет выстраивать логику продукта, писать код, тестировать систему — словом, выполнять свои привычные обязанности. Сам подход к работе тоже примерно одинаковый. Перед тем, как задача попадет в руки программиста, ее обсуждают аналитики и менеджеры разработки. Они изучают ее ценность, пользу, коммерческую составляющую, возможность использовать решение в разных бизнес-сферах, а также оценивают объем трудозатрат по ее реализации. Потом составляют план работы и устанавливают точки для ревью.

Сам программист не всегда ощущает разницу между В2С и В2В-сегментами. Конечно он будет знать, для какого направления готовится продукт, для какой аудитории, в чем его ценность и так далее. Но для задач разработчика это не существенно. Обычно это никак не влияет на процесс его работы.

Катя Климова
Менеджер разработки в Контуре

Заказная и продуктовая разработка

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

Продуктовая разработка, в отличие от коммерческой, не имеет конкретного заказчика. Такие проекты IT-компании делают на основе собственной экспертизы для себя или для дальнейшей продажи. Чтобы убедиться в ценности и пользе будущего продукта, разработчики проводят аналитические исследования и интервьюируют клиентов. Инструменты для продуктовой разработки выбирает команда программистов, или специалисты используют стек, который сложился в компании. Например, для Контура такое решение — это C#, многие продукты компании написаны на этом языке.

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

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

Катя Климова
Менеджер разработки в Контуре

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

Стартап и зрелый продукт

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

Участие в стартапе дает возможность учиться новому и проверять свои гипотезы на практике. А вот работать в удобном режиме в таком проекте вряд ли получится. Деятельность стартапа очень активная: чем быстрее продукт выйдет на рынок, тем скорее компания получит прибыль и начнет окупать свои расходы. Еще один минус — отсутствие менторской поддержки для новичков. Начинающему специалисту может быть сложно самостоятельно разобраться в технических вопросах и создать стоящий продукт с нуля.

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

Плюсы профессии программиста

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

Заработная плата

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

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

Женя Редько
Ведущий инженер-программист Контура

Возможность работать удаленно

Для работы программисту нужны компьютер или ноутбук и собственные знания. При этом очное присутствие айтишника на рабочем месте — это необязательное условие для многих работодателей. Если разработчик хорошо справляется со своими обязанностями, он может работать в любое удобное для него время и в любом месте: будь то на любимом диване под теплым одеялом или на тропическом острове под пальмой. Главное укладываться в дедлайны и, если требуется, присутствовать на командных онлайн-встречах.

Программист может работать из любой точки мира. Чтобы привлечь талантливых ребят, работодатели часто собирают распределенные команды. Сейчас это уже привычная ситуация. Любое взаимодействие можно проводить онлайн, и нет каких-то жёстких требований, кто и где должен находиться. Скорее, все зависит от конкретного человека. Например, мне удобнее работать в офисе, потому что так проще сохранять баланс между работой и личной жизнью.

Женя Редько
Ведущий инженер-программист Контура

Востребованность

IT-специалисты нужны любому бизнесу: от небольшого стартапа до крупного завода или госорганизации. Цифровизация проникла во все сферы нашей жизни, поэтому программисту с опытом будет несложно получить рабочий оффер. По данным опроса, который проводил TalentTech среди 500 российских компаний, дефицит высококвалифицированных IT-кадров в 2021 году составил 150 000 человек, а к 2024 году это число достигнет 300 000.

Минусы профессии программиста

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

Конкуренция

Несмотря на то, что рынок труда пестрит программистскими вакансиями, а СМИ твердят, что бизнесу остро не хватает IT-специалистов, новичкам бывает сложно найти работу. Это связано с тем, что многие компании не хотят брать в штат человека без опыта. Работодатели стремятся получить готового программиста, который сможет решить задачи здесь и сейчас. Бизнесу не хватает компетенций, чтобы вырастить специалиста из вчерашнего студента. Поэтому часто даже джуновские вакансии предполагают наличие опыта разработки у кандидата. Решением проблемы может стать стажировка в компании, которая готова поделиться знаниями и опытом с новичком. А в некоторых случаях и предложить постоянное место работы после стажировки.

Многие компании не хотят брать джунов, потому что не умеют их учить. У Контура нет такой проблемы. У нас есть курсы, наставники, и в целом мы готовы обучать ребят. Например, 1 июля в Контур пришли 123 стажера. Конечно, это не только разработчики. Среди них есть аналитики, проектировщики, юзабилисты, тестировщики и другие. Здесь важен сам факт — каждый год в Контур приходит больше сотни стажеров.

Катя Климова
Менеджер разработки в Контуре

Объем работы

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

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

Катя Климова
Менеджер разработки в Контуре

График работы

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

Борьба с переработками — это отдельный пункт в работе менеджера разработки. Бывает сложно объяснить ребятам, почему нельзя столько работать, ведь они все очень замотивированы и стремятся принести как можно больше пользы проекту. Но если смешивать работу и личную жизнь, выгорание — это закономерный итог. Поэтому очень важно не только совершенствовать скилы новичков, но и научить их тому, как сохранять work-life balance.

Катя Климова
Менеджер разработки в Контуре

Подпишитесь на рассылку

Раз в месяц будем присылать письма с новостями про учебу и работу в IT
и с анонсами наших бесплатных мероприятий

Как с нами
связаться?

По всем вопросам можно писать на fiit@kontur.ru
или в телеграм-чат @fiit_urfu

© 2022 ФИИТ