Разработка — широкая сфера, в которой заняты разные специалисты, от создателей сайтов до системных администраторов. Отрасль постоянно развивается, появляются новые направления программирования, что-то становится менее востребованным, но есть специализации, которые не теряют популярность.
По данным Хабр Карьеры, за вторую половину 2021 года средняя зарплата системных администраторов увеличилась на 25%, тестировщиков — на 17%, а разработчиков ПО — на 15%. Спрос на программистов растёт, желающих войти в профессию всё больше, но специалистов по-прежнему недостаточно. Поэтому разработка по праву считается одной из самых перспективных областей IT.
Это статья для тех, кто хочет узнать, какой бывает разработка и как в неё попасть. Мы расскажем, какие виды программистов существуют, чем занимаются программисты самых популярных направлений, сколько зарабатывают и какие навыки им нужны.
Веб-разработчики
Веб-разработчик создаёт новые сервисы и сайты или поддерживает и дорабатывает существующие. Он может работать по одному из трёх направлений: фронтенд, бэкенд и фулстек.
Фронтендеры отвечают за внешний вид сайта или приложения. Правильное отображение кнопок, выпадающего меню, карт, изображений и других элементов — это их задача. Фронтендеру нужно знать язык программирования JavaScript и языки разметки HTML и CSS.
Бэкенд — это всё, что находится под капотом у сайта или сервиса. Бэкендер отвечает за то, чтобы сайт работал быстро, выдавал пользователю нужную информацию, надёжно и безопасно хранил данные. Умение писать на Python или серверном языке PHP — то, что нужно бэкендеру.
Фулстек объединяет две предыдущие специализации. Программисты здесь универсальные бойцы, те самые, кто может в одиночку создать сайт под ключ.
Веб-разработка — хорошая точка для старта: низкий порог входа в профессию, при желании можно дальше развиваться в других направлениях.
Фронтенд-разработчик
Средняя зарплата: 145 000 рублей
Навыки для старта:
- HTML5;
- CSS3;
- JavaScript;
- инструменты контроля версий: Git, GitHub;
- графические редакторы: Photoshop, Illustrator;
- инструменты дебаггинга: Chrome Dev Tools, Firebug и прочие.
Продвинутые навыки:
- JS-фреймворки: React, Angular, Vue;
- понимание принципов построения бэкенда и умение работать с серверными технологиями: Node.js, PHP, Ruby, NET и прочие.
Бэкенд-разработчик
Средняя зарплата: 160 000 рублей
Навыки для старта:
- на выбор: PHP, Python, Java, Golang или C#;
- HTML, CSS;
- базы данных и языки запросов: SQL, MySql, NoSQL, MongoDB и другие;
- инструменты контроля версий: Git, GitHub;
- инструменты дебаггинга: Chrome Dev Tools, Firebug и прочие.
Продвинутые навыки:
- фреймворки: Node JS, Laravel, Django, Spring, ASP.NET Core;
- JavaScript;
- умение организовывать серверное окружение, включая администрирование баз данных, а также масштабирование приложений;
- знание стандартов безопасности.
QA (Quality Assurance) или тестировщики
Тестировщик отвечает за качество продукта, который создают программисты: разрабатывает сценарии тестирования кода, прогнозирует сбои и находит ошибки в работе сайтов и сервисов. QA-инженеры изучают языки Java, Python и инструменты для автоматизации тестирования.
Тестирование — это самый простой путь в IT-сферу. Есть специалисты, которые занимаются ручным тестированием — проверяют работу готового продукта, имитируя действия пользователя, и могут обходиться даже без навыков программирования.
При ручном тестировании тестировщики взаимодействуют с программным обеспечением так же, как и конечные пользователи. Они оценивают удобство использования и производительность программного обеспечения, следуя заранее определённым тестовым ситуациям и сценариям. Ручное тестирование необходимо для выявления проблем, которые могут быть не очевидны при автоматизированном тестировании.
Кроме ручного, существует автоматизированное тестирование. Автоматизация важна, когда нужно, например, убедиться, что изменения кода не привели к появлению непреднамеренных дефектов. Тестировщики пишут сценарии для таких проверок и запускают их через специальные программы.
QA-тестирование делится на несколько видов, каждый из которых служит определённой цели в процессе разработки ПО. К ним относятся:
- Функциональное тестирование. Оценивает, работает ли программное обеспечение так, как задумано, охватывая функции, входы и выходы.
- Тестирование производительности. Оценивает скорость, масштабируемость и отзывчивость программного обеспечения в различных условиях, например, при нагрузочном, стрессовом или объёмном тестировании.
- Тестирование безопасности. Направлено на выявление уязвимостей и недостатков в мерах безопасности программного обеспечения для защиты от потенциальных угроз.
- Тестирование удобства использования. Проверяется удобство использования программного обеспечения, включая навигацию, дизайн пользовательского интерфейса и общее впечатление от работы пользователя.
- Регрессионное тестирование. Проверяет, что свежие изменения в коде не оказывают негативного влияния на существующие функции с помощью повторного тестирования протестированных ранее элементов.
Читать также
Тестировщик
Средняя зарплата: 105 000 рублей
Навыки для старта:
- методы и виды тестирования;
- основы клиент-серверного взаимодействия;
- артефакты тестирования;
- инструменты тестирования;
- жизненный цикл разработки ПО;
- гибкие методологии разработки ПО.
Продвинутые навыки:
- SQL;
- инструменты контроля версий: Git, GitHub;
- автоматизация тестирования;
- Java, Python;
- Unit- и UI-тестирования;
- Selenium, Selenide.
Мобильные разработчики
Программисты, которые создают приложения и игры для мобильных устройств, делятся на специализации: iOS и Android-разработчики. Мобильные приложения, в зависимости от платформы, пишутся на разных языках: Swift — для iOS, Java и Kotlin — для Android.
Разработчики, ориентированные на операционную систему iOS компании Apple, как правило, используют Swift в качестве основного языка программирования. Swift известен своей ясностью и скоростью, что делает его идеальным выбором для разработки приложений для iOS. Он предлагает современный синтаксис, упрощающий процесс создания многофункциональных и удобных приложений для iPhone и iPad.
В области разработки мобильных приложений для Android преобладают языки Java и Kotlin. Java уже много лет является основным языком разработки для Android, предлагая надёжный и широко распространённый фреймворк. Kotlin, представленный в качестве официального языка для Android, тоже завоевал популярность благодаря лаконичному и выразительному синтаксису.
Как правило, мобильным разработчикам нужно знать весь цикл создания приложения — от кнопок на экране до работы с базами данных. Но в крупных корпорациях всё же часто бывает разделение на фронтендеров и бэкендеров.
В мобильной разработке задачи сложнее, но зарплаты выше, а конкуренция ниже.
iOS-разработчик
Средняя зарплата программиста на Swift: 200 000 рублей
Навыки для старта:
- Swift;
- среда разработки Xcode;
- инструменты контроля версий: Git, GitHub;
- инструменты дебаггинга: Chrome Dev Tools, Firebug и прочие;
- Apple Human Interface Guidelines.
Продвинутые навыки:
- многопоточная разработка;
- архитектурные паттерны MVC, MVVM, VIPER;
- Material Design;
- основы базы данных и работы с сетью;
- Unit- и UI-тестирование;
- публикация в AppStore.
Android-разработчик
Средняя зарплата программиста на Java: 161 000 рублей
Средняя зарплата программиста на Kotlin: 180 000 рублей
Навыки для старта:
- Java, Kotlin;
- Android Studio;
- инструменты контроля версий: Git, GitHub;
- инструменты дебаггинга: Chrome Dev Tools, Firebug и прочие.
Продвинутые навыки:
- многопоточная разработка;
- архитектурные паттерны MVP, MVVM, MVI;
- Material Design;
- основы базы данных и работы с сетью;
- Unit- и UI-тестирование;
- публикация в Google Play.
- Узнаете о преимуществах карьеры в мобильной разработке и поймёте, чем отличаются iOS и Android с точки зрения разработчика
- Научитесь работать с ключевыми инструментами Android-разработчика и создадите своё первое приложение с нуля
- Изучите базовые принципы разработки на Kotlin — главном языке для создания Android-приложений
1С-разработчики
Разработка на языке 1С очень востребована в России. Специалисты разворачивают и настраивают платформу «1C: Предприятие» для решения кадровых, бухгалтерских и других задач бизнеса. В обязанности 1С-разработчиков входит поддержка и обновление работающих приложений и создание новых конфигураций с нуля. Например, платформа позволяет настроить учёт остатков на складе, сортировать и анализировать данные.
Кроме 1С, программисту нужно знать язык разметки XML и протокол передачи данных HTTP.
Хотя 1С позволяет решать большое количество различных задач, иногда программисту его не хватает. Тут пригодятся знания других языков программирования: Python, JavaScript, C++, C#, Java.
Читать также
1С-разработчик
Средняя зарплата: 130 000 рублей
Навыки для старта:
- платформа 1С;
- язык 1С;
- интерфейс платформы;
- справочники и регистры сведений.
Продвинутые навыки:
- система компоновки данных;
- XML и JSON;
- HTTP-сервисы и SOAP-сервисы;
- интеграция, обмен данными;
- настройка бизнес-процессов.
Разработчики игр
Геймдев — крупная ниша, где программисты делятся на специализации по движкам, на которых разрабатываются игры: Unity, Unreal Engine и другие, а ещё по типам игр: десктопные, мобильные и MMORPG. Из игр на Unity вам могут быть знакомы Hearthstone, Pokemon GO и Wasteland, а на Unreal Engine — Fortnite и Borderlands.
Unity известен своей универсальностью, что позволяет использовать его для создания широкого спектра игр — от мобильных приложений до сложных 3D-симуляторов. Unreal Engine обеспечивает высокое качество графики и часто используется для создания игр класса ААА.
Порог вхождения в разработку игр, как правило, выше, чем в веб- и мобильную разработку, что обусловлено сложностью используемых языков программирования. Разработчики игр часто работают с такими языками, как C, C++, C# или Java — все они требуют глубокого понимания концепций и методов программирования. Эти языки позволяют разработчикам создавать сложную механику, физику и графику.
Особенно важны для разработки игр языки C и C++, обеспечивающие производительность и контроль, необходимые для оптимизации ресурсоёмких игр под различные платформы. C# и Java широко используются для разработки мобильных игр, обеспечивая переносимость и гибкость, необходимые для создания кроссплатформенных игр.
Разработчик игр
Средняя зарплата: 130 000 рублей
Навыки для старта:
- C#;
- умение работать с Unity и Unreal Engine;
- умение создавать двухмерные и трёхмерные игры;
- знание основных паттернов проектирования игр;
- знание принципов геймдизайна;
- умение оптимизировать игры.
Продвинутые навыки:
- 3D-моделирование и 3D-графика;
- знание принципов сетевого взаимодействия и организации мультиплеерного режима;
- знания асинхронной логики и алгоритмов;
- гибкие методологии разработки.
Системные администраторы и специалисты по информационной безопасности
Это широкая категория специалистов, которые обеспечивают корректную работу IT-инфраструктуры компании.
Значение системных администраторов и специалистов по информационной безопасности трудно переоценить. От них зависит целостность, доступность и конфиденциальность данных и ИТ-ресурсов организации. Тщательная настройка сетей, мониторинг производительности, проактивное выявление и устранение уязвимостей — всё это вносит существенный вклад в общий успех и безопасность современных предприятий.
Системные администраторы занимаются настройкой сетей, мониторингом, проводят инвентаризацию и обновление программного обеспечения.
Специалисты по информационной безопасности проводят аудиты защиты сетей, сайтов или приложений, тестируют сетевые сервисы на уязвимость, настраивают и администрируют средства защиты информации.
Специалисты по кибербезопасности уделяют особое внимание противодействию угрозам в цифровой среде. Они часто пишут код на таких языках, как C, Go или Python, для разработки решений по обеспечению безопасности, поиска и борьбы с вредоносными программами, а также постоянного мониторинга сетевой безопасности. В их обязанности входит внедрение надёжных мер безопасности, реагирование на инциденты и разработка стратегий по снижению рисков.
Системный администратор
Средняя зарплата: 125 000 рублей
Навыки для старта:
- инвентаризация, обеспечение рабочего состояния компьютерного оборудования;
- администрирование операционных систем, создание пользователей, удалённый доступ;
- установка программного обеспечения для работы компании: офисные, графические, бухгалтерские и прочие;
- знание и понимание сетевой модели OSI, основных протоколов.
Продвинутые навыки:
- проектирование, администрирование и модернизация локальной сети;
- поддержка центрального сервера;
- добавление и конфигурация новых рабочих станций;
- выделение дискового пространства;
- организация работы БД;
- выполнение процедур для предотвращения распространения вирусов.
Специалист по информационной безопасности
Средняя зарплата: 120 000 рублей
Навыки для старта:
- основы построение работы сетей;
- понимание принципов распределённых информационных систем;
- первичный аудит информационных систем.
Продвинутые навыки:
- хорошее понимание типов атак на информационные системы;
- владение навыками анализа инцидентов и разработки мер реагирования;
- понимание нормативно-правовых актов РФ в сфере информационной безопасности;
- владение Kubernetes на продвинутом уровне.
Резюмируем
Специализаций в программировании много, здесь мы подробно рассказывали о том, как выбрать свою. Проще всего войти в сферу разработки, начав с тестирования — если заниматься ручной проверкой приложений, языки программирования поначалу могут даже не понадобиться. Остальные направления подразумевают знания языков, фреймворков и вспомогательных инструментов. Сложнее всего попасть в геймдев — языки разработки игр довольно сложные, а ещё нужны хорошие навыки проектирования и дизайна.
В Нетологии есть бесплатные обзорные курсы, которые помогут получить представление о профессии и понять, что вам ближе — тестирование, веб или мобильная разработка.
Хотите написать колонку для Нетологии? Читайте наши условия публикации. Чтобы быть в курсе всех новостей и читать новые статьи, присоединяйтесь к Телеграм-каналу Нетологии.