Мышление “из первых принципов”
Начнём с первых принципов, классическое понимание которых пришло из математики, физики, компьютерной/вычислительной науки. Математика изучает поведение абстрактных, “идеальных”, “умозрительных” объектов. Физика изучает поведение реальных “физических” объектов, выражая его в терминах математических объектов, похожих в их хорошо изученном и воспроизводимом “умозрительно” поведении на поведение изучаемых физиками реальных объектов. Компьютерная наука изучает доказательства того, что поведение реальных объектов-компьютеров соответствует поведению идеальных объектов “абстракции вычисления”, а также ресурсную доступность сложных вычислений как действий с идеальными объектами, реализуемых физическими объектами-компьютерами (алгоритмика, и вспомните, например, о квантовых компьютерах). Это всё подробно со ссылками на литературу объясняется в моём руководстве по интеллект-стеку (Aisystant).
Математика, физика, компьютерная наука много раз перестраивали содержание своих разделов (вроде аналитической геометрии, оптики, комбинаторных алгоритмов) на базе так называемых “первых принципов”. Эти первые принципы обычно определяются как минимальный, чётко сформулированный набор исходных допущений рассуждения и набор правил вывода из этих допущений, которые сами не выводятся внутри данной теории, считаются более «фундаментальными», чем все остальные утверждения. Они тем самым позволяют все остальные утверждения, модели или алгоритмы строить строго как следствия этих исходных допущений и ограничений. Если вы хотите выкинуть какую-то старую научную теорию (скажем, эвклидову геометрию, если вы Риман, или ньютоновскую физику, если вы Эйнштейн, или инженерную теорию ракетостроения или автомобилестроения, если вы команда инженеров с таким менеджером как Элон Маск), то у вас для новой теории будет не совсем пустое место – у вас будут те самые первые принципы, на которые вы сможете опереться.
Такое понимание первых принципов одинаково работает для математики, физики и компьютерной науки, если читать его с небольшими «диалектными» сдвигами для каждой дисциплины:
- В математике первые принципы — это аксиомы и правила вывода (например, в современных работах по теории типов и интерактивному доказательству — базовые индуктивные типы, правила формирования и элиминации, аксиомы равенства в унивалентных основаниях, на которых затем строится вся остальная теория в Lean, Coq, Agda и т.п.).
- В физике под первыми принципами понимают фундаментальные законы и симметрии (лагранжиан Стандартной модели, уравнения квантовой механики, общая ковариантность в ОТО и пр.), плюс базовые принципы вроде причинности и сохранения вероятности. «First-principles / ab initio» методы в современной теории конденсированного состояния или ядерной физике — это как раз попытка выводить свойства реальных систем напрямую из этих фундаментальных уравнений, а не подгонкой эмпирических моделей.
- В компьютерной науке первыми принципами выступают формальные модели вычислений (λ-исчисление, автоматы, машинная модель памяти и инструкций процессора), базовые логические системы и спецификации (аксиомы Hoare-логики, инварианты, пред-/постусловия),
минимальные примитивы программной абстракции (типовые системы, примитивы синхронизации, комбинаторы в функциональных языках),
из которых уже конструируются языки, алгоритмы, протоколы и системы, как это делается в современных работах по верификации, proof assistants и формальному синтезу программ.
Разные традиции математики, физики и относительно новой компьютерной науки пока не договорились о наборе первых принципов, и никогда окончательно не договорятся, ибо этот набор “дрейфует”, меняется со временем, знание человечества (а сейчас уже – агентечества, ибо не всё знание производится людьми) довольно быстро эволюционирует.
Многозначность понимания первых принципов. Нулевые принципы.
Ситуацию усложняет то, что само понятие “первые принципы” оказывается многозначным:
- у учёных это про их математику, физику, компьютерную науку,
- у инженеров (у того же Элона Маска) это часто – “разложить до базовых допущений”: общие принципы мышления, внепредметные, общие для фундаментальных математики, физики, информатики и прикладных дисциплин.
И одно, и другое понимание сводится к отсылке к верхнему слою ограничений, которые отсекают пространство плохих моделей и оставляют пространство моделей с шансом на полезность для воспроизводимого мышления.
Если посмотреть, что во всех этих наборах “первых принципов” общего, несмотря на всю разницу их предметов, то мы получим довольно компактный набор, который можно назвать “нулевыми принципами”.
Большинство людей будут нулевые принципы объединять с первыми, но мы всё-таки их выделим как отдельную сущность. Нулевые принципы — это самые общие внедисциплинарные (трансдисциплинарные, “по ту сторону от дисциплин”) явные ограничения, которые отсекают огромную массу неправильных моделей и действий и делают рассуждения проверяемыми и воспроизводимыми.
Нулевые принципы, полученные из набора классических дисциплинарных первых принципов с помощью AI-агента
Нулевые принципы оказываются внедисциплинарными критериями приемлемости объяснений/моделей/теорий, которые дисциплинируют построение и смену первых принципов отдельных фундаментальных дисциплин.
В явном виде они нигде не сформулированы, поэтому нам надо их вытащить из первых принципов, не сочинять, а механически собрать то общее внепредметное, что есть в математическом, физическом, компьютерном/вычислительном мышлении, опирающемся на первые принципы этих наук, простой воспроизводимой процедурой:
- Берём три варианта по 20 штук первых принципов математики, физики, computer science (спрашиваем у AI-агента, берём этого агента поумнее-подороже, даём ему подумать подольше, я брал GPT-5.2 Pro на extended thinking), получаем три списка: для каждой из трёх дисциплин по 60 принципов в списке.
- Три раза просим убрать менее общие, чем первые, принципы. Просим убрать дубли. Получаем три раза по 15-25 принципов по трём дисциплинам.
- Просим почистить формулировки и обобщить три списка. Получаем три списка для каждой из дисциплин.
- Просим указать на общее для этих дисциплин, получаем «нулевые принципы».
Обратите внимание, что всё делаем по нескольку раз, проверяем по нескольку раз. В итоге этой процедуры остаётся стабильное ядро, а “плавающая периферия” отбрасывается. Регулярно делайте этот проход на досуге сами, чтобы отлавливать дрейф в этих принципах, они ведь тоже имеют срок годности. Впрочем, у меня есть намерение добавить итоговые нулевые принципы в FPF в явном виде, и обновлять регулярно прямо там.
Вот свежий результат на начало 2026 года (и обратите внимание: системное мышление там аж в трёх отдельных пунктах, в которых в режиме “чтения поста по диагонали” не разобраться):
- теории строятся не по наитию, а по жёстким правилам (аксиомы, постулаты, законы, строгий вывод, доказательства, допустимость)
- мышление для его проверяемости и воспроизводимости должно быть структурно (операции, связи, ограничения) и через симметрии (что можно преобразовать, не меняя сути), иметь инварианты (что сохраняется в преобразованиях) вместо «просто объектов, на что взгляд упал». Важна «почтитожесамность» (эквивалентность) объектов по подходящим отношениям.
- Многомасштабность (тут три разных принципа, но собранных одной темой): в рамках нескольких масштабов (1) надо интегрировать одной теорией мелкое, усреднить, взять предел, выйти на универсальное описание для всех масштабов. Системное (и его обобщение – холоническое) мышление с его рекурсивностью на каждом уровне иерархии “часть-целое” тут, а всяческие “ренормализационные группы” как раз мост с предыдущим принципом (одна теория на всех масштабах, “черепахи до самого низа”). Это унифицированное мышление про сами уровни. (2) надо использовать разные теории на разных масштабах, одни из них – предельные случаи других, то есть обсуждать мета-системные (мета-холонические) переходы от одних теорий к другим: отслеживать переход мышления с уровня на уровень, отсутствие унификации. В рамках одного масштаба объектов (3) надо искать композиционные решения (склейка объектов) в рамках одной теории.
- Формулировать задачи надо как вариационные и оптимизационные (поиск экстремума функционала при заданных условиях оптимальности).
- Сложные системы надо описывать через вероятности (распределение возможных состояний, “типичность”) и информацию (через инварианты и ограничения, задающие различения, в том числе различения при измерении – операционализация и связь “математики” и “физики” в этом месте).
- Учитывать вычислительные и ресурсные ограничения (различать “математический объект существует”, “есть алгоритм, который его может найти”, “есть алгоритм, который его выполнит при ограничениях на память, время, энергию, вид физического вычислителя”).
Помним, что наука развивается, так что сам набор этих принципов тоже меняется. Так, у физиков “первопринципность” симметрий (коммутативность операций, а не “пространственная симметрия” как в калейдоскопе) была признана только во второй половине 20 века, хотя сама идея симметрий была известна много раньше, но вот принципиальность этой идеи не понималась. Причинность тоже “одомашнивается” и постепенно поднимается на уровень важного нулевого принципа.
Если вы живёте в стабильной среде и применяете готовые рецепты, можно обойтись без явного слоя нулевых принципов. Но как только среда дрейфует (а сейчас дрейфует ежедневно — частично из-за AI), старые теории в новых ситуациях не помогают, приходится разбираться с новыми теориями или даже создавать новые теории “с нуля” (и даже если создавать будут AI-агенты, придётся с ними об этом договариваться, с ними это обсуждать). Если встретились новые продукты, новые предметные области, любое “новенькое с нуля” как решение новых проблем, а не бесконечное улучшение уже известных решений старых проблем – вам лучше бы иметь надёжные ограничители от типовых ошибок, надёжные опоры для мышления, то есть вам лучше бы владеть мышлением из нулевых и первых принципов, и тогда смена вторых и третьих принципов (прикладных предметных областей, проектных ситуаций в рамках одной предметной области) вам будет не страшна.
Слои нулевых, первых, вторых и третьих принципов
Если есть нулевые принципы, как “то общее, что появляется в мышлении по первым принципам”, то есть и огромное разнообразие специализаций и композиций вторых принципов, получаемых из первых принципов. И даже третьих принципов, получаемых специализацией и композицией вторых принципов. Разнообразие мира огромно, и чем дальше мы от универсальных нулевых принципов к прикладным, тем больше этих прикладных принципов. Можно хоть как-то освоить работу с первыми, со вторыми принципами – уже много трудней ибо это уже три довольно обширных комплекта, но дальше можно говорить только об освоении небольшой части того, что можно накомбинировать из нулевых и первых принципов.
Можно построить частично упорядоченное множество (poset) специализаций (а не иерархию, ибо будем использовать множественное наследование) классов и специализаций принципов – примерно так же, как строят решётки/lattice онтологий (и не только строят, но и переводят их в эмбеддинги, сохраняя эту решётку: “Lattice-preserving ontology embeddings with saturation”, [2305.07163] Lattice-preserving $\mathcal{ALC}$ ontology embeddings with saturation). Частичное упорядочивание будем делать не по отношению “часть-целое”, так что это не “модули” из системного подхода и не “системные уровни”. Но можно условно выделить слои принципов, вводя какой-то частичный порядок на их направленном графе:
- Нулевые принципы: самые общие для мышления (структурность/симметрии, локальное–глобальное, вариационность, вероятность-информация, алгоритмы-ресурсы, иерархии описаний и т.п., именно они только что были перечислены).
- Первые принципы как “диалекты” уже каких-то фундаментальных дисциплин: логика+аксиомы для математики; локальность, унитарность, Born, EFT и т.д. для физики; модели вычисления, семантики, классы сложности и т.п. для CS. Когда мы говорим о самых общих принципах, на которых основан интеллект образованного человека, то это примерно этот уровень (и, конечно, мы тут выходим довольно далеко за пределы собственно физики, математики, компьютерной науки). В наших руководствах это мета-мета-модель, и First principles framework (FPF) тоже где-то на этом уровне.
- Вторые принципы как принципы каких-то предметных областей, это уже построения на базе первых принципов: SCM/causal inference, конкретные вариационные принципы, конкретные принципы инвариантности, конкретные правила для протоколов, языков, моделей и т.д. В каждой предметной области будут свои прикладные теории, построенные на своих постулатах. Условно “вторые принципы” – это то, что даётся в учебниках по каким-то дисциплинам, в наших руководствах это метаУ-модель. Можно, конечно, пообсуждать, являются ли выводимые из первых принципов вторые принципы именно принципами, или это уже “выводимые теории”, но оставим это за пределами текущего поста.
- Третьи принципы можно условно считать принципами ситуационными, принятыми в каких-то конкретных проектах, например, в конкретных организациях, где собрались люди со знанием разных вторых принципов и они договорились о специализации их для текущей ситуации проекта. В наших руководствах это метаС-модель.
Принципы работают как фильтр и язык проверок, поверх каждого слоя принципов можно выбирать и формулировать всё более и более прикладные принципы всё более и более частных дисциплин.
Сильному принципиальному мышлению никто не учит
Проблема в том, что нулевым и первым принципам не учат, начинают сразу со вторых, а иногда и с третьих. Для меня это означает, что мышлению в целом (нулевые принципы), точному мышлению (математическому, физическому, компьютерному) никто не учит. Студенты МФТИ считали, что у них одно из лучших в мире образований в области мышления. Но и они признавали после знакомства с руководством по интеллект-стеку, что вычитывали оттуда понимание о предметах математики, физики, компьютерной науки и соответствующем мышлении более фундаментальное, чем им давали в вузе. Задайте себе вопрос: видели ли вы где-то в своём образовательном маршруте или образовательном маршруте всех ваших знакомых списочек нулевых принципов из этого поста? Понимание многослойности принципов? Нет, конечно.
Почему так получается? И откуда вообще берутся люди, которые демонстрируют мышление “из первых принципов” или даже “из нулевых принципов”? Само это “принципиальное мышление” довольно неуловимо, его описание раскидано маленькими кусочками по труднодоступным источникам (например, в трудах эпистемологов, которые его изучают как предмет). Принципиальное мышление передавалось как “устная традиция”, “прямая передача” в ходе обсуждения “разделов” математики, физики, computer science продвинутыми профессорами, которые как раз и занимались отращиванием там новых “разделов”, “двигали науку” с продвинутыми своими студентами. Студенты ни в каком учебнике про эти принципы не читали, в учебниках они читали готовые теории, а не “как делать теории, когда их ещё нет”. Но профессура могла передавать свои приёмы мышления студентам в ходе общения. Ибо науку не двинешь, если не применяешь эти нулевые и первые принципы. Никаких вторых принципов без нулевых и первых!
Принципы дают сильные ограничения на возможные сильные решения: если нарушать эти принципы, то решения получаются плохими. Принципы ограничивают области, где можно найти полезные решения от областей, где поиск заведомо приведёт к ошибкам. Есть 100500 (на самом деле – бесконечное число) способов сделать что-то неправильно на каждый один способ сделать что-то правильно. Вот принципы как раз и удерживают в “правильном” пространстве решений для построения новых теорий: нулевые принципы удерживают первые принципы, первые принципы удерживают вторые принципы, а вторые принципы прикладных теорий удерживают корпоративные регламенты, задающие третьи принципы – это защищает от того, чтобы в научном и инженерном знании не появлялась всякая чушь в виде “гипотез”: эта чушь будет сразу же отсечена принципами. Принципы – это меч, отсекающий иллюзии. Если ты двигаешь науку или инженерию, то принципы тебе помогают, ты их знаешь, ими владеешь.
Но если вам не надо отсекать иллюзии в ходе вашей работы, а надо просто эффективно научить “разделам”? Тогда первые принципы не нужны, вторые принципы не нужны. Можно сразу учить вторым принципам без обучения тому, откуда и каким способом они появились на свет (“придумал” – но что это было долгое размышление на базе первых принципов, это умалчивается). Если надо научить чему-то прикладному, теории на базе вторых принципов? Вторые принципы тоже уже не нужны: они уже отработали, теория “из вторых принципов” есть, вот же учебник, вам не надо “двигать теорию”, вам надо “знать теорию”! Поэтому профессиональные преподаватели (в отличие от профессиональных учёных, которые иногда преподают) не передают студентам это знание “как сделать теорию”, они передают знание “как выучить и применить уже сделанную кем-то теорию”. Учат “разделам” математики, физики и так далее, при этом надеясь, что это знание как-то обобщится в “общее мышление” и даже “общее мышление учёного”. Нет, не обобщится.
Так и получилось, что принципиальное мышление доступно очень немногим, которым свезло учиться у тех, кто теории делает и имеет тем самым постоянный опыт “мышления из первых принципов”, опыт похода в неизведанное, а не у тех, кто теории только применяет и теориям только учит – имеет не двадцатилетний опыт работы с новым, а однолетний опыт, повторённый двадцать раз.
Моя идея: в мире сингулярности вы каждый день будете встречаться с принципиально новым окружением, новым миром. И вам нужны будут новые теории, чтобы разбираться с этим миром. Поэтому вам нужно мышление из первых принципов “из коробки”. Так что начинаем учить детей сразу нулевым принципам, затем первым, а вторым и третьим по прикладным и ситуационным “разделам” научного и инженерного знания учить надо только как примерам. Если надо, они эти вторые и третьи принципы сами сделают по потребности. Или спросят у AI-агентов.
Основная идея тут – обучать детсадовцев, школьников, студентов по возможности нулевым принципам, ибо из небольшого их числа можно вырастить довольно разнообразные первые принципы. То есть на основе понимания нулевых принципов (“мышления из первых принципов”) можно отрастить себе разные варианты мышления по первым принципам – то есть получить физическое, математическое, компьютерное мышления, исходя из разных вариантов физики (ньютоновская, или квантовая с теорией относительности, или физика “квантовой гравитации”, которую только-только пытаются получить), математики (с разными “основаниями”, как прошлых веков, так и современных вроде унивалентных оснований), computer science (тут тоже есть разные варианты, надо учитывать не только классические вычисления компьютеров на логических ключах, но и вычисления квантовых компьютеров, компьютеров на ДНК, оптических компьютеров и т.д.). Сейчас же учат не соответствующим мышлениям, а “разделам” – теориям, которые вырастают из первых принципов, но не самим этим принципам. “Разделы” – это, например, в физике механика, оптика, электромагнитные явления. Они все вырастают из первых принципов, но сами эти принципы в них в явном виде не упоминаются.
Учим нулевым принципам дошкольников
Если принципы в их сложном графе образуют слои, то обучение можно строить как постепенное наращивание специализаций: сначала учим универсальные ограничения (нулевые), которые будут действовать всегда и меняться медленно, затем ‘диалекты’ фундаментальных дисциплин (первые), и только потом — учебниковые теории (вторые) и проектные регламенты (третьи принципы). Но дальше, конечно, бесконечное развитие: можно всю жизнь улучшать своё мышление, всю жизнь улучшать своё умение пользоваться принципами для улучшения результатов мышления.
Вышел отчёт о тестовом месяце проекта по обучению детей нулевым принципам (FPF kids): Итоги тестового месяца по руководству «Нулевые, первые принципы для детей». Напомню, что мои замечания были в lytdybr: ailev — ЖЖ и lytdybr: ailev — ЖЖ, руководство там в Aisystant. В любом случае, интересная инициатива. На последней конференции МИМ мы обсуждали, что взрослые о нулевых принципах обычно не имеют понятия, а обучать им надо ещё детсадовцев. Вот, уже обучают, как раз детсадовцев.
Задумка там в том, чтобы учили детей родители, которые сами с этими нулевыми принципами разобрались.
Как это может выглядеть для дошкольников (очень грубо, как наброски учебно-игровых ситуаций под каждый принцип, чисто для примера, это совсем не тестировалось):
- Инварианты и “почтитожесамность”: переливаем воду между стаканами разного диаметра и чашками разной формы, обсуждаем “стало ли больше/меньше”, что там “то же самое”. Дальше можно уже явно вводить слово “инвариант” и тренировать искать “сохранение по сути” и вообще привычку искать инвариант в самых разных ситуациях. Главное тут – явно говорить, что речь идёт об инварианте, который “не меняется, когда всё меняется”.
- Симметрии операций (коммутативность/некоммутативность): делаем одну и ту же “вещь” двумя порядками действий и сравниваем результат. Например, кладём в коробку 2 кубика, потом ещё 3 — и считаем; потом делаем наоборот (3, потом 2) — и снова считаем. Если результат тот же, можно явно проговорить: “порядок этих операций не важен — это симметрия, коммутативность”. А затем дать контрпример на некоммутативность: “сначала носки, потом тапочки” vs “сначала тапочки, потом носки” — результат уже другой. Здесь тоже важно прямо вводить слова “операция”, “порядок”, “коммутируют/не коммутируют” и тренировать привычку проверять, какие перестановки допустимы. Обратите внимание, что термин “коммутируют” – это просто цепочка фонем, нет ничего страшного ни в этой цепочке фонем, ни в стоящем за ней принципе, их “заумность” только в глазах взрослых. Взрослые же поглупели: в школе они все знали, что такое бином Ньютона, а сейчас уже не знают. Поэтому взрослые лучше пусть промолчат на тему вводимой терминологии.
- Композиция (склейка) и системность: собираем модель реальных сооружений из какого-нибудь конструктора (а хоть из набора кубиков разной формы): основание + опора + перекрытие (мост) или основание + этажи + крыша (дом). Затем меняем ровно один модуль (например, опору делаем тоньше) и проверяем, что изменилось в целой модели. Обсуждаем свойства каждого заменяемого модуля, обращаем внимание на язык обсуждения. Это композиционная алгебра: что с чем совместимо, что на что можно заменить. Дальше можно явно вводить мета-системный переход: целое получается как склейка частей и о нём говорят на другом языке. Чтобы понять/починить целое, пробуем заменять части по одной и смотрим, какие свойства целого появляются по сравнению со свойствами частей, какие сохраняются, а какие ломаются при заменах. Системное мышление на примере конструктора: просто явно задаём, как думать на многих масштабах частей-целых, обращаем внимание на изменение свойств целых на разных системных уровнях как “смену слов, которыми говорят о системе”. Можно тут ввести и слово “система”, оно тоже вполне нормально, цепочка фонем. Есть граница, есть окружение. Сначала показать на моделях домов и мостов из кубиков, затем ровно то же самое на примерах домов и мостов в реальности. Заодно и понятие “модель” можно ввести (это неважно, что физическая модель).
- Оптимизация (цель + ограничения + поиск лучшего): задаём измеримую цель (“самая высокая башня”, “самый дальний запуск”, “самый быстрый проход лабиринта”) и ограничение (10 кубиков, 3 попытки, 2 минуты). После каждой попытки фиксируем результат (метрика), сравниваем варианты и меняем конструкцию/стратегию. Термины “оптимизация”, “критерий” и “ограничение” тут вводятся явно: “мы оптимизируем, то есть ищем лучший вариант по заданному критерию при заданных ограничениях”, а не просто “строим красивее”.
- Неопределённость, вероятность и различения: Тут сложно, в один шаг не берётся, но можно пробовать пройти в несколько шагов. (1) “Сюрприз в мешочке” (типичность без счёта). В мешочке лежат, например, много красных и мало синих фишек. Ребёнок не глядя достаёт одну. До вытаскивания взрослый задаёт три вопроса: “что точно возможно?”, “что точно невозможно?”, “что обычно бывает?”. После 5–6 вытаскиваний ребёнок научается говорить: “красное обычно”, “синее редко, но всё равно может случиться”. Терминологию тут можно вводить мягко: “шанс, вероятно”. Можно подмешивать и зелёную фишку (аналог “чёрного лебедя” – непредсказуемого события). (2) “Найди секрет” (информация как различение). На столе 6 картинок (например: кошка, мяч, яблоко, машина, кубик, цветок). Взрослый загадывает одну. Ребёнок может получить одну подсказку-ограничение и должен выкинуть все варианты, которые ей противоречат. Начинать с явных различений: “живое – неживое”, “это можно есть – нельзя есть”, "это круглое – не круглое”. После каждого отсева проговариваем прямо: "подсказка дала информацию, различила точно лишнее и вероятно нужное, неопределённости стало меньше, потому что вариантов осталось меньше”. (3) Склейка двух первых шагов. Ребёнок тренирует моделирование ситуаций окружающего мира как множества допустимых вариантов состояний (“какие варианты возможны?”) и информацию как ограничения/различения, которые сокращают это множество (“что исключили и почему?”). В конце ребёнок уже сам должен формулировать: “когда не знаю точно — держу несколько вариантов (неопределённость), а чтобы узнать — ищу подсказку, которая лучше отличает варианты (информация/различение)”. И вот это осознанное формулирование и надо из него вытаскивать. Это самое трудное: если молча на уровне интуиции, “вайб-оценка вероятности”, то это быстро, но нам-то надо осознанное владение методом, понимание терминологии! Я когда-то много об этом писал, если не добиваться осознанности, то это будет learning debt: “Осознанность против зеркальных нейронов”, Осознанность против зеркальных нейронов: ailev — ЖЖ, 2016. “Системная осознанность” Системная осознанность: ailev — ЖЖ, 2018. “Системная осознанность, 2019”, Системная осознанность, 2019: ailev — ЖЖ, и много других работ. Нам нужно давать не просто “решения проблем”, но и язык обсуждения этих решений, чтобы эти решения можно было улучшать, адаптировать, рассказывать другим людям или даже не людям, сейчас уже есть с кем поговорить и не среди людей.
- Многомасштабные описания: берём один и тот же физический объект — например, игрушечный домик (лучше из LEGO, чтобы были явные детали). Смотрим на него издалека и обсуждаем как целое (“домик устойчивый или шаткий”, “вход широкий или узкий”, “человечку в домике просторно или тесно”). Потом смотрим вблизи и обсуждаем конструкцию (“какие детали держат крышу”, “где опора слабая и сломается при землетрясении”, “что именно надо переставить или добавить в деталях, чтобы дом в целом стал крепче”, различаем “крепость деталей” и “крепость дома”). Потом смотрим совсем близко (под лупой) и обсуждаем материал деталей (“гладко или шероховато”, “какой цвет детали”, можно ли говорить о цвете домика в целом, если там детали разных цветов). Дальше явно вводим принцип: на крупном масштабе мы заменяем детали “усреднёнными” свойствами (эффективное описание), а на мелком масштабе ищем элементы и механизмы, из которых эти свойства складываются. Тренировка: “какие свойства сохранятся при укрупнении (скажем, материал), а какие сложатся (вес)? какие исчезнут (цвет)? какие новые свойства появятся (просторность)?”, “какие детали надо менять, чтобы изменить свойство целого?”.
- Ресурсные ограничения (существует ≠ достижимо): одна и та же задача в двух режимах: “есть 5 минут и можно пробовать сколько угодно” vs “есть 30 секунд и только одна попытка”; или “можно записывать на бумажке” vs “нельзя записывать”. После этого явно проговариваем принцип: иногда решение “существует”, но при данных ресурсах (время, память, энергия, число попыток) оно недостижимо — и поэтому нужен другой метод.
Можно так учить и спорным моментам, вроде “отнесения причинности к первым принципам или всё-таки вторым” (помним, что составы принципов дрейфуют, поэтому сегодня ответ на этот вопрос может быть одним, а завтра – уже другим). В детской версии мы учим не SCM, а протодисциплине эксперимента, интервенции как активной проверке причинности: игра “поменяй один фактор” с явным правилом: “меняем только одно, остальное держим одинаковым”. Берём машинку и смотрим: горка и игрушечная машинка, но меняем только высоту старта; потом только поверхность (ковёр/плитка). После каждого прогона задаём один и тот же вопрос: “что стало причиной изменения?”. Тут важно прямо произносить “интервенция” как “целенаправленное воздействие” и тренировать дисциплину контроля переменных.
Глаза боятся, руки делают. Когда-то на мехмате МГУ приходилось в начале 80-х доказывать, что “взрослой дисциплине программирования ЭВМ на передовых производствах” надо учить студентов не с третьего курса, а вот прямо с первого курса. Потом в 1985 году появилась школьная информатика как обязательный школьный предмет, её начали учить с седьмого класса. Почему с седьмого? Потому как провели эксперимент: взяли все классы с первого по десятый, попробовали учить. “Завелось” с седьмого по десятый, а до седьмого класса – не получалось. Но лет через двадцать нашли способ, и появилась дошкольная алгоритмика. Вопрос был в том, чему надо было учить сначала: мышлению программиста, “первым принципам”. А вот синтаксису языка программирования – потом. Теперь дошкольников начальной алгоритмике “из первых принципов” учат примерно за 16 часов (кстати, взрослых учить тому же самому надо 8 часов, они меньше отвлекаются, но порядок величины тот же: обучается очень маленькая часть очень мощной нейросетки, надо только знать, чему и как учить). Смотрите материалы https://infomir.ru/news/ (горжусь: слово “ИнфоМир” придумал я ещё в 1987 году) и инструментарий в https://piktomir.ru/.
Сразу тут видится проблема: если такие детки начнут общаться, то им может быть трудно, примерно как физику трудно общаться по вопросам физики с “простым народом”, он и не общается. Но вот тут мы учим примерно так же смотреть на проблемы обычной жизни, как физик или математик смотрит на свои проблемы. Эти “принципиальные детки” будут очень зоркими и замечать то, что недоступно “простым деткам” и даже “простым взрослым”. Но дальше они могут использовать в речи словечки вроде “инвариант” и тут начнутся социальные проблемы.
Но я бы тут не слишком беспокоился о социальных проблемах таких детей, ибо у нас уже не человечество, а “агентечество”. Надо беспокоиться о нормальном общении деток с AI-агентами, чтобы лучше ставить перед ними проблемы и лучше понимать решения этих проблем (чтобы в их общении не было повторения известного анекдота: "-- AI-агент, приборы! – Восемь! – Что “восемь”? – А что “приборы”?). AI-агенты не люди, и слова “инвариант” не испугаются.
Литература с обсуждением подобных проблем “деток нового поколения для новых времён” старая, но хорошо знакомая многим читателям старого поколения в старых временах, так что должно стать понятным, о чём это я:
- А. и Б. Стругацкие, “Гадкие лебеди” (1967).
- Neal Stephenson, “The Diamond Age: Or, A Young Lady’s Illustrated Primer” (1995)
Мысль о том, что нулевым принципам “мышления вообще” надо учить дошкольников, первым принципам строгого мышления надо учить школьников, а прикладным принципам предметного мышления надо учить уже в ходе бесконечного развития по мере участия в самых разных проектах, требующих этих прикладных знаний – она уже для следующего поста. Да, там сразу будут вопросы про уже упоминавшиеся проблемы вроде “теория причинности на базе первых принципов – это формально прикладная область, но всё-таки фундаментальное знание, которому нужно учить всех, давайте припишем её к первым принципам”. Это всё будет ломать логическую стройность предложенной решётки принципов, но кого это остановит?
