Научим программировать на языке C# с нуля и в кратчайшие сроки. На C# можно создавать абсолютно всё, что угодно: веб-сервисы (включая, сайты), игры, мобильные приложения (причём, кроссплатформенные, то есть сразу и на Android, и на iOS), прикладные программы, нейросети, консольные приложения и многое другое.
Поскольку C# принадлежит платформе .NET, то он имеет огромное количество самых разных библиотек, которые быстро и легко подключаются. Например, нужно машинное обучение? Есть ML.NET. Хочется делать игры? Можно легко подключить DirectX. И так с чем угодно.
Любые достаточно сложные проекты создаются быстрее, чем на других языках (C++ или Java). А благодаря .NET Core они ещё будут и кроссплатформенными (то есть, написали и отладили на, например, Mac OS, а запустили на Windows и на Linux). И подчёркиваю, что синтаксис C# необычайно красивый и чистый, в отличие от того же C++. Благодаря этому, на нём приятно и интересно программировать. И для средних/крупных проектов единственный конкурент — это Java. Но я уже выше писал, что C# — это улучшенная версия Java.
Основные преимущества языка C#:
- Кроссплатформенность (.NET Core). Программа, которую Вы напишите на C#, будет без проблем работать и на Windows, и на Unix, и на Mac OS.
- Очень высокая универсальность: прикладные программы, Web-программирование, машинное обучение, нейронные сети, консольные приложения, игры и многое другое.
- Очень чистый код.
- Скорость написания выше, чем на Java.
- Огромное количество готовых бесплатных библиотек.
- Востребован у работодателей.
- Очень высокие зарплаты у C#-разработчиков.
Содержание курса:
Введение
- Как с максимальной эффективностью проходить курс?
- Как работает язык C#? Это очень важная базовая информация, которую необходимо знать.
- Какое ПО потребуется для написания программ на C#, где его скачать и как установить?
Основы языка C#
- Как пишутся программы на C#?
- Что такое переменные, какие есть типы переменных, как они используются?
- Какие есть арифметические, логические и строковые операции? Всё это снабжено множеством примеров.
- Как происходит преобразование типов?
- Что такое область видимости переменных?
- Для чего нужен и как выглядит условный оператор?
- Как работают и для чего нужны операторы цикла for и while?
- Как правильно использовать оператор switch-case?
- Что такое массивы и как они применяются на практике?
- Что такое кортежи и как их использовать?
Объектно-ориентированное программирование в C#
- Что такое ООП?
- Какие есть парадигмы ООП?
- Что такое класс и как он создаётся на языке C#?
- Что такое свойства?
- Что такое конструктор и методы класса?
- Что такое перегрузка конструкторов и методов?
- Что такое модификаторы доступа?
- Что такое статические поля/методы/классы и как их правильно использовать?
- Что такое перечисления?
- Какие есть неизменяемые типы данных?
- Как реализовать наследование в C# и для чего оно нужно?
- Что такое структуры?
- Что такое виртуальные методы?
- Как делать перегрузку операторов?
- Что такое абстрактные классы?
- Что такое интерфейсы?
- Что такое обобщённые классы и методы?
- Как использовать методы ToString и Equals?
- Что такое клонирование объектов?
- Что такое делегаты?
- Как использовать анонимные методы?
- Как применяются события?
- Что такое лямбда-выражения?
- Что такое рекурсия?
Обработка исключений
- Что такое исключения и почему они так важны?
- Как обрабатываются исключения в C#?
- Как используется блок finally?
- Как генерировать исключения?
- Как обрабатывать много исключений?
- Как создавать свои собственные исключения?
Стандартные классы в C#
- Выполнять самые различные строковые операции.
- Писать регулярные выражения.
- Выполнять разнообразные математические операции.
- Работать с датой и временем.
- Использовать коллекции – важнейшие классы, без которых не обходится ни одна мало-мальски серьёзная программа.
- Работать с файлами и каталогами (создавать их, считывать содержимое, изменять, удалять).
- Использовать множество различных классов и главное узнаете, как их осваивать самостоятельно.
Создание клиент-серверных приложений
- Как получать данные из Интернета?
- Как создать собственный сервер?
- Как создать клиент для сервера?
- Как отправить e-mail?
- Как работать с FTP?
Многопоточное программирование
- Что такое многопоточное программирование, как оно работает изнутри и для чего оно нужно.
- Как работают таймеры?
- Как создать отдельный поток в C#?
- Как управлять потоками и синхронизировать их работу?
- Что такое мьютексы?
- Что такое семафоры?
- Как реализовать параллельное программирование в C#, чтобы код выполнялся одновременно на нескольких ядрах процессора?
Бонус. Технология Windows Presentation Foundation
- Как создаётся пользовательский интерфейс в WPF?
- Как настраиваются окна?
- Какие есть элементы пользовательского интерфейса?
- Как работать с языком XAML?
- Как использовать стили?
- Какие имеются компоновщики и как их использовать?
- Как обрабатываются события элементов?
- Как обрабатываются события мыши и клавиатуры?
- Как создаётся меню?
Бонус. Создание библиотеки классов
В рамках этих 12 бонусных уроков Вы увидите пример создания библиотеки классов. В качестве примера мы создадим библиотеку, которую можно использовать в создании систем управления временем. А во второй половине этого Бонуса Вы увидите создание CLI-приложения, которое эту библиотеку будет использовать.
Бонус. Правильная работа со справочником
Не существует учебных материалов, которые бы разбирали такой большой язык как C# полностью. Учитывая все библиотеки, которые в нём есть, и 100 курсов не хватит, чтобы всё рассказать. Но это и не требуется, поскольку задача учебного материала — научить программировать на C#. А уже каждую конкретную задачу надо уметь решать самостоятельно, используя свои знания и справочник. И когда Вы пройдёте курс, выполните упражнения, а после научитесь работать со справочником, то перед Вами уже не будет невыполнимых задач. И вот как раз теме правильной работе со справочником, я и посветил пару уроков в этом Бонусе. Посмотрев эти уроки:
- Вы узнаете, как правильно работать со справочником?
- Вы увидите, как я, имея вначале задачу и используя справочник, нахожу необходимую библиотеку и её функции, а после создаю свою программу на C# с её использованием.
Какие знания требуются для прохождения курса?
Никаких специальных знаний не требуется. Только базовые навыки работы с компьютером: создание файлов/папок, создание/извлечение архивов, уметь печатать текст.