Бесплатный курс по C# для начинающих
C# – язык программирования созданный компанией Microsoft. Он стабильно входит в Top 10 самых популярных языков. На нем можно разрабатывать веб-серверы, настольные и мобильные приложения и даже игры. Изучать C# мы будем с нуля, с самых азов. Первый модуль – плацдарм для написания осмысленных программ. В нем мы разберем, как написать свой первый код на C#. Расскажем, что такое комментарии и зачем они нужны. На примере проверки ваших решений рассмотрим, что такое тестирование и как читать вывод тестов.
Арифметика
- 6. Арифметические операции
- 7. Операторы
- 8. Коммутативная операция
- 9. Композиция операций
- 10. Приоритет операций
- 11. Числа с плавающей точкой
- 12. Оформление кода
Современные программы создаются для обслуживания бизнесов, помощи в ежедневной жизни и развлечений. Но в основе их работы по-прежнему лежат вычисления. Наиболее простая и базовая тема в программировании — арифметика. В этом модуле мы переведем арифметические действия на язык программирования. Вспомним школьные правила из уроков математики и поговорим о приоритете операций.
Строки
- 13. Кавычки
- 14. Экранирующие последовательности
- 15. Конкатенация
Текст в программировании называется «строками», и эта тема не так проста, как может показаться. Как вывести фразу, в которой есть и одинарные, и двойные кавычки? Как вообще быть с текстом, ведь компьютер не знает ничего о буквах! Модуль посвящен разным аспектам написания текста – от кавычек и экранирования до кодировки.
Переменные
- 16. Что такое переменная
- 17. Изменение переменной
- 18. Выбор имени переменной
- 19. Ошибки при работе с переменными
- 20. Выражения в определениях
- 21. Переменные и конкатенация
- 22. Именование переменных
- 23. Магические числа
- 24. Интерполяция
Информацию можно помещать в специальные «хранилища» — переменные. Это позволяет переиспользовать уже существующие данные и не дублировать их в разных частях кода. В этом модуле мы разберем как изменять переменные и именовать их, чтобы чтение вашего кода было понятным для любого разработчика. Вы поймете, что придумать название переменной не так-то просто! А еще расскажем, как использовать переменные для упрощения сложных вычислений.
Типы данных C#
- 25. Зачем нужны типы данных
- 26. Явная типизация
- 27. Какие бывают типы
- 28. Значение null
- 29. Явное преобразование типов
C# — язык со строгой статической типизацией. Как это влияет на код, что такое типы, какие они бывают и кто их выводит. Все это изучается в данном модуле.
Начните прямо сейчас
Вызов методов
- 30. Методы и их вызов
- 31. Параметры методов
- 32. Свойства
- 33. Вызов метода — выражение
- 34. Неизменяемость строк
- 35. Цепочки вызовов методов
- 36. Детерминированность
- 37. Побочные эффекты
- 38. Стандартная библиотека
- 39. Какие бывают методы
Для выражения любой произвольной операции в программировании существует понятие «функция». Функции — кирпичики, из которых программисты строят системы. В C# функции называют методами. В этом модуле мы научимся пользоваться уже созданными методами. Посмотрим на сигнатуру методов в документации и разберемся, как её использовать.
Определение методов
- 40. Создание (определение) метода
- 41. Возврат значений
- 42. Определение методов
- 43. Методы с переменным количеством параметров
Определение собственных методов значительно упрощает написание и поддержку программ. Например, умение определять методы позволяет объединять сложные (составные) операции в одну – вся сложность может быть скрыта в одном простом методе. Научившись создавать методы, вы сделаете первый шаг на пути к построению по-настоящему полезных программ. И мы вам в этом поможем. В этом модуле вы создадите свой первый метод и научитесь давать ему (а заодно переменным) понятные названия.
Логика
- 44. Логический тип
- 45. Предикаты
- 46. Комбинирование операций и методов
- 47. Логические операторы
- 48. Отрицание
- 49. Логические операторы 2
Логические выражения позволяют отвечать на вопросы, которые возникают во время работы программы. Пользователь аутентифицирован? Подписка оплачена? Год високосный? В этом модуле изучаем функции-предикаты – те, которые задают вопрос и отвечают на него – правда это или ложь. Попрактикуемся в написании таких функций и перейдем к более сложным логическим выражениям.
Условные конструкции
- 50. Условная конструкция (if)
- 51. Конструкция if-else
- 52. Конструкция else if
- 53. Тернарный оператор
- 54. Конструкция Switch
Задача функции-предиката — получить ответ на вопрос, но обычно этого недостаточно и нужно выполнить определенное действие в зависимости от ответа. if и switch – конструкции C#, с помощью которых программист может выбирать необходимое поведение программы в зависимости от разных условий: пропускать одни инструкции и выполнять другие. Их и разберем на практике в этом модуле.
Циклы
- 55. Цикл While
- 56. Агрегация данных (Числа)
- 57. Агрегация данных (Строки)
- 58. Обход строк
- 59. Условия внутри тела цикла
- 60. Формирование строк в циклах
- 61. Синтаксический сахар
- 62. Инкремент и декремент
- 63. Возврат из циклов
- 64. Цикл For
Любой код может повторяться десятки, тысячи, миллионы раз. В комбинации с другими известными нам инструментами — переменными и условиями — это открывает множество возможностей по построению программ и сложных систем. Приведем простой пример. Вам нужно найти конкретную фразу в учебнике из 500 страниц. Фразу вы помните, а вот номер страницы нет. Самый простой (и долгий) способ — последовательно просматривать страницы до тех пор, пока не найдете нужную. Для выполнения таких повторяющихся действий и нужны циклы.
Как программировать на C#: обзор языка, примеры кода, базовые инструменты

Федор Мальцев Backend-разработчик Logrus IT
От простой формы регистрации до алгоритма машинного обучения, от тетриса до VR-игр на движке Unity — все эти программы можно написать на языке C#. Вместе с backend-разработчиком Logrus IT Федором Мальцевым разбираемся, что из себя представляет C# и какие возможности он открывает программисту.

«IT-специалист с нуля» наш лучший курс для старта в IT
C# — что это за язык
C# (произносится си шарп) — это объектно-ориентированный язык программирования, разработанный компанией Microsoft, чтобы создавать приложения для Windows. Сегодня C# стал кроссплатформенным, на нем можно писать программы как для Windows, так и для iOS и Linux, особенно веб-приложения и для геймдева. Язык используется в backend-разработке веб-приложений: в работе с базами данных и сетью, в программировании логики и так далее. Программисты C# востребованы в банках, небольших компаниях и стартапах, мобильной разработке. C# пригодится тем, кто планирует создавать видеоигры и VR-приложения на популярном движке Unity или работать с алгоритмами машинного обучения.
Профессия / 18 месяцев
Разработчик игр на Unity
Создавайте виртуальные миры
4 908 ₽/мес 9 817 ₽/мес


Чем хорош язык C#
C# — объектно-ориентированный язык, он сделан так, чтобы работать с кодом было проще. Код делится на фрагменты (объекты), каждый из которых можно редактировать и улучшать, не переписывая при этом весь остальной код. Кроме того, в C# есть много функционала, который уже реализован — просто берите его и используйте. Например, если вам нужен алгоритм сортировки, можно не писать его с нуля, он уже есть. Достаточно написать команду “.sort” — и все отсортировано.
У C# синтаксис проще, чем, например, у Python. В нем есть фигурные скобки, которые размечают блоки кода. В результате воспринимать такой код легче. C# — неплохой язык для начинающих, изучить его будет проще, чем тот же C++. Если же вы раньше имели дело с C-подобными языками, то будет еще легче, синтаксис окажется для вас очень знакомым.
Сейчас язык C# стал опенсорсным: каждый может внести в него свой вклад, но Microsoft при этом сохраняет контроль, поддерживает философию продукта, выбирает лучшие предложения. Обновление языка происходит раз в год.
Читайте также Чем занимается программист игр на Unity и C#?
Востребован ли C#

Весной 2023 года на hh.ru размещены более 1300 вакансий C#-разработчиков по всей России. Организация контроля качества кода TIOBE в марте 2023-го включила C# в топ-5 самых популярных языков программирования и отметила его бурный рост. Востребованность языка подтверждают и зарплаты специалистов по C#. За второе полугодие 2022-го, по данным Habr, средняя оплата труда разработчика на C# выросла на 4% и составляет 161 000 рублей.
Инструменты для работы с C#

Чтобы работать с C#, вам понадобятся следующие инструменты. Visual Studio — среда разработки, созданная специально для C#. На этой площадке можно писать код и разворачивать приложения. Встроенный функционал проверяет код и подсказывает, если вы совершили ошибку, выдает справочную информацию, если вы что-то забыли. ASP.NET — фреймворк для веб-разработки на C#, который позволяет быстро и просто связывать серверную часть приложения с клиентской. WPF (Windows Presentation Foundation) — софт для программирования графических интерфейсов для разных экранов. LINQ (Language Integrated Query) — встроенный в C# язык запросов, напоминающий SQL. Помогает работать с данными из разных источников, сортировать и группировать их. Entity Framework — фреймворк, который позволяет работать с данными как с объектами и использовать для запросов язык LINQ.
С чего начать изучение C#
Руководство по C# и Visual Studio от Microsoft — упорядоченная официальная документация от компании-разработчика с примерами кода, инструкцией, как создать первое приложение на C#, и учебниками. Поток C# на Хабре — новости и кейсы от разработчиков. Поток C# на сайте Metanit — очень понятное объяснение практически всех основных тем с примерами кода DotNetRu — YouTube-канал на русском с подкастами и докладами с конференций. Книга Эндрю Стиллмена «Head first C#» — хорошая книга для начинающих, которая не задавит сложной информацией и даст все необходимое. Дополнить можно справочником по C# Бена и Джозефа Албахари. Книга Джеффри Рихтера «CLR via C#. Программирование на платформе Microsoft .NET Framework 4.5 на языке C#» — библия C#, в которой описаны все тонкие моменты языка. Будьте осторожны, с нее лучше не начинать, иначе можно испугаться и бросить.
Разработчик игр на Unity
Все главные навыки разработчика игр на одном курсе. Вы освоите все этапы геймдизайна, научитесь программировать на С# и создадите 7 игр во время курса.
Уроки C#

Изучение C# для начинающих / Урок #1 – Введение в язык C# с нуля
C# по праву входит в топ лучших языков, которые интенсивно развиваются и пользуются большим спросом на рынке ИТ. C# применяется начиная от простейших программ и до огромных веб-сервисов, через которые каждый день проходят миллионы клиентов.
Видеоурок
Полезные ссылки:
- Программа Visual Studio ;
- Программа Visual Studio Code ;
- Фреймворк .NET .
Информация про язык C#
Язык C# был разработан компанией Microsoft и впервые он появился еще в 2000 году. С момента его появления прошло уже много лет. Язык перетерпел большое количество обновлений и нововведений. На сегодняшний день язык является одним из самых популярных и востребованных языков в мире.
Язык C# является объектно ориентированным языком программирования. Это означает, что каждый файл представляет из себя определенный класс. Что такое классы и что с ними делать мы об этом поговорим уже в следующих уроках.
Сам язык использует синтаксис, сильно напоминающий язык Си или же Java. Так на самом деле получилось не спроста. Язык C# хоть и является достаточно старым языком, но по сравнению с языками С++ и Си является ребенком.
Язык перенял многое от своих предшественников — языков C++, Delphi, Smalltalk и, в особенности, Java. При разработке С# были взяты лучшие моменты из всех этих языков. Например, C# в отличие от C++ не поддерживает множественное наследование классов. Так было решено по причине их неудобства использования.
После базового изучения c# для чайников, можно сразу перейти к углублённому изучению библиотек и смежных технологий. Большинство современных проектов пишутся с их привлечением, на чистом C# работают редко.
Язык программирования c# использует синтаксис, сильно напоминающий Си и приближённый к С++ , Java . Если есть познания в одном из перечисленных языков, изучить C# станет значительно легче.
C# это объектно-ориентированный язык, который немало позаимствовал из С++ и Java. Для примера, С# обладает поддержкой наследственности, полиморфизма, повторной загрузки операторов, статической типизации. Такой подходит помогает в решении распространённых задач в сфере разработки крупных приложений, сохраняющих гибкость, расширяемость и масштабируемость. C# всё ещё развивается, после каждого дополнения в языке появляются новые функции, преимущественно довольно полезные. Среди них: асинхронная работа, переменное связывание, лямбды и т. п.
На что способен C#?
В современном виде С# способен на очень многие вещи. Сегодня он не зря занимает лидирующие позиции в списках популярных языков, так как на его основе вы можете строить практически любые угодные вам проекты.
Предположим, если вам нужно написать программу для считывания данных с сайта и вывода их в консоль – не проблема. Нужно сделать веб сайт, создать приложение под Виндовс, написать нейронную сеть, сделать игру или написать мобильное приложение – все это можно делать, используя разные библиотеки и Фреймворки, что доступны для этого языка. Про них мы поговорим чуть позже, но пока просто можете знать, что изучив базовый синтаксис языка и далее изучив различные его дополнения (другими словами библиотеки), вы сможете делать, практически, все что вам только захочется.
Кроме того, после появления игрового движка Unity язык приобрел дополнительную мощь на рынке. Теперь на его основе в связке с мега популярным движком Unity вы легко и быстро можете создавать игры любого жанра и любой сложности.
Сходство C# и Java
Многие очень часто сравнивают язык C# и язык Джава . Делают они это не спроста.
- Во-первых, языки появились с разницей в 5 лет, что не очень много.
- Во-вторых, их синтаксис написания кода очень схож.
- И в-третьих, они приблизительно выполняют одни и те же действия и работают в смежных сферах.
Такое сходство не случайно. После релиза язык Джава стал стремительно набирать обороты популярности. В то же время компания Microsoft решила предпринять меры и начала разработку языка, который бы напрямую конкурировал с Джава. Таким языком стал как раз язык C#.
Их сравнение вполне оправдано, хотя при сравнении сказать что лучше – просто невозможно. Несмотря на схожий синтаксис и схожие сферы применения языки все же имеют некоторые различия.
К примеру, написание программ под Виндовс гораздо удобнее на С#. Это не мудрено, ведь Виндовс и С# были созданы одной компанией. В то же время разработка мобильных приложений под Андроид явно относится только к языку Джава. При этом разработка игр уже удобнее на C#, ведь есть движок Unity. А вот с разработкой веб сайтов все максимально сложно. Там и там есть крутые фреймворки и там и там можно делать сайты любой сложности.
Ближайшее перспективы языка
На сегодня язык обладает невероятно большим сообществом разработчиков. На основе языка можно делать проекты из разных сфер. Его будущие перспективы достаточно оптимистичны.
Язык все время развивается, появляются новые вакансии на рынке и список возможностей у языка постоянно растет. Изучив язык вы сможете найти себе работу, стать крутым программистом и делать те проекты из той сферы, которая вам наиболее будет подходить по духу.
Что такое .NET?
Если речь заходит о C#, часто подразумеваются технологии, связанные с платформой .NET (WPF, ASP.NET). То же самое справедливо в обратном направлении, говоря про .NET, думают про C#. Безусловно, понятия имеют жёсткую взаимосвязь, но не являются синонимами. C# — это язык, созданный для взаимодействия с фреймворком .NET. Тем не менее .NET – это довольно широкое понятие.
Ранее вы уже могли слышать про платформу .Net. По началу не понятно что это такое, поэтому давайте пару слов уделим этой платформе.
Вы можете вести разработку в разных сферах и главное использовать нужные фреймворки и библиотеки для каждой из целей. Большинство из этих библиотек выпускаются под общей платформой – Microsoft .NET Framework или сокращенно .NET.
По сути вы можете представить, что данная платформа как некая папка, которая содержит другие папки (библиотеки). Вы выбираете папку WPF и вот вы уже делаете Виндовс программы с интерфейсом или же выбрали ASP NET и вот вы уже делаете веб сайты.
Вы действительно можете представить что .NET – это как папка с другими библиотеками, что доступны для языка C#. При этом важно понимать, что для работы в определенной сфере придется ещё изучить подходящую под эту сферу библиотеку.
Управляемый и неуправляемый код
Некоторые читатели уже слышали, когда о приложении, построенном на С#, говорят – управляемый код. Какой смысл этого выражения? Это означает, что программа базируется на .NET и поддерживает управление общеязыковой средой CLR.
При этом платформа .NET позаботилась о том, чтобы была возможность работать даже с неуправляемым кодом. Помимо обычных классов, предоставляемых библиотекой .NET, есть возможность применять сборки COM.
JIT-компиляция
Исходный код C# компилируется в программы или отдельные сборки на CIL с расширениями dll, exe. В процессе запуска готового приложения выполняется JIT-компиляция – это сокращение от Just-In-Time (Просто сейчас). На выходе получается машинный код, который передаётся на исполнение.
Важным достоинством приложения является возможность компиляции только нужных в данный момент частей программы. Если приложение не обращается к какой-то части кода, его компиляция не происходит. В момент обращения выполняется моментальная компиляция из CIL в машинный код.
Все скомпилированные блоки не удаляются, они хранятся до прекращения работы с программой. Это помогает сократить затраты системных ресурсов на повторную компиляцию.
План курса
В ходе курса мы с вами будем рассматривать все основные нюансы относительно языка программирования C#. Мы научимся создавать переменные, работать с циклами и массивами, создавать классы и объекты, создавать аксессоры, научимся работать с файлами и выполнять многие другие действия. К концу курса у вас будут четкие представления относительно языка С# и его возможностей.
Важно понимать, что после курса вы сможете приступить к изучению определенной его библиотеки. Например, если интересуют сайты, то сможете начать учить ASP NET , если интересуют программы – фреймворк WPF , а если интересуют игры, то можно начать изучать игровой движок Unity .
Дополнительные курсы по C# разработке
За курс мы с вами учимся делать программы на основе базовых концепций языка C#. Если вы хотите получить больше информации относительно языка, то рекомендуем вам дополнительные курсы по этой теме.
На нашем сайте вы также можете найти полноценную программу обучения по C# разработке игр на основе движка Unity. Ознакомится с программой обучения по Unity можно по этой ссылке .
В ходе программы обучения вы научитесь делать как 2Д, так и 3Д игры на Unity. Игры будут разрабатывать под обе платформы: Андроид и iOS. За программу вы научитесь создавать анимации, дизайн, прописывать скрипты, добавлять рекламу и монетизацию и выполнять публикацию игр в магазины Google Play и App Store.
Задание к уроку
Немного теории
Расскажите зачем нужен C# и что можно создавать используя C#?
Учим Си шарп: первые уроки
C# (Си шарп) — известнейший объектно-ориентированный язык программирования. Он был разработан группой инженеров от Microsoft на рубеже веков (1998—2001 гг.). Относится к семье языков, имеющих C-подобный синтаксис, очень близок, к примеру, к языку C++ или Java. Однако в этой статье мы не будем подробно рассказывать про историю развития и особенности C #, а лучше сразу перейдем к практическим урокам. Таким образом, ниже вы найдете несколько простейших уроков (глав), представляющих собой обучение первым шагам по программированию на Си шарп с нуля.
Изучаю C# с нуля, глава № 1: первая программа
Как это принято во многих других языках программирования, в качестве первой программы происходит так называемое «знакомство», то есть пресловутый «Hello World!» Давайте в этой главе урока выведем какое-нибудь приветствие, используя метод Console.WriteLine . В нашем случае Console — это, по сути, тип, представляющий окно консоли, тогда как WriteLine — метод типа Console, осуществляющий вывод строки текста в консоли.
Результат работы очевиден:

Вы можете вставить этот код в любой онлайн-компилятор, проверив таким образом работоспособность программы. Также попробуйте написать свое приветствие или изменить название класса.
Учим C# с нуля, глава № 2: переменные
Продолжая изучение, отметим, что данная глава урока будет уже несколько сложнее. Здесь мы рассмотрим работу с типом string, представляющим текст на языке программирования C#. Как и в случае с Console, для типа string применяются методы, причем методы, работающие с текстом.
Если функции программы из главы урока № 1 ограничивались выводом одного простейшего сообщения, то в этом уроке все будет несколько иначе. На практике существует возможность создавать намного более сложные программы, а помогает в этом использование переменных. Что такое переменная? Это символ, применение которого позволяет выполнять один и тот же код с различными значениями.
Давайте посмотрим, как это работает. Изменим немного наш первоначальный код.
string onlineSchool = «Otus»;
Обратите внимание, что в самой первой строке мы объявили variable onlineSchool, назначив ей значение Otus. В результате вывод названия этой онлайн-школы произошел уже второй строке.
Важно понимать, что любая объявляемая variable может получать различные значения. Если требуется, вы можете прописать название другой школы (но мы не советуем :-). То есть одна и та же переменная способна выводить разные значения. Давайте допишем всего две строки.

Интерес вызывает тот факт, что посредством той же самой строки (6 и 8) мы получили два разных сообщения. А все потому, что значение нашей onlineSchool изменилось.
Есть и другие варианты. Внесем снова небольшие изменения в первую программу из главы урока № 2:
string onlineSchool = «Otus»;
Выполнив, мы снова получим приветственную фразу, то есть мы создали строку, используя как константу (слово «Привет»), так и variable.

Учим C#, глава № 3: интерполяция
Но давайте снова усложним нашу предыдущую главу и обучение, то есть пойдем немного дальше. К примеру, поместим нашу переменную между символами фигурных скобок < … >, что позволит коду на C# заменить наш текст переменным значением. Но чтобы мы могли это реализовать, необходимо добавить перед открывающей кавычкой специальный символ $.
Смотрим и практикуемся:
string onlineSchool = «Otus»;
Что же мы получим в итоге?

Это не что иное, как интерполяция строк, и теперь вы будете знать о такой технике не понаслышке. Разве не здорово — пройдено всего три коротких главы обучения, а вы уже «потрогали» интерполяцию?
Однако наша короткая статья — не самоучитель, а лишь краткое знакомство с несколькими обучающими главами, которые будут полезны новичкам, желающим программировать на C#.
На этом наши 3 небольших, но содержательных урока подошли к концу. Если хотите освоить язык программирования Си шарп на более профессиональном уровне с подробными главами, экспертными уроками, и обильной практикой, добро пожаловать в онлайн-школу! А вот в какую именно, вы уже хорошо знаете Помните, что изучение при помощи практикующих программистов даст вам гораздо больше, чем самый лучший самоучитель или самый продвинутый план самостоятельного образования. Планы — планами, теория — теорией, но практику ничто не заменит — с ее помощью изучишь программирование гораздо быстрее.
Статья написана по материалам официального самоучителя для изучения Си шарп с нуля от Microsoft:
- https://docs.microsoft.com/ru-ru/dotnet/csharp/tour-of-csharp/tutorials/hello-world?tutorial-step=1.
