← Все навыки

C#: Ядро языка

курс про устройство 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

Как проходит обучение

  • Занятия один на один с ментором под ваш темп и пробелы
  • Материалы курса открываются в личном кабинете, практику разбираете на встречах
  • Программа собирается под цель: подготовка к собеседованию или рабочая задача