Курс C# Junior Developer организован как форма активного обучения, целью которого является понимание принципов Объектно Ориентированного программирования на платформе .NET, изучение основных пакетов и умение писать на языке C# сложные веб-приложения.
Акцент курса делается на понимание и практику программирования на C# в объектно-ориентированном стиле.
Практика:
- Практической частью домашней работы будет последовательная разработка приложения
- Курс будет построен на активном взаимодействии с обучаемыми в форме разбора домашнего задания: выбора оптимальной доменной модели; реализации, паттернов проектирования, дизайна разрабатываемого приложения.
Занятие 1. Повторение основ Microsoft .NET и C#
- Введение в платформу .NET, инструменты разработки
- Управление памятью и какие есть типы данных
- Подробнее про типы значений
- Подробнее про ссылочные типы данных
- Массив
- Кастинг типов, подробнее об упаковке и распаковке
- Детальнее про garbage collector
- Структура кода, область видимости
- Основные операторы и на чем строится вся логика ПО
- Закрепление знаний созданием консольного приложения и работа с GitHub
- Подробнее про циклы
- Простая сортировка и поиск
- Строки, нюансы работы с ними
- Энумераторы, операторы работы с ними
- Исключения
- Базис профилирования приложения
- Структура кода, сборки
- Основа ООП, методы, классы, структуры
- Наследование
- Модификаторы доступа
- Абстракция, виртуальные методы
- Свойства
- Конструкторы, вызов конструктора
- Запаковка классов, методов и почему это важно, основы SOLID
- Финализаторы, нюансы работы с ними
- Интерфейсы
- Часто используемые интерфейсы
- Абстрактный класс или интерфейс, что и когда выбрать, закрепление SOLID
- Дженерик типы, ограничения
- Рефлексия, наука о типах данных
- Атрибуты
- Статика, статичные методы, что делать если нужно дополнить запакованный класс
- Создание структуры данных
- Подробнее о методах расширениях
- Подробнее о циклах
- Подробнее о структурах данных (FIFO/LIFO, словарь, список)
- Отложенный вызов
- Выборка объектов из структур данных
- Введение в SQL
- Основные операторы SQL, основы CRUD
- Таблицы, ключи и основные объекты в базах данных
- Основные принципы работы с базой данных из C#
- Работа с nuget репозиторием
- Основа работы с ORM
- Планы запросов
- Делегаты и события
- Процесс и поток
- Работа с потоками
- Основные методы синхронизации потоков
- Что такое взаимоблокировка и как с ней бороться
- Асинхронность
- Типы паттернов
- Абстрактная фабрика
- Стратегия
- Цепочка обязанностей
- Основы DI/IOC
- Двухзвенная архитектура
- Трехзвенная архитектура
- Микросервисная архитектура
- Шина сообщений, краткий обзор
- Форматы JSON, XML, SOAP
- Кэш
- Что такое RESTful Services
- Популярные пакеты в nuget репозиториях
- Локальный репозиторий nuget
- Методы REST
- Идемпотентность
- Swagger
- Аутентификация и авторизация, основы OAuth
- Связываем всё вместе, готовим свой сервис и клиент
- Развертываем локально, развертываем на веб сервере
- Быстрый обзор WinForms
- Основы WPF
- Привязка данных
- Разбор MVVM
- Работа с контейнером и MVVM
- Работа с потоками и повышение отзывчивости приложения
- Основы Agile
- Что такое sprint
- Планирование и цели
- Детально о контроле версии, закрепление
http://levelp.ru/courses/programmirovanie/c-sharp-junior-developer/