Обучение

Сообщение об ошибке

Обучение

Сообщение об ошибке

Когда мы собираемся с джавистами, то часто шутим: «Наконец-то вам в Java завезли то, что в С# есть уже как 2 года»

8 декабря 2021

C# был создан в 1998-2001 годах инженерами компании Microsoft (Андерс Хейлсберг) для разработки приложений на платформе Windows. Сегодня это один из самых востребованных языков программирования. Сфера его использования расширяется с выходом новых дополнений и технологий, которые делают язык привлекательнее для разработчиков.

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

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


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

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

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

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

– Говорят, что C# впитал многое из Java, C++ и Delphi. Что именно? И что есть такого в C#, чего нет в других языках?

– С# действительно был разработан компанией 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, то этот фреймворк предназначен для разработки веб-приложений.


В 2021 г. звание «Язык программирования года» может достаться языку С#. Это может произойти на фоне взрывного роста его популярности, объяснения которому пока нет. C# располагается на пятой позиции, однако интерес к нему со стороны программистов по неустановленным причинам подскочил на 2,21%. Для сравнения, аналогичный показатель для Java и С, разместившихся на третьей и второй строчках соответственно, составил -2,41% и -4,69%, что говорит о падении популярности этих языков. Даже новоиспеченный лидер, Python, может похвастаться ростом популярности лишь на уровне 0,69% год к году.

Свои рейтинги Tiobe составляет путем подсчета результатов поисковых запросов, связанных с программированием, в которых упоминается тот или иной язык. Помимо прочего, при составлении учитывается наличие в этих запросах слов programming и language. 

По словам Tiobe, ничто не предвещало такого исхода. Между тем, именно у C# неожиданно есть все шансы получить заветный титул. Tiobe выбирает язык года ежегодно с 2003 г., и C# может победить впервые за эти 18 лет.

(по материалам СNews)


– Какие еще технологии должен знать 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#?

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

Я часто встречаю людей, которые идут на курсы, а потом говорят: «У нас нет времени, чтобы выполнять домашние задания и учиться дополнительно». Курсы не предназначены для того, чтобы просто прослушать их и стать разработчиком. Это о том, чтобы послушать и обязательно понять всё, а сложные для вас моменты дополнительно разобрать самому или с тренером. Человеку нужно заниматься каждый день, и не по полчаса, а по часа 2. Тогда даже за полгода ты сможешь все выучить и найти работу. Но если ты думаешь, что курсов по 2 часа 2 раза в неделю тебе достаточно, а сам ничего не хочешь делать, то это так не сработает. Можно прийти и с нулевым уровнем подготовки, но нужно усердие. И это уже зависит от самого человека, а не от тренера.

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


Есть время и желание влиться в разработку на C#? 

А если уже умеешь программировать на C# или хочешь развиваться на основе платформы .NET


Читай еще

Почему изучение программирования нужно начать с языка С?

Qulix Systems: «Мы готовы взять на работу лучших студентов курса по ASP.NET Core...»

Подходит ли С# для начинающих программистов

Стоит ли изучать C#

Почему стать C# разработчиком – это правильный выбор

Если сопоставить .NET и Java (Баттл технологий)

Книги для начинающего .NET-разработчика 


Полная, частичная перепечатка или любое иное использование материалов с сайта IT-Academy разрешается только с указанием активной гиперссылки, ведущей на первоисточник (точный адрес страницы на www.it-academy.by).