Архитектура обучения

Никогда не знаешь, чем слово наше отзовётся. В канале Школы очередной мой семиминутный подкаст как реплика на методсовете вдруг получил множество лайков. Там излагается сюжет с компактификацией мышления через увеличение сложности этого мышления -- парадоксальный факт. Во-первых, после прохождения первыми людьми того обрывка "Системной инженерии", который уже написан (а это как минимум текущая группа СМС24), все отметили реально получающуюся компактификацию мышления: про самые разные проекты люди с удивлением отметили, что весьма продуктивно думают примерно одинаковым образом! Во-вторых, чтобы получить эту компактификацию мышления, нужно пройти не самые простые курсы. Это примерно как с математикой: если потрудиться со сложным матаном, то потом можно единообразно решать множество инженерных задач, мышление компактифицируется, но за счёт сложности фундаментальной его части. Объяснение дал Алан Кей: если вы работаете на обычных языках программирования и следуете обычным архитектурным идеям, то вы пишете операционную систему на 50 млн. строк, и это количество можно охватить только вмногером, один человек такого никогда даже прочесть не сможет за всю жизнь, не то что написать! Один человек принципиально не в состоянии понять полностью эту программу, хотя она вроде как проста. Проста, но её до чёртиков! Вот ровно как Ричард Фейнман говорил про вселенную: она проста, только её до чёртиков! А вот если вы пишете на сложных языках программирования очень забористый код, то вы ту же функциональность укладываете в 20тыс. строк. И это человек может хоть как-то прочесть, это пухленькие несколько томиков, их за жизнь можно изучить, хотя их сложность будет ну очень велика! И написать такое за жизнь, хотя и сложно, но можно. И это означает, что в одной человеческой голове такое может в принципе уместиться, и не надо огромного коллектива, который будет занят 50 млн. строк кода -- как написанием, так и пониманием. Хочешь компактифицировать мышление, компактифицировать описание вселенной, которой до чёртиков -- не пугайся сложности. Так что у нас примерно 2000 страниц учебного материала, после которого можно обсуждать самые разные проекты, мы даём такой язык обсуждения проектов, который даёт короткие компактные описания. Но это 2000 довольно сложных страниц. У нас есть уже ещё 2000 страниц полегче, но это для "упорных, но плохо подготовленных", это подготовительные материалы для этих 2000 страниц сложных, без которых нужного уровня компактификации мышления не получится. Но и учиться придётся, читая аж 4000 страниц, это длиннее, но из них 2000 страниц чуть полегче -- и кто-то сорвётся с этих 4000 тысяч, потому что "очень уж долго", а для кого-то по-другому нельзя, потому что "без подготовительных курсов ваши 2000 страниц очень сложны, и я потерплю чуть подольше".

Я предлагаю сразу проходить основные курсы, а у кого не получается, добавлять подготовительные. Мы не школа для неудачников, которая помогает отстающим по жизни. Мы помогаем тем, у кого и так всё хорошо, но уже немного скучно. Вот им даём новые горизонты, бесконечное развитие. Готовим директоров по развитию, реформаторов, владельцев крупных бизнесов, и вот прямо сейчас. Не занимаемся подъёмом интеллекта школьников и первокурсников. Наличие подготовительных курсов -- это наш способ помочь временно отстающим, но не основной маршрут к нам приходящих. И ценз тут очень простой: знание английского. Я как раз узнал у одного нашего студента, почему он исчезал на полтора года. Он ответил, что всё было по рекомендации: за это время он освоил английский, и его профессиональная жизнь существенно изменилась просто от этого факта. А теперь он готов проходить и всё остальное, ибо у нас много ссылок на англоязычную литературу. Основной наш образовательный маршрут вполне зубодробительный, но несколько сотен человек прошли его весь в прошлых, даже более трудных версиях (мы всё-таки работаем, чтобы лучше объяснять материал!), так что это вполне выполнимая задача (особенно, если брать версии с преподавателями):
1. Онтологика и коммуникация
2. Практическое системное мышление
3. Методология
4. Системная инженерия (три главы уже есть, будут дописаны через месяц-другой)
5. Системный менеджмент (уже есть, но курс будет переписан в 2022 году)
6. Образование для образованных (уже есть, но курс будет переписан в 2022 году)
7. Множество прикладных курсов (а хоть тот же системный фитнес, мастерство обучать образованных, и т.д. -- их число будет расти, готовим конвейер по выпуску таких курсов).

Я продолжаю изучать SoTA архитектуры, там много удивительного в части изменения практик разработки и тем самым разделения ролей у разработчиков по людям. Конечно, в архитектуре софта это всё происходит быстрее, мою задачу я вижу как переформулировать эти новые идеи как можно более безмасштабно -- в той части, в которой ядро этих идей подойдёт и для классической инженерии, и для инженерии предприятия (более высокие системные уровни оставим на "когда-нибудь"). Что меня сильно удивляет, так это исчезновение где-то с 2016 года requirements engineering как отдельной дисциплины. Архитектура при этом осталась, но существенно преобразилась в содержании (и там можно найти и часть бывшей инженерии требований, особенно что касается всех этих -ilities). Крайне любопытно.

Отдельные мысли у меня про архитектуру наших курсов: если это софт, который мы прошиваем в головах студентов и нейросетках их экзокортексов, то текст курсов -- это исходный код. И все идеи современной эволюционирующей архитектуры (evolving architecture) можно использовать, но с оговоркой: чтобы код прошился, его нужно повторить несколько раз. А ещё нужно замедлить процесс прошивки (spacing и interleaving), что прямо противоположно свойствам хорошего кода! То есть "энциклопедия" после методологического прохода тут вполне подойдёт как такой "прошиваемый код", а вот методические результаты должны как-то по-другому оцениваться -- это больше про "методы прошивки". На деле же или мы получаем непонятно как используемую "энциклопедию" (гиперкниготекст, типа существующего в сегодняшнем курсе системного фитнеса), или понятно как используемые материалы курса -- но классические архитектурные критерии тут неприменимы, а применимо что-то из "инженерии данных" в части обучения нейронных сетей (курирование обучающих наборов данных, оптимизация объёма данных для заданной надёжности обучения нейросети, и т.д.). В эту точку нужно ещё думать. В современной архитектуре это называется "тренд данные+архититектура" (то есть к архитектуре добавили прошлогодний тренд с data mesh, но в собственно архитектуру данные ещё не попали, https://www.infoq.com/articles/architecture-trends-2022/).

Мы в Школе тем временем ползём к continuous delivery на двух уровнях:
-- сам Aisystant (и сегодня "Системное саморазвитие", наш подготовительный первый курс, начал показываться в новом интерфейсе на новом фреймворке фронт-энда, теперь релизы самого софта Aisystant как LXP/learning experience platform будут выходить чаще).
-- сами курсы, они смогут обновляться чаще и проще (та же "Системная инженерия" выходит практически поглавно, потом то же самое будем делать с "Системным фитнесом").

AI даёт до 25% меньшую площадь для схем на кристалле за счёт использования нерегулярных структур (помним при этом, что природные архитектуры содержат нерегулярности -- и структуры большого масштаба, и структуры малого масштаба, это отмечал и John Doyle, и ещё Alexander, которого уже все подзабыли, но он когда-то ввёл в оборот "языки паттернов" и один из паттернов как раз был вот этот паттерн дикой разности размеров устойчивых объектов во Вселенной, от субатомных частиц до скоплений галактик). Вот пример использования AI в разработке микросхем, с его помощью был разработан GPU Hopper, в нём AI спроектировал 13000 логических подсхем (типа 64-битного сумматора, хотя это и потребовало использовать 32000 часов времени GPU, то есть GPU проектировал GPU следующего поколения!), https://developer.nvidia.com/blog/designing-arithmetic-circuits-with-deep-reinforcement-learning/