Хауди Хо критикует курс ‘Углубленный C#’ от Unity3dSchool

В видеообзоре Хауди Хо подвергается критике курс «Углубленный C#» от Unity3dSchool. Анализ выявил ряд серьёзных недостатков в подаче материала и качестве кода.

Анализ кода и стиля

Отсутствует рефакторинг кода – изменение кода без изменения его функциональности. Объяснение коллекций поверхностное, ограничивается перечислением типов (списки, очереди, стеки, словари) без детального разбора методов и особенностей. Хотя используется is для доступа к полям в инспекторе (Code Style), это не последовательно, указывая на недостаток автоматизма и навыков. Имена членов классов улучшены поверхностно, практические задания и домашние работы отсутствуют.

Подача материала и понимание основ программирования

Качество кода сравнимо с работами начинающих программистов. На начальных этапах код относительно корректен, но ухудшается с усложнением задач. Нарушена инкапсуляция: использование protected полей приравнивается к использованию public, что противоречит принципам объектно-ориентированного программирования (ООП). Отсутствует понимание инкапсуляции, инвариантов и различий между композицией и наследованием. Несоответствия в стиле написания кода обусловлены отсутствием «чуйки» на код. Постоянные ошибки (например, несогласованное использование регистра в именах public полей) указывают на недостаток профессионализма.

Повторяющиеся ошибки и отсутствие мастерства

Выявлены повторяющиеся ошибки, характерные для начинающих программистов с опытом 6-8 месяцев: нелогичное использование методов set и get, дублирование кода, непонимание работы с компонентами Unity. Непоследовательность в именовании компонентов и методов, а также избыточное использование круглых скобок в вызовах методов также критикованы. Уровень кода сопоставим с работами студентов на стажировке, что не соответствует уровню профессионала.

Нарушение SOLID-принципов

Демонстрируется непонимание SOLID-принципов. Принцип единственной ответственности нарушен многократно. Объяснение принципов поверхностное, ограничивается пересказом справочной информации без практических примеров. Нарушен принцип открытости/закрытости. Из-за неправильного использования виртуальных методов и переопределения методов без соблюдения инвариантов нарушен принцип подстановки Лисков. Не демонстрируется понимание правильного использования protected модификаторов для соблюдения принципов инкапсуляции и наследования.

Отсутствие практических примеров и понимания паттернов проектирования

Примеры паттернов проектирования представляют собой пересказ документации без практической реализации в контексте Unity. Примеры абстрактной фабрики и стратегии поверхностны и не отражают реального применения. Практическая часть курса отсутствует или крайне слаба.

Курс «Углубленный C#» от Unity3dSchool не соответствует своему названию. C# рассматривается на примитивном уровне, SOLID-принципы объясняются поверхностно, практические примеры отсутствуют или выполнены некачественно. Автор курса не демонстрирует достаточного понимания принципов ООП и паттернов проектирования. Несмотря на некоторое улучшение по сравнению с предыдущими версиями, курс не подходит для студентов продвинутого уровня и не соответствует заявленному уровню сложности.

Что будем искать? Например,программа