Достоинства:
- примеры реализации на метаязыке, поэтому подойдёт всем сведущим в программировании; - подход к выполнению домашних работ (тесты+код=будущая архитектура); - преподаватели с опытом разработки и с опытом обучения.
Недостатки:
- уметь хорошо думать абстракциями + уметь их реализовать в коде; - много времени уходит, чтобы разобраться с незнакомыми концепциями (которые достаточно простые, если их уже знать).
Поступил на данный курс после того как встал ряд вопросов: "А как правильно? Как правильно структурировать код, зная его синтаксис и структуры данных? Как получать готовый продукт, с переиспользованием, минимально необходимой поддержкой, быстрой расширяемостью и высоким КПД?" Как ни странно, но я смог получить ответы, хотя почему-то совсем не ожидал этого и был скептически настроен изначально!
Но по порядку.
Сперва низкий порог входа, а потом резко по нарастающей. После этого понимаешь, что есть пробелы для понимания материалов и пытаешься резко их закрывать, на что тратится дополнительное время (ну это конкретно в моём случае). Подготовленные же слушатели вполне спокойно воспринимают материал и задают корректные вопросы, что на записях в дальнейшем помогает в восприятии и переосмыслении.
Домашние работы порадовали своим подходом через CI + TDD. Пишешь тесты, далее код - и писать приятно и проверять преподавателю быстро. Да ещё и понятная система баллами - понятно за что поставлено и что не сделано. Все домашки уходят в будущий проект - best.
По материалам же образуются множество вопросов, с ответами на которые преподаватель отсылает на будущие лекции - говорит: "Хорошо, что возникают эти вопросы, план как раз выстроен так, что по очереди будем на них отвечать!" С одной стороны вроде бы логично, но с другой некоторые концепции тяжело воспринимать не зная будущих концепций - замкнутый круг какой-то... Но тут главное, что ответы на мои изначальные вопросы начали материализовываться!
Начал приобретать иной взгляд на те же вещи. Пытаюсь программировать в соответствии с некоторыми принципами, о которых знать не знал (SOLID, IoC, DI, etc). Тут хотя бы становится понятно как проект должен выглядеть в конце и как с ним работать в дальнейшем. Теперь есть куда стремиться при реализации. В итоге, уже стал думать иначе и подходить к программированию более рационально.
Учёба конечно мне даётся тяжело, но всё же хочу довести свой проект до конца в соответствии с текущими архитектурными решениями.