Обучение
- AI. Работа с нейросетями
- Подготовительные курсы
-
Программирование
- Промышленная разработка программного обеспечения на Java
- Промышленная разработка ПО на ASP.NET
- Разработка игр на Unity
- Курсы создания сайтов и Front-end разработки
- Разработка мобильных приложений под iOS
- Разработка мобильных приложений на Android
- Разработка веб-приложений на PHP
- Разработка веб-приложений на Python
- Разработка на C++
- Разработка игр на С++
- Разработка на Node.js
- Программирование на Go (Golang)
- Реляционные базы данных и SQL
- Веб-разработка на Ruby on Rails
- 1С программирование
- Fullstack
- Наука о данных
- Тестирование ПО
- Центр профессионального развития
- IT Bootcamp
- Гуманитарные и экономические дисциплины в IT
- Управление проектами и продуктами
- Бизнес- и системный анализ
- Веб-дизайн и компьютерная графика
- Системное и сетевое администрирование
- Информационная безопасность
- Маркетинг и продажи
- Английский язык для IT
Обучение
- AI. Работа с нейросетями
- Нейросети: практическое применение
- Искусственный интеллект в управлении командами и процессами
- Программирование
- Промышленная разработка программного обеспечения на Java
- Промышленная разработка ПО на ASP.NET
- Разработка игр на Unity
- Курсы создания сайтов и Front-end разработки
- Разработка мобильных приложений под iOS
- Разработка мобильных приложений на Android
- Разработка веб-приложений на PHP
- Разработка веб-приложений на Python
- Разработка на C++
- Разработка игр на С++
- Разработка на Node.js
- Программирование на Go (Golang)
- Реляционные базы данных и SQL
- Веб-разработка на Ruby on Rails
- 1С программирование
- Тестирование ПО
- Ручное тестирование ПО
- Мобильное тестирование приложений
- Автоматизированное тестирование на Python
- Автоматизированное тестирование на Java
- Автоматизированное тестирование на JavaScript
- Автоматизированное тестирование на C#
- Тестирование безопасности
- Гуманитарные и экономические дисциплины в IT
- Technical writing
- IT HR
- PR в IT
- Управление финансами в IT
- Управление проектами и продуктами
- Project management
- Product management: Основы управления IT-продуктом
Когда мы собираемся с джавистами, то часто шутим: «Наконец-то вам в Java завезли то, что в С# есть уже как 2 года»
C# был создан в 1998-2001 годах инженерами компании Microsoft (Андерс Хейлсберг) для разработки приложений на платформе Windows. Сегодня это один из самых востребованных языков программирования. Сфера его использования расширяется с выходом новых дополнений и технологий, которые делают язык привлекательнее для разработчиков.
В индексе TIOBE С# входит в пятёрку самых популярных языков программирования, уступая лишь Python, C, Java и С++, с которыми его нередко сравнивают. В Википедии даже есть отдельная страница, посвященная сравнению С# и Java. Многие под влиянием мейнстрима нередко отдают предпочтение второму. Но, может, сегодня стоит лучше присмотреться к C#?
Мы пообщались на эту тему с Евгением Третьяком, Senior Software Engineer в EPAM Systems и тренером
– Где используется 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#»
А если уже умеешь программировать на C# или хочешь развиваться на основе платформы .NET
-
присоединяйся к группе на курсе «Промышленное программирование на ASP.NET»
Читай еще
Почему изучение программирования нужно начать с языка С?
Qulix Systems: «Мы готовы взять на работу лучших студентов курса по ASP.NET Core...»
Подходит ли С# для начинающих программистов
Почему стать C# разработчиком – это правильный выбор
Если сопоставить .NET и Java (Баттл технологий)
Книги для начинающего .NET-разработчика