C# Concurrency. Асинхронность, параллелизм и многопоточность

- Уроков: 42
- Сложность: normal
- Аудитория: Этот курс, в первую очередь, предназначен для опытных C# разработчиков (middle, middle+, senior уровня и выше), которые хотят глубже понять как устроены многопоточность, асинхронность и параллелизм в .NET. Он будет особенно полезен, если вы уже сталкивались с проблемами вроде deadlock, гонок данных или неэффективного использования вычислительных ресурсов, и хотите научиться писать более производительный, чистый и предсказуемый код. Если же вы начинающий разработчик и очень хотите расти, то мы тоже будем вам рады.
На сегодняшний день асинхронность и параллелизм - это одни из самых сложных тем для освоения в рамках разработки программного обеспечения. Вместе с тем, это и наиболее значимые области, в которых должен разбираться современный backend-разработчик на C#. Редко какое собеседование проходит без общения на эту тему. Мы постарались всесторонне охватить (насколько это для нас показалось возможным и необходимым) темы многопоточности, асинхронности, конкурентности и параллелизма на C#.
В рамках курса мы последовательно раскрываем темы, связанные с этими направлениями так, чтобы у учащихся сформировалось наиболее полное понимание материалов курса, причин почему возникли те или иные технологии, а также понимание того, как с ними работать. Фокус курса именно на глубоком понимании сути: мы разбираем не только "как использовать", но и "как это работает".
В курсе последовательно даны разделы с теорией, за которыми следуют практические блоки, в которых показаны примеры применения полученных ранее знаний. В уроках вам будут встречаться задания на закрепление пройденного материала, а в конце каждого модуля - большой урок с задачами.
Для успешного освоения материала требуется: уверенное знание языка C# и понимание базовых принципов объектно-ориентированного программирования (ООП). Хорошо, если у вас есть опыт работы с задачами (Task), и вы знакомы с асинхронным программированием на базовом уровне (например, вы уже использовали async/await в реальных задачах).