Молодые не идут в .NET. Правда или нет?

Как-то раз наши разработчики тёрли за что-то важное у кофемашины и между делом стебались, что им скоро придётся уйти из .NET, потому что язык вымирает. Шутки шутками, но мысль застряла в голове и не отпускала.

image-loader.svg

Чтобы прояснить ситуацию, мы заглянули в DotNet-сообщество, сходили к ребятам из Microsoft, Райффайзенбанка, Контура, CUSTIS и задали несколько вопросов. Вы тоже возьмите чашечку кофе, устройтесь поудобнее, поразмышляйте о будущем .NET и поделитесь своими мыслями в комментариях.

Какие позиции занимает .NET сегодня

image-loader.svgГеоргий Полевой

SRE в Dodo Engineering, 21 год в .NET
@georgepolevoy

4 февраля 2014 года Сатья Наделла был назначен главой корпорации Microsoft, заменив Стива Балмера. Это означает, что с Microsoft снято проклятие привязки к Windows. Наделла начал движение в сторону open source и кросс-платформенности, поэтому сейчас .NET Framework не имеет недостатков по отношению к Java, и как никогда до этого перспективен.

765240986ab3d9ea20662031312a22fb.jpegРоман Неволин

DevRel manager в Контур, 9 лет в .NET
@nevoroman

.NET сейчас — крепкий середнячок по всему. Не самый сложный или простой, не самые высокие или низкие зарплаты, не самый популярный, но C# всё ещё в топ-5.

Это хороший фреймворк общего назначения, с прилично развивающимся языком и достойной производительностью. Microsoft в последние годы развивает платформу в очень правильном направлении — open source, полноценная кросс-платформенность и множество технических улучшений. Прямо сейчас ту же нишу занимает только Java, но в этой борьбе всё без изменений уже много лет.

Источник: https://www.jetbrains.com/ru-ru/lp/devecosystem-2021/Источник: https://www.jetbrains.com/ru-ru/lp/devecosystem-2021/

55b68a411d92817c8ce060eb5d7007aa.jpegЮрий Орлов

Техлид в Райффайзенбанке, куратор MskDotNet, 12 лет в .NET
FB Telegram

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

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

Хорош ли .NET для старта в IT

4ad03c03ea3e47537fe0077398de7b44.jpegЕвгений Пешков

JetBrains, 5 лет в .NEТ
@epeshk

Сейчас популярны курсы, обещающие трудоустройство программистом на %язык_нейм% за N месяцев. Я больше склоняюсь к классическому подходу и считаю, что для начинающих куда важнее знания, не зависящие от конкретного стека технологий. Об архитектуре компьютера, операционных системах, сетях, алгоритмах, интеграции с внешними сервисами, подходах к разработке ПО, организации кода, тестировании, отладке. Всё это нужно изучать сразу на различных современных платформах и языках, будь то .NET (C#)/JVM (Java, Kotlin), Python, С++, JS, Go. И лишь после этого выбирать, в какой теме развиваться дальше. Это уже зависит от личных предпочтений и рынка в регионе. Научиться базовым концепциям и встроить их в своё мышление гораздо сложнее, чем освоить ещё одну платформу, фреймворк или язык программирования. Нужно уметь смотреть на код сквозь слои абстракции языка и платформы, тогда не придётся учиться новой технологии с нуля.

В целом .NET и JVM, на мой взгляд, оптимальны для новичка-бэкендера как платформы со статически типизированными языками, готовыми библиотеками и фреймворками, большим сообществом, богатым тулингом и имеющие концептуальное сходство, позволяющее достаточно легко перескочить с одного стека на другой на начальных этапах. Начинающему совершенно точно не следует выбирать плохой курс по Java, если есть хороший по C#, руководствуясь тем, что на Java вакансий на K% больше. Как и плохой курс по C#, если есть хороший по Java, Python или другой технологии.

image-loader.svgПавел Притчин

СТО в Dodo Engineering, 7 лет в .NEТ
@pritchin

Для изучения С# не очень сложен. Посложнее, чем Python, но попроще Go, как по мне. Для новичка многое может простить. И есть возможность подучиться в крупной компании, где берут джунов и нет супер критического продакшена. Такой работы много. Платформа развивается, сейчас перешла на кросс-платформенные рельсы полностью.

C# на 4 месте по поиску тьюториалов в Google. Источник: https://pypl.github.io/PYPL.htmlC# на 4 месте по поиску тьюториалов в Google. Источник: https://pypl.github.io/PYPL.html

322f204c1438ce9e495e320268cf7c2d.jpegЕгор Богатов

Microsoft, 15 лет в .NET
Twitter

Если говорить о разработке игр, то C#/.NET — один из двух возможных вариантов (имею в виду UE Blueprints). В других областях я бы судил исключительно по количеству вакансий entry-уровня. Конечно, сложно тягаться с той же фронтенд-разработкой на JavaScript или TypeScript.

46f628af10f8f1e531f11ea25dd67230.jpegРоман Букин

.NET-разработчик в Dodo Engineering, 9 лет в .NET
GitHub

Именно для входа он хорош. Есть ASP.NET Core для веба, Unity для игр, WinForms, WPF, MAUI, Avalonia для десктопа (и спорный, но достойный упоминания Blazor в Electron).

Visual Studio — крайне мощная, но довольно простая в освоении IDE, где Integrated — не пустой звук, к тому же ещё и с Community-лицензией, которая позволяет не только обучаться, но и вести коммерческую разработку в маленькой команде. Отдельно стоит выделить MSBuild — пожалуй, лучшая система сборки, которая просто работает и в подавляющем большинстве случаев не доставляет головной боли.

В рейтинге популярных фреймворков ASP.NET и ASP.NET Core на 4 и 6 месте. Источник: https://insights.stackoverflow.com/survey/2020#technology-web-frameworks-professional-developers2В рейтинге популярных фреймворков ASP.NET и ASP.NET Core на 4 и 6 месте. Источник: https://insights.stackoverflow.com/survey/2020#technology-web-frameworks-professional-developers2

Но как по мне, молодые специалисты идут в .NET неохотно. Сказывается репутация Microsoft. В головах многих людей это по-прежнему кровавый энтерпрайз, который гвоздями прибит к Windows. Будем честны, много где ещё осталось легаси, из-за которого это утверждение какое-то время будет не пустым звуком (даже у нас оно есть). Есть тренд на улучшение, но пройдёт, наверное, десяток лет, прежде чем эти стереотипы вымрут как явление в сообществе разработчиков.

У .NET есть и другая проблема. Python подмял под себя машинное обучение, на Go написан Kubernetes, а JavaScript слишком долго был единственным языком для фронтенд-разработки. Каждая из этих областей буквально на хайпе. А что .NET? С какой областью он ассоциируется у большинства разработчиков в первую очередь? Десктопные приложения под Windows. Не самая хайповая сфера, мягко говоря.

9c8b23caf75bbc0d6c150d1b58887c97.jpegВячеслав Залыгин

Стажёр в Dodo Engineering и наш самый молодой .NET-разработчик— ему только 17

Программированием именно на С# я занимаюсь уже 4 года. Последний год изучал сетевое взаимодействие, саму сеть, ASP.NET Core, немного HTML, CSS, JavaScript. В будущем планирую пройти курс по React, чтобы немного прокачать знания про фронтенду, но вообще погружаюсь в тот стек и те инструменты, что используются в Dodo.

Мне кажется, что Python более привлекателен для старта за счёт простоты синтаксиса. Но объективно я не могу судить, т.к. не знаю, что нужно изучить в нём, чтобы начать работать. .NET мне нравится, он мне роднее.

Есть ли кризис и нехватка .NET-разработчиков

image-loader.svg30 соискателей на одну вакансию. Это точно кризис?30 соискателей на одну вакансию. Это точно кризис?

Кризис есть. Но связан он не с тем, что поток джунов стал меньше, а скорее наоборот, — с тем, что он стал больше. Сейчас многие компании выбирают C#, потому что, на первый взгляд, это простой язык, на котором легко писать, и набирают соответствующих «специалистов». А потом эти люди, выходя на рынок, портят репутацию языка и ухудшают мнение о C#-разработчиках в целом. Причина понятна: фреймворк, IDE, сторонние инструменты (такие как R#) много думают вместо разработчика, и не все люди, которые их используют, задумываются «что же там внутри». Такое поверхностное знание получается.

ce077359e57fcfdc881fe754778b0252.jpegЮрий Орлов

Техлид в Райффайзенбанке, куратор MskDotNet, 12 лет в .NET
FB Telegram

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

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

85550946b085bda39129da48d12b0bc3.jpegРоман Неволин

DevRel manager в Контур, 9 лет в .NET
@nevoroman

Мне кажется, что количество разработчиков вполне соответствует количеству рабочих мест. По всем показателям популярность .NET не особо падает, новички всё также приходят, в основном из университетов (там .NET как-то исторически популярен). Нехватка кадров ощущается постоянно, но такая же нехватка кадров ощущается и в Java, например.

Что ждёт .NET в будущем

211af9c0f3de62ec53cfa9c6fccfbe62.jpegРоман Букин

.NET-разработчик в Dodo Engineering, 9 лет в .NET
GitHub

Будущее определённо есть. Microsoft наняли Гвидо и теперь он пишет на F# За .NET стоит Azure, а за Azure — очень много денег. В перспективе 5–10 лет вряд ли что-то будет на замену. .NET — это технология Microsoft, в которую она очень много и долго инвестирует. Планируется постепенно закопать .NET Framework (последняя версия — 4.8 и новых не будет) и развивать .NET (ранее имевший приставку Core).

Серьёзную ставку делают на Blazor. Сыграет она или нет — покажет время. Я же достаю попкорн и наблюдаю за происходящим :)

4bbdc27bf40737d6ccc833e833d94a0d.jpegЮрий Орлов

Техлид в Райффайзенбанке, куратор MskDotNet, 12 лет в .NET
FB Telegram

Считаю, что .NET будет развиваться и захватывать всё больше областей деятельности. Ещё вчера он ассоциировался с Windows Forms. Сегодня это веб, игры, облачная разработка, кросс-платформенность, IoT, ML и многое другое. Безусловно, это не может не сказаться на конкурирующих платформах JVM-стека и Python. Думаю, все эти технологии будут развиваться, перенимать опыт друг у друга (как это видно сейчас в тех же C#, Java, Kotlin), завоёвывать всё больше умов и сфер деятельности. Процентное соотношение захваченного той или иной технологией рынка будет меняться, но резких изменений, как мне видится, не будет. Здесь важное влияние также оказывает опыт нынешнего поколения IT. Нередко бывает так, что при создании нового проекта в том же энтерпрайзе технология выбирается исходя из опыта организатора команды (архитектора, лида, менеджера). Это способствует пропорциональному образованию рабочих мест и сохранению спроса на специалистов.

Эти ответы мы бы не услышали, если бы всё, что происходит у кофемашины, оставалось у кофемашины. Да не переведутся молодые специалисты в .NET, ведь он живее всех живых. Согласны?

Что ещё посмотреть по теме:

Будущее .NET — обсуждение на 50-й встрече сообщества MskDotNet

Наши вакансии для .NET-разработчиков.

© Habrahabr.ru