В 2017 году спрос на блокчейн-разработчиков рос вместе с курсом биткоина. Количество вакансий снизилось, когда рынок разочаровался в новой технологии. Вместе с представителями Mail.ru Cloud Solutions, Red Hat, Acronis, «Рексофт», SEMrush и Bilderlings разобрались, какие технологии популярны сейчас и на изучение чего стоит тратить время.

Облака, контейнеры и микросервисы

Расходы компаний на облачные сервисы скоро пересекут отметку в 1 млрд долларов. В дальнейшем рынок будет расти примерно на 15% ежегодно.

«Одна из наиболее популярных облачных платформ — это OpenStack, на которой мы строили свое облако. Есть множество форков, есть какие-то проприетарные версии OpenStack от разных вендоров, начиная с Red Hat и HP, заканчивая IBM. Но начать обучение стоит с «ванильного» OpenStack».

Николай Бутенко, архитектор в Mail.ru Cloud Solutions, преподаватель факультета DevOps в GeekUniversity, онлайн-университете Mail.ru Group и образовательного портала GeekBrains

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

«Есть несколько популярных систем контейнерной оркестрации (управления контейнерами), например, очень популярен Kubernetes. Есть более высокие уровни абстракции, вендорские решения, где в лидеры выбивается OpenShift от Red Hat. Знакомство с технологией контейнеризации стоит начать с Docker, собрав простой кластер на Docker Swarm. Это базовые вещи, с них стоит постигать азы, а после этого переходить к серьезным контейнерным оркестраторам».

Николай Бутенко, архитектор в Mail.ru Cloud Solutions, преподаватель факультета DevOps в GeekUniversity, онлайн-университете Mail.ru Group и образовательного портала GeekBrains

Контейнеры и микросервисы перспективны, потому что меняют способ доставки и развертывания современных приложений. Они снижают зависимость от языков программирования, так как позволяют писать разные части приложения на разных языках — чаще на Java и Python.

«Сейчас набирает популярность язык программирования Go — именно на нем написана платформа Red Hat OpenShift. Еще есть бессерверные вычисления, в их основе функции, которые запускают на контейнерной инфраструктуре. Они требуют новых подходов к разработке, в последние годы поставщики гибридных и публичных облачных сред много сделали для того, чтобы облегчить задачу написания и использования облачных функций».

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

Технологии на основе Python

Есть несколько перспективных сфер, которые условно можно объединить по ключевому требованию к разработчику, — он должен отлично знать Python. Это задачи, связанные с машинным обучением, нейронными сетями, искусственным интеллектом и глубинным обучением.

«Python — удивительный язык, в котором практически нет ограничений. Это и хорошо, и плохо одновременно. Хорошо, потому что буквально через неделю можно писать на Python довольно сложные вещи.

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

Николай Сокорнов, директор департамента разработки ПО «Рексофт»

О перспективности машинного обучения говорит и старший программист группы разработки карты рассрочки «Совесть» Дмитрий Вдовин, упоминая про инновации. В качестве примера он приводит развитие голосовых помощников Siri, Алисы, Маруси. Они работают на основе машинного обучения.

Базовые знания никогда не выйдут из моды

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

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

Антон Тужик, Frontend Developer SEMrush

Качество кода и скорость его исполнения у профессионального разработчика могут отличаться от любительских в десятки раз.

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

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

Юрий Мейталов, руководитель IT-отдела Bilderlings

Кривая хайпа и стабильность спроса

Архитектор платформы Acronis Анна Мелехова считает, что многие технологии в IT проходят через кривую хайпа (Hype Cycle). Сначала появляется огромная востребованность в разработчиках, технологию пытаются использовать во множестве отраслей. Затем спад, количество вакансий сокращается. И стабилизация — бизнес понимает, где технология действительно пригодится, а где лучше использовать другие решения.

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

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

Анна Мелехова, архитектор платформы Acronis

Что будет востребовано в IT в 2020-х

  1. Облака, контейнеры и микросервисы: VMware, OpenStack, Kubernetes, Docker Swarm.
  2. Python для создания нейросетей и машинного обучения.
  3. Всегда нужны базовые знания основ: computer science, алгоритмы, структуры данных, паттерны проектирования, абстракции, методологии программирования.
  4. Спрос на хайповые технологии со временем может падать, но если технология полезна, то займет свою нишу на рынке.