Раздел разработка.

Школа работает с 2013 года, но именно ради этого раздела была переделана школа в ноябре 2020 года (сама работа над планом велась с мая 2017 по 2020 - это было не просто обдумывание плана, а проверка методов обучения разработки в группе с участниками.

Цели раздела. Создать целостного разработчика, способного решать самые сложные масштабируемые задачи.

Если назвать этот раздел очень углубленное ООП, то это будет не очень верно и это будет мало....

Этот раздел намного большее, чем просто углубленное объектно-ориентированное программирование.

Задача этого раздела рассмотрение основных конструкций программирования и ООП в целом. Например, классы могут быть представлены, как интерфейсы и абстрактные классы или мета классы.

Для многих людей это просто код или просто слова. Пока вижу код, то вроде бы понимаю.

Так вот цель этого раздела сделать конструкции языка для вас живыми, то есть сделать не просто кодом, а реальными категориями мышления.

Есть реальные примеры успеха в этом направлении. Например Сергей Осадчий (парень с Украины), несколько лет работал с разными языками, хорошо писал классы, хорошо понимал код на разных языках, но когда занялся масштабируемым проектом, понял, что плавает, потому что это особые знания.

Я предложил ему изучить паттерны программирования, но он начал и забросил. После этого я понял в чём дело он не знает зачем ему это, если например код можно сделать проще, взять просто класс и все.

Тогда мы рассмотрели отличие абстрактного класса от интерфейса, не просто рассмотрели, а очень хорошо поработали над этим вопросом. Если, в интернет этому вопросу уделено максимум страница, пол страницы, то у нас ушло полтора месяца.

За эти полтора месяца я давал вопросы, а Сергей, написал тысячи строк кода, при этом понятия интерфейсов и абстрактных классов начали обрастать (как кости мышцами), реальными явными смыслами для Сергея.

Если ранее при планировании кода предприятия - этот код был костомным, без расширяемости и будущего, все приводило в тупик, для новых блоков нужно было создавать все новые и новые классы и появлялась только путаница, то с понимаем этого вопроса, код начал становится все элегантнее, главное он начал становится расширяемым и масштабируемым.

Сергей понял, что значит учится разрабатывать по настоящему, мало знать как записывается тот же интерфейс, но знать его все качества, область применения, с чем и как он может работать, какие задачи может выполнять и где будет наиболее эффективен, как этот код влияет на проектирование проекта. Иными словами, такие задачи, как оцифровка например улицы города, стали обыденной реальностью.

В процессе, я показывал и другие вещи, например миксины, декораторы, приводя в пример целые проекты, например говорил, Pandas написан на миксинах так далее.

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

Кто не знает паттерны это лучшие шаблоны организации кода выверенные годами, например, Джанго этот тоже паттерн ((MVC, «Модель-Представление-Контроллер», «Модель-Вид-Контроллер») — схема разделения данных приложения).

Иными словами программирование стало частью Сергея, частью его размышления, эти категории программирования и организации кода, стали его личными, он начал их понимать и уже использовать для размышления, при этом чётко представляя и код и свойства и цели и задачи.

Вот об этом этот раздел.


Я понял о чём раздел. Перейти к урокам.