Какое направление в программировании выбрать в 2022 году: обзор IT-отрасли
Что выбрать — фронтенд или бэкенд? Java или JavaScript (ого! Это разные языки!)? Разбираемся, какие направления разработки популярны прямо сейчас.
Фото: skynesher / Getty Images
Никита Сироткин
Исполнительный директор IT-компании VVDEV.
Пишет на JavaScript, Java, Objective-C, C и C++.
Современный программист не может охватить все направления разработки — слишком сильно они отличаются друг от друга и слишком специфических знаний требуют. К счастью, можно выбрать направление, которое придётся вам по душе и будет востребовано на рынке. В этой статье мы постараемся разобраться, какие сферы IT актуальны прямо сейчас и с какими задачами вам придётся столкнуться.
Популярность языков программирования
Для начала посмотрим на авторитетные рейтинги популярности разных языков программирования. Важно отметить: ни один рейтинг не показывает достоверно, какой язык программирования лучший, — потому что каждый язык предназначен для решения определённых задач. И хотя с помощью рейтингов мы не определим лучший язык, зато сможем понять динамику их развития и востребованности на рынке.
TIOBE Index
Индекс TIOBE отражает популярность языков программирования. Рейтинг учитывает количество разработчиков, курсов и статей по конкретному языку во всём мире. Для вычисления позиции в рейтинге используются данные популярных поисковых движков и сайтов: Google, Bing, «Википедии», YouTube и других.
Мы видим, что лидирует Python (кстати, ещё год назад он был на втором месте, а пару лет назад — на третьем). Серебро удерживает старичок C — правда, вакансий на нём не так уж и много. На третьем месте — суперпопулярный в корпоративной среде Java.
Stack Overflow
Stack Overflow — популярная платформа вопросов и ответов о программировании. Ежегодно Stack Overflow проводит среди своих читателей опрос о популярности языков, фреймворков, баз данных и других технологий. Здесь первое место на протяжении последних девяти лет занимает JavaScript, но и популярный в TIOBE Python находится в топе.
GitHub
Рейтинг GitHub собирается на основе количества репозиториев, использующих тот или иной язык программирования. Здесь ведущие позиции занимают JavaScript и JSX (расширение языка JavaScript), а за ним следуют Java и Python — почти как в рейтинге Stack Overflow.
Направления разработки
Кроме динамики языков программирования, важно понимать, в каких направлениях разработки они используются. Язык программирования, хорошо решающий задачи для одной сферы деятельности, может плохо себя показывать в других.
Прикладное программное обеспечение
Прикладное ПО — это приложения, решающие определённый набор задач и направленные на взаимодействие с пользователем. За последние 10–15 лет это направление разработки значительно развилось. Сейчас мобильное приложение или сайт есть даже у многих представителей малого бизнеса, а спрос на прикладное ПО ежегодно только растёт.
Работая над прикладным ПО, программисты редко сталкиваются со сложными быстрыми алгоритмами. Зато необходимо довольно глубокое погружение в предметную область разрабатываемого ПО — даже бизнес-логику. Высоко ценится умение понимать проблемы заказчика и предлагать свои варианты решения, а не формально разработать функциональность «в рамках ТЗ».
Фронтенд-разработка (веб)
Популярные языки: JavaScript, TypeScript.
Значительная часть прикладного программного обеспечения сегодня представлена веб-приложениями. Это позволяет реализовать кросс-платформенность и ускорить время доставки обновлений пользователю, не требует лишних движений для взаимодействия с приложением.
Спрос на фронтенд-разработчиков довольно высок, однако начинающим специалистам трудно устроиться из-за довольно высокой конкуренции. Для опытных же разработчиков картина совсем другая — нередко они могут позволить себе выбирать команду или проект из нескольких вариантов.
Бэкенд-разработка
Популярные языки: Java, Go, JavaScript, Python, Ruby.
Редкое приложение работает в рамках одного устройства. Для реализации взаимодействия между клиентскими приложениями и сервером используется бэкенд-разработка.
Работа бэкендера не так заметна для пользователя, как работа фронтендера. Но от бэкенд-разработки успех проекта зависит чуть больше. Работая «по ту сторону», вы будете взаимодействовать не столько с языками программирования, сколько с технологиями и архитектурой кода.
Для разных задач вы сможете комбинировать разные инструменты. Например, высоконагруженные сервисы можно реализовать на языке Go, а лёгкий клиентский слой — с помощью фреймворка Node.js.
Мобильная разработка
Вместе с сайтом можно запустить мобильное приложение. Если сравнивать с вебом, в мобильной разработке больше технологий — плюс на старте вам предстоит выбрать узкую специализацию: нативная разработка для конкретной платформы или, например, кросс-платформенная разработка на Dart (Flutter).
Спрос на мобильных разработчиков высок, но и порог входа значительно выше, чем во фронтенде.
Десктопная разработка
Популярные языки: C++, C#, Objective-C/Swift, JavaScript.
Сегодня всё меньше вспоминают про разработку десктопных приложений: большинство функций взяли на себя веб-сайты. Но есть задачи, которые решают только десктопные версии программ. Поэтому разработчикам, которые готовы окунуться в эту сферу, достаются интересные задачи и не менее интересные кейсы.
Однако минимальные требования для получения оффера выше, чем у фронтенд- и даже мобильных разработчиков, а вакансий значительно меньше.
Наукоёмкая разработка
Этот тип программирования связан с научными исследованиями. От разработчика требуется хотя бы понимание основ физики, химии или медицины — только тогда он сможет разрабатывать специализированное ПО или сервисы. Также придётся плотно взаимодействовать с учёными. Результаты такого программирования часто публикуются в научных журналах и на авторитетных порталах.
Проблемы, которые решают разработчики в науке, действительно вдохновляют: их результаты позволяют ускорить циклы экспериментов за счёт симуляций, снизить стоимость исследований за счёт уменьшения числа итераций, повысить скорость и качество работы специалистов за счёт качественной визуализации и подготовки данных.
Data Science
Популярные языки: Python, JavaScript, R, SAS, SQL, Julia.
Data Science — популярное направление разработки. Основной его фокус — данные. К Data Science относится работа с Big Data, Machine Learning, Data Analytics.
Работа в Data Science требует глубоких знаний математического анализа, статистики, машинного обучения и анализа данных. Это довольно молодое направление, поэтому многие выбирают его из-за свежих и интересных исследовательских задач. Другой повод выбрать Data Science — высокие зарплаты специалистов.
Разработка игр
Многие разработчики поступают в университет, чтобы после обучения заняться разработкой игр. И даже выбрав для себя какую-то другую сферу разработки, многие продолжают мечтать о создании своей игры и пилить её вечерами и ночами после работы.
К сожалению, это так не работает. Геймдев — сложное направление, в него крайне трудно попасть без профильного образования. При разработке игр программисты часто сталкиваются с задачами, которые по сложности не уступают научным исследованиям.
Сложная работа с частыми переработками сполна перекрывается высокими зарплатами и эмоциональной отдачей после долгожданного запуска игры. Правда, на начальных ступенях зарплаты могут быть ниже, чем в других сферах.
Другие направления
Кроме перечисленных направлений разработки, есть и другие. Например:
- интернет вещей (IoT);
- программирование встроенных систем (embedded) и микроконтроллеров;
- автоматизация тестирования.
Мы не остановимся на этих направлениях подробно, потому что в рамках одной статьи невозможно охватить их все — однако это не говорит о том, что остальные направления неактуальны. Хотя, конечно, вакансий в них меньше, чем в сферах, которые мы разобрали в материале.
Заключение
Квалифицированные специалисты востребованы всегда и везде. В каждом направлении разработчики сталкиваются со специфическими задачами, требующими различных навыков и даже личностных качеств. Поэтому выбирать направление разработки нужно не только на основании рейтингов, но и на основании своих предпочтений и интересов.