Баннер мобильный (1) Пройти тест

Кто такой разработчик и чем он занимается

Разбор профессии и подборка востребованных специальностей

Разбор

2 марта 2024

Поделиться

Скопировано
Кто такой разработчик и чем он занимается

Содержание

    Разбираемся, в чем суть профессии разработчика ПО, чем он отличается от программиста и какие специальности сейчас самые востребованные.

    Кто такой разработчик программного обеспечения

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

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

    Чем разработчик отличается от программиста 

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

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

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

    Hard skills разработчика 

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

    • знать как минимум один язык программирования — Python, C++, JavaScript, PHP или другой;
    • уметь работать в разных ОС: Mac, Linux, Windows; 
    • писать «чистый» код, понятный команде и коллегам-разработчикам с первого взгляда;
    • знать системы контроля версий (Git);
    • работать с алгоритмами и базами данных;
    • использовать фреймворки и библиотеки.

    Soft skills для разработчика

    Опытному разработчику недостаточно только технических навыков. Он работает в команде, передает задачи коллегам и отвечает за качество конечного кода. Поэтому важно также обладать базовыми soft skills:

    • общение с клиентами и членами команды на понятном языке: русском или английском;
    • тайм-менеджмент, чтобы не срывать дедлайны и организовать собственную работу;
    • умение анализировать и внимание к деталям; 
    • критическое мышление, чтобы оценить задачу с разных сторон;
    • желание развиваться как профессионал (IT-индустрия не стоит на месте); 
    • мультизадачность: иногда приходится одновременно созваниваться с командой, фиксить баги и дописывать новый код.
    • оригинальный подход к решению задач.

    Плюсы и минусы карьеры разработчика

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

    Плюсы

    • Свобода в выборе графика и режима работы. Закрывать задачки можно даже в ночное время, главное — соблюдать дедлайны и не терять в продуктивности. Многие разработчики предпочитают удаленный формат работы — специфика профессии позволяет избежать географической привязки. 
    • Возможность вести несколько проектов сразу. Разнообразие в задачах — то, что избавляет разработчика от рутины.
    • Быстрый карьерный рост. Для целеустремленного разработчика не проблема вырасти из junior-специалиста в лида своей команды.
    • Легкое трудоустройство в зарубежные компании, которые часто помогают с релокацией.
    • Международный нетворкинг и открытое профессиональное сообщество, готовое помогать и направлять.

    Минусы 

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

    Сколько зарабатывают разработчики

    По данным Хабр Карьеры за второе полугодие 2022 года, медианная зарплата разработчиков в России — 161 000 рублей. Медианная зарплата в Москве и Санкт-Петербурге варьируется от 180 000 до 200 000 рублей, в то время как в регионах составляет около 140 000 рублей. 

    В первой половине 2022 года разработчики-стажеры зарабатывали, в среднем, 35 000 рублей, специалисты junior-уровня — 70 000 рублей, middle-уровня — 150 000 рублей, а senior — 240 000 рублей. Для каждого грейда уровень зарплаты растет от полугодия к полугодию со второй половины 2020 года. 

    Зарплаты разработчиков по направлениям
    По сравнению с первым полугодием 2022 года во втором зарплата разработчиков выросла на 5%. Источник

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

    Frontend-разработчик

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

    К базовым навыкам специалиста относят знание языка разметки HTML, каскадных таблиц CSS, владение JavaScript и способность работать хотя бы с одним современным фреймворком — React, Angular или Vue.js. В идеале — пользоваться сборщиком проектов, например, gulp.js, быть знакомым с платформой Git и обладать навыком работы с пакетным менеджером NPM для эффективного использования языка JavaScript. Начать путь во frontend-разработке можно с проектов на фрилансе или работы в студии веб-разработки. 

    Backend-разработчик

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

    От backend-разработчиков требуют владения как минимум одним востребованным языком программирования: Java, C#, Python или Go. Также пригодятся навыки работы с Linux, базами данных и понимание SQL.

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

    Алексей Каньков
    Senior Backend Developer

    Я делаю то, что никто не видит глазами, а именно — бэкенд, внутреннюю часть сервиса. API, над которым я сейчас работаю «под капотом», очень асинхронен. REST API-обработчик, принимающий запросы от браузера, шлет задачи в очередь RabbitMQ (брокер сообщений). Обработчики задач достают их из очереди по мере поступления и выполняют. Плюс к этому часть процессов запускается по расписанию. Сейчас пытаюсь отловить баг — статусы объектов неправильно сохраняются в базе данных MySQL. Доступ к одним и тем же объектам в базе данных получают одновременно несколько процессов сразу. И результирующий статус зависит от того, в какой последовательности эти процессы отработали. Это как тот кот, который и жив, и мертв. Непонятно, какое стечение обстоятельств приводит к проблеме, потому что влияет много асинхронных процессов.

    Fullstack веб-разработчик 

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

    Веб-разработчику нужно знать два языка программирования: для frontend-разработки — например, JavaScript; и для backend-разработки — Python или другой подходящий. Кроме этого пригодятся навыки работы с SQL и CSS, системным администрированием и контейнеризацией — в Docker или Git. Fullstack-разработчики часто взаимодействуют с технической документацией, поэтому важно знать английский и проявлять внимание к мелочам. 

    Проектировать архитектуру сайтов и приложений и заниматься системным администрированием можно в разных отраслях, тем более что fullstack — самая востребованная специальность среди разработчиков. Обычно сначала разработчик фокусируется либо на frontend-, либо на backend-направлении, а после расширяет пул навыков. 

    Разработчик видеоигр

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

    Разработчику видеоигр нужно уметь работать на одном из движков — Unity (язык C#) или Unreal Engine (язык C++). Чтобы настроить обмен данных игры с серверами, потребуется знание SQL и MySQL. Для создания игр пригодятся базовые знания о том, как устроен и из каких компонентов состоит компьютер, как работают сети. В интернете есть базы с готовыми ассетами — элементами кода игр, но хороший разработчик должен уметь писать такой код самостоятельно. 

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

    Мобильный разработчик 

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

    Чтобы работать с iOS, мобильному разработчику нужно знать языки Swift и Objective-C; с Android — Kotlin и Java. В зависимости от операционной системы меняется и среда разработки: XCode или Android Studio. Уметь работать с приложениями для создания прототипов графического интерфейса типа Figma — плюс в копилку прикладных навыков мобильного разработчика. 

    Мобильные приложения существуют практически во всех сегментах: в финтехе, ритейле, e-commerce, образовании, индустрии развлечений. Они обеспечивают близость и лояльность потребителя к бренду или компании, а значит, их разработка остается актуальной для обеих операционных систем. 

    Дата-инженер 

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

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

    Большинство алгоритмов для обработки данных пишут на Python. В идеале также нужно знать Java и Scala. Пригодится умение взаимодействовать с экосистемами работы с Big Data, например, Hadoop или Kafka. Классические базы данных не получится категоризировать без знания SQL. 

    Максим Керемет
    Data Engineer в X5 Retail GRoup

    Я работаю в команде CVM (Customer Value Management), которая занимается лояльностью в «Пятерочке». Мы настраиваем коммуникацию с клиентом. Например, на чеках, которые вы получаете на кассе, есть информация о том, что вам дадут скидку, если вы придете в магазин на следующей неделе и купите товаров на определенную сумму. Иногда может прилететь SMS: «Сегодня скидка на сметану, приходи к нам».

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

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

    DevOps-разработчик 

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

    DevOps-инженеру не обойтись без знаний Linux, навыков разработки на одном или нескольких языках. Важно уметь работать с API и Git, владеть английским языком и набором soft skills: способностью выстраивать коммуникацию, эффективно планировать время и распределять задачи, умением урегулировать конфликт. 

    До того как начинать работу в DevOps-разработке, обычно осваивают одну или несколько других специальностей. Часто в DevOps приходят из тестирования, системного администрирования или fullstack-разработки. DevOps-инженеры нужны компаниям, разрабатывающим программное обеспечение для себя или на заказ. 

    Разбор

    Поделиться

    Скопировано
    0 комментариев
    Комментарии