Найти тему
IT-Academy

Почему C# не умрет в ближайшие лет 10 точно?

C# был создан в 1998-2001 годах инженерами компании Microsoft для разработки приложений на платформе Windows. Сегодня это один из самых востребованных языков программирования.

В индексе TIOBE С# входит в пятёрку самых популярных языков программирования, уступая лишь Python, C, Java и С++, с которыми его нередко сравнивают. В Википедии даже есть отдельная страница, посвященная сравнению С# и Java. Многие под влиянием мейнстрима нередко отдают предпочтение второму. Но, может, сегодня стоит лучше присмотреться к C#?

Об этом и не только мы пообщались с Евгением Третьяком, Senior Software Engineer в EPAM Systems и тренером IT-Academy. Более 6 лет назад Евгений решил сменить сферу деятельности и ушёл в программирование. Сегодня вся его профессиональная жизнь связана с .NET и C#.

Евгений Третьяк, тренер IT-Academy по C#
Евгений Третьяк, тренер IT-Academy по C#

Где используется C#?

— Cи# встречается во всех сферах разработки: геймдев, веб-приложения, сайты (их серверная часть), мобильные приложения, облачные сервисы и т. д. Единственное, где он раньше не использовался, – это UI. Но в последнее время C# можно встретить и в пользовательском интерфейсе. В данном случае задействуется фреймворк Blazor, но он пока в продакшене встречается редко.

А что насчет востребованности данного языка?

Вот эта широта использования позволяет утверждать, что C# не умрет в ближайшие лет 10 точно. Более того, за ним стоит большая корпорация Microsoft, которая активно его развивает. Еще один аспект – на C# очень много всего сделано. Чтобы разработать что-то новое, нужно много денег. Если у тебя в компании уже есть какая-то разработка, то чаще всего её стараются поддерживать на том языке, на котором она написана.

Говорят, что C# впитал многое из Java, C++ и Delphi. Что именно и в чем его особенности?

С# действительно был разработан компанией Microsoft как ответ на Java, которая была в то время очень популярна. Новый язык всегда пытается взять что-то классное из тех языков, которые уже есть, и доработать, внести новое. Поэтому C# взял какие-то вещи из Java, C++ и Delphi. Но в нём гораздо быстрее появляются новые возможности. Когда мы собираемся с джавистами, то часто шутим: «Наконец-то вам в Java завезли то, что у нас есть уже как 2 года». С# быстро адаптируется к рынку. Да, синтаксис С# очень похож на Java. Иногда даже сложно понять с первого взгляда, какой это язык. Но в C# больше базовых типов, которые позволяют взаимодействовать со средой.

Кстати, о синтаксисе. А почему C# называют «сахарным»?

Чтобы разработчику было удобно и приятно на нем работать, высокоуровневые языки, такие как C# и Java, пытаются оградить тебя абстракцией, т.е. они очень много делают за тебя. Ты пишешь какую-то минимальную функцию, а она будет самостоятельно разложена компилятором на 10 других. Поэтому С# называют «сахарным». Под этим подразумевают большое число облегчающих синтаксических конструкций. Например, если раньше они занимали две строчки кода, то теперь занимают одну. Операция та же, но «сахар» делает жизнь проще.

Какие еще плюсы есть у C#?

Он базируется на .NET, который после последнего обновления стал кроссплатформенным. Это значит, что приложения на C# могут использоваться не только в одной Windows среде. А еще C# достаточно старый. В нем есть реализации всех базовых функционалов, которые нужны для работы. Поэтому тебе не придется заново прописывать базу.

В вакансиях часто ищут .NET разработчика, подразумевая C#. Можно ли отождествлять .NETи C#? Ведь первое – фреймворк, второе – язык.

На самом деле, C# разработчик сам по себе мало кому будет нужен. А фреймворк – та база, на основании которой строятся все аппликейшены. .NET– это книга, а C# – это просто алфавит, с помощью которого ты пишешь. В сумме получаешь какое-то готовое произведение.

А чем .NETотличается от .NET Coreи ASP.NET? В вакансиях часто упоминают эти фреймворки.

Раньше был просто .NET фреймворк. Он мог работать только с Windows. Мы не могли запустить его на Linuxсистемах. Но спустя время Microsoft пришлось адаптироваться, так как есть и другие системы. Так появился .NET Core.Это следующая генерация .NET, которая отличается тем, что поддерживает кроссплатформенность. А если говорить об ASP.NET, то этот фреймворк предназначен для разработки веб-приложений.

Какие еще технологии должен знать C# разработчик?

Когда .NET разработчик начинает свой карьерный путь, он идет в серверную часть. Лет 5-10 назад этого хватало, чтобы найти работу. Но сейчас один человек должен уметь не только работать на сервере, но и хотя бы минимально на стороне пользовательского интерфейса. А за это отвечает HTML, CSS и JavaScript. Нужно знать немножко и эти языки. Вообще сервер находится посередине – между Frontend и базой данных. Поэтому .NET разработчику приходится подниматься вверх и отображать бизнес-логику на интерфейсе с помощью CSSи HTML, а также опускаться ниже на уровень базы данных, для чего нужно знать конструкции языка SQL. Если выполняешь эту цепочку сам, тебя называют Full-stack. Cейчас многие ищут именно Full-stack разработчиков. И последний этап развития – это облачные технологии, такие как Azure. Здесь нужно понимать, как развернуть свое приложение в облаке.

Если все так сложно, стоит ли учить C# в качестве первого языка программирования?

Зависит от целей. У меня на старте не было технического бэкграунда, и я начинал с C#. Есть языки, которые легче, тот же популярный JavaScript. Но чаще всего люди, которые выбирают JS, хотят быстро войти в IT. Если человек ищет быстрый вход, лучше выбрать что-то полегче и быстро упереться в свой потолок развития. Например, на JavaScript тяжеловато будет писать игры. Выбрав Cшарп, через несколько лет ты будешь более востребован как разработчик. У тебя будет выше зарплата. Это сложнее, но даёт больше возможностей для развития и направлений.

Какие полезные ресурсы порекомендуете новичкам, желающим выучить C#?

На самом деле, очень много ресурсов, тот же YouTube или LinkedIn Learning. Есть порталы, которые помогают развивать именно практические знания. К ним относится Codewars. Там можно найти задание и пытаться самостоятельно его реализовать.

Вы преподаете программирование на C#. Расскажите, что изучается на курсе?

Курс по C# в IT-Academy называется базовым. Но, на самом деле, он гораздо шире и включает в себя два подраздела. Первый закладывает фундамент, а второй уже предоставляет знания о более высоких сущностях, которые нужны всем разработчикам. Поэтому на финише ты будешь знать все механизмы C#. Я даже проводил свое мини-исследование. Мне было интересно, на что способны лучшие студенты после курса. Чтобы узнать, я отправлял их на собеседование в EPAM. Они были достаточно образованы, чтобы пойти на внутренние курсы компании, после которых люди уже получают оффер. Были и те студенты, которые сразу нашли работу сами либо пошли на более высокоуровневые курсы в других компаниях.

Можно ли полностью нулевому человеку прийти на курс по C#?

— К фразам вида «а у меня не математический склад ума…» я отношусь как к предрассудкам. Любого человека можно научить разрабатывать при наличии у него: а) времени (потому что чем меньше ты знаешь, тем больше времени понадобится, чтобы это понять); б) желания (если человек обладает неограниченным желанием, ему хватит усердия изучить язык).

Я видел случаи, когда новичок к концу курса прогрессировал и догонял тех студентов, которые приходили на курс более подготовленными. К концу курса они достигали одного уровня. Но это были люди, которые реально много работали. Нужно понимать, что нет тех, кто сильнее нас. Кто-то просто потратил больше времени.

Есть время и желание влиться в разработку на C#? Присоединяйся к дистанционной группе курса "Программирование на С Sharp"!

#программирование на С# #C# #курсыпрограммирования #онлайнобучение