Топовый программист 3
FROM: Максим Сохацкий
TO: Patreon Subscribers
ТOC
Выпуск #1
Выпуск #2
Выпуск #3
Выпуск #4
Выпуск #X
Выпуск #5
Аспекты курса
После того, как в первых двух главах мы рассказали о топовой мотивации и топовом мышлении, перейдем к топовому курсу топового программиста. Структура этого курса программирования возможно будет очень сильно отличаться от других подходов к обучению, но этот курс является курсом, который я пытался "увидеть" сквозь ретроспективу своего профессионального опыта, касающегося непосредственно программирования, того, как я вижу топовость этого процесса.
Перед тем как начать со структуры курса, я хочу показать основные индикаторы (аспекты курса), на которые стоит ориентироваться при выборе топовых направлений в программировании. Потому, что именно эти индикаторы и определяют те предметы и их последовательность в которой вы должны поглащать информацию, чтобы приблизиться к максимальной топовости.
Предельная точность
Предельная точность означает абсолютные вычисления. В эту вымышленную категорию я включаю все области программирования и математического моделирования, которые требуют абсолютной формальной точности: системы доказательства теорем, специализированные формальные верификаторы моделей, системы символьной алгебры, ситемы вычислительной гомологической алгебры, т.е. те системы моделирования, которые не только раскладывать саму систему до атомов, но еще и ближашую метамодель на уровень выше, которую тоже нужно формализировать, чтобы верифицировать сами модели. Сюда входят такие отрасли как процессоростроение (модел чекеры печатных плат, процессоров, специализированные языки программирования типа VHDL), языкостроение (системы типов, формальные языки программирования, языки общего назначения). Сюда также входят: любые формальные математические теории, формальные логики, язык кванторов Пи и Сигма.
Предельная оптимальность
Предельная оптимальность означет минимальное количество усилий приложенное к достижению цели. Сюда входят дискретные задачи мини-макса, линейное программирование, симплекс методы, полиэдральное мномерное симплектическое программирование, методы оптимизаций. В физике это основной принцип вариационного исчисления, минимальные геодезические линии. Ваша система не только должна быть максимально точной, в апогее абсолютно точной, но и должна быть закодирована оптимальным образом, не содержать повторяющихся частей, занимать минимальный футпринт по ограниченному количеству памяти и вычислительных мощностей. Лучше, чтобы была теорема которая доказывает эту минимальность, как например черч-кодировка индуктивных типов как естественная кодировка любых структур в лямбда исчислении, оптимальные лямбда эвалуаторы и т.д. Предельная оптимальность означает также высший пилотаж в прототипировании и создании MVP эскизов.
Предельная сложность
Предельная сложность означает дословно максимальную сложность системы с которой нужно работать. Если вдруг окажется, что вам сложности декартово-замкнутых категорий мало, всегда можно перейти в симметрические модальные категории в которых живут следующие языки программирования: квантовые языки программирования, конкруретные паралельные системы типа Erlang, системы линейных типов, языки для обработки тензоров. Также предельная сложность подразумевает наличие уже в системе предельной точности и предельной оптимальности, иначе без первого у вас будет просто неработающее говно, в отсуствии второго у вас будет миллионы строк дублирующего кода, которые не влияют на реальную сложность проекта. Если вы хотите увидеть реальную сложность посмотрите кубические доказательства из К-теории.
Это что касается более менее чистых тем из логики, дискретной математики, и программирования. В междисциплинарном подходе, если вы хотите стать не топовым программистом, а, например, топовым биофизиком, то список тем будет другой. Предельная точность там заменяется на математическую статистику и стохастическую физику, предельная оптимальность связана с топологией пространств, а предельная сложность выражается в объединений полей и, как пример, стандартной модели. Ну а в биофизике сложность увеличивается топологическими многообразиями нейросетей как иерархических процесов работающих со тензорными потоками. Гомотопическая теория типов как язык программирования инфитини топоса является в физике аналогом теории струн. Биофизика же представляет собой более диссипативные структуры, которые теряют границы точности, таким образом задача создания AI не в полной мере соотвествует абсолютной точности. Я бы сказал что AI это больше системная инженерия и прикладная область, в то время как абсолютная точность это больше сфера математического программирования. И даже машинное обучение при детальном рассмотрении сводится к статистической точности, прогнозируемой оптимальности и системной сложности.
Я, как сторонник абсолютной сложности, считаю, что любая современная PhD должна содержать междисциплинарный подход. В качестве необходимого минимума в международной научной практике предлагаю рассмотреть междисциплинарный подход, который базируется всего на двух особенных дисциплинах: УДК 51 (математика) и УДК 004 (программирование). В качестве особенных они выбраны потому, что любая другая дисциплина базируется на чистой математике, а для проведения любого моделирования (перепроверке теории), нужен фундаментальный курс программирования.
Интересно, что третий из этих индикаторов можно инвертировать и при этом оптимизационный вектор (максимальная точность, максимальная оптимальность и минимальная сложность) тоже окажется интересным объектом рассмотрения. В существе это требования выдвигаемые к библиотекам программного обеспечения: они должны быть максимально формальными с доказательствами свойств их моделей, должны быть оптимально смоделированы или обладающие оптимальным экстрактом в другие модели, но при этом также должны быть максимально простыми или минимально сложными в общей картине компонент. Философия N2O в точности соотвествует такому альтернативному оптимизационному вектору, но решая задачи технологических стеков нельзя стать топовым программистом, нужно увеличивать сложность, например в сторону сложных социо-информационных систем, как ERP системы управления предприятием, где десятки тысяч таблиц каждая по сотне полей привычная сложность для бизнес аналитиков, работающих с такими продуктами как SAP S/4.
Забавно, что в эзотерическом тибетском буддизме, эти три критерия применяются в наставлениях по визуализации в высших тантрах: вы должны максимально детально (до волос и фактуры тканей одежды — принцип максимальной точности) представить очень сложный объект (18-рукое божество в союзе с супругой, свитой и аттрибутами — принцип максимальной сложности) максимально быстро (желательно мгновенно — принцип оптимальности). Ученики, которые могут это делать не "на словах", а "на деле" — встраивая картинку силой мысли и воображения даже не на сечатку глаза, а прямо на кору головного мозга, выжигая изображение в своем мышлении на простыне воображаемой вселенной — считаются топовыми медитаторами. Для наглядного примера хочу показать приблизительное качество визуализации удерживаемое в пространстве своего мышления, которого может добиться средний по способностям европеоид-медитатор за 3 года упорной практики:
Наверно поэтому до сих пор не существует ни одного просветленного европейца! Эта картинка также наглядная демонстрации того, что вы можете достичь за 3 года обучения (думаю, что у отдела PhD ребят из NASA, подготовка к рендеру этой картинки заняла три года как раз).