курс про устройство C# и CLR для разработчиков с рабочим опытом от года. Разбираем не синтаксис ради синтаксиса, а почему код ведёт себя именно так: где живут значения, что происходит при боксинге, чем LINQ платит за удобство.
2 модуля, 39 темJunior+Индивидуально с ментором
Программа
Модуль 1. Язык и модель памяти
Типы данных и nullable reference types
Практика // Типы данных и nullable reference types
Квиз // Типы данных и nullable reference types
Классы, структуры и records
Практика // Классы, структуры и records
Квиз // Классы, структуры и records
Extension-методы и эмуляция union type
Практика // Extension-методы и эмуляция union type
Квиз // Extension-методы и эмуляция union type
Стек, куча и value/reference-типы
Практика // Стек, куча и value/reference-типы
Квиз // Стек, куча и value/reference-типы
Сборщик мусора
Практика // Сборщик мусора
Квиз // Сборщик мусора
Span, Memory и пулинг
Практика // Span, Memory и пулинг
Квиз // Span, Memory и пулинг
Обработка исключений
Практика // Обработка исключений
Квиз // Обработка исключений
Модуль 2. Работа с данными и абстракциями
Коллекции
Практика // Коллекции
Квиз // Коллекции
LINQ
Практика // LINQ
Квиз // LINQ
Pattern matching и деконструкция
Практика // Pattern matching и деконструкция
Квиз // Pattern matching и деконструкция
Generic-типы
Практика // Generic-типы
Квиз // Generic-типы
Делегаты и события
Практика // Делегаты и события
Квиз // Делегаты и события
Stream и буферизация I/O
Практика // Stream и буферизация I/O
Квиз // Stream и буферизация I/O
Что разбираем
Типы данных и nullable reference types
Основные коллекции
LINQ — запросы, отложенное выполнение, IEnumerable против IQueryable и подводные камни
Языковые конструкции — class, interface, struct, record, record struct, extension-методы
Pattern matching и деконструкция
Generic-типы
Делегаты и события (Func, Action, event)
Память и CLR — стек и куча, value- и reference-типы, readonly struct, ref struct, in-параметры, boxing и unboxing, сборщик мусора и поколения (Gen0, Gen1, Gen2, LOH, GC pressure), zero allocation через Span и Memory, пулинг через ArrayPool и ObjectPool, интернирование строк
JIT против AOT и Reflection
Сериализация — System.Text.Json и protobuf
Исключения
Цена логирования в горячем пути
Инструменты замеров и профилирования — BenchmarkDotNet, dotMemory, dotnet-gcdump, dotnet-counters, dotTrace
Как проходит обучение
Занятия один на один с ментором под ваш темп и пробелы
Материалы курса открываются в личном кабинете, практику разбираете на встречах
Программа собирается под цель: подготовка к собеседованию или рабочая задача