Лаборатория Математики и Программирования Сергея Бобровского – Telegram
Лаборатория Математики и Программирования Сергея Бобровского
1.31K subscribers
1.26K photos
27 videos
971 links
ЛаМПовое с Бобровским
Download Telegram
Смотрю, взлетает новый тренд "свой roblox". Классная темка для распила, потому что со стороны смотрится проэкт эпическим, думаю что не менее миллиарда озвучат :) При том, что вкладываться надо прежде всего в наукоёмкие направления -- например "свой теорем-прувер", сегодня абсолютный топ в формализации математики, филдсовский Теренс Тао не даст соврать, с ним вся европейская computer science. А у России в этом плане (пока ещё) одни из лучших интеллектуальных ресурсов.

Ну а роблокс... что роблокс? Любой сеньор из геймдева на пару с искусственным болваном альфа-версию запилит за 1 месяц. Тут вопрос чисто технический -в масштабировании, а это тупо просто больше серверов. Хотя думаю и серверов-то много не понадобится (возможно всего один :), потому что реальных игроков там будет код наплакал :) если только не будут силком загонять как в макса...

Честно, вот прям очень жалко, такой шанс сделать русской всю мировую математику, по заветам Воеводского, редко когда бывает, а мы уже почти упустили...
🤔3795🙏3🏆2
Нашёл в файлах Эпштейна (искал по слову "haskell") классный гайд

https://www.justice.gov/epstein/files/DataSet%209/EFTA00624128.pdf

Ben Goertzel with Cassio Pennachin & Nil Geisweiller & the OpenCog Team
Engineering General Intelligence,
Part 2: The CogPrime Architecture for Integrative, Embodied AGI
September 19, 2013


Забавно почитать, как до явления нейросетей обсуждали AGI.
😁4443
Forwarded from ivan zakutni
Запустил автономного AI-агента на VPS.

Да, тот самый дырявый openclaw, игнорировать его не удалось 🤔

Он работает 24/7, и интерфейс связи со мной – телеграм бот (удобно!)

Имя Ku и аватарку бот себе придумал сам (ну или почти сам.)

Впрочем возможно это КУ и такое 🔔

Если попытаться выделить основную его задачу... Сейчас ее можно назвать, например – "Knowledge management automation".

Ужасное имя, ничего не понятно, лучше – “AI based Exocortex”!
Но этого тоже мало, поэтому расскажу немного деталей!

Из какого функционала состоит система:

- Индексирует документы из моего Obsidian с синхронизацией каждые 15 мин (их там счет на сотни, тысячи еще вроде бы нет).
- Ещё через тот же Obsidian на сервер попадает выжимка по моей работе, собираемая с лаптопа Claude Code агентом с MCP Pieces.
- Туда же, отдельной под-директорией попадает журнал из LogSeq (я начал его использовать недавно для быстрых записей, мышления письмом по книгам и руководствам которые я изучаю. Удобнее чем raycast notes или мобильный обсидиан)
- В довесок он собирает дайджесты с arXiv, почтовых рассылок, и блогов разнообразных и уважаемых учёных – утром и вечером.
- Из всей этой красоты агент извлекает концепты и некоторым образом строит связи
- А еще – генерирует flashcards и с нормальным spaced repetition (FSRS) дважды в день проводит мне quiz-сессии, отмечая что и насколько хорошо я вспоминаю.
- Ну и наконец – Ku публикует инсайты в собственный телеграм канал @ku_notes

Инсайты тоже можно назвать "собственными", потому что у агента есть отдельные кроны/задачи для исследований/размышлений/"самопознаний", результаты которых он отслеживает и собирает в отдельной директории. Конечно не теряя доступ к моему хранилищу, и тому что он высосал из почты и блогов, но тут нет жестких ограничений – темы для исследований он выбирает сам, хотя я и могу подкидывать идейки.

Между “собственными” инсайтами бота и моей личной базой знаний есть жесткая граница. “Свои” инсайты Ku не может просто так добавлять в Obsidian – это read-only копия, и единый источник истины все еще в моем локальном репозитории.

Этот банк пополняется мной, моим мышлением письмом. На случай если Ku вдруг совершит какое-то чудо открытие и поделится им со мной, способ попасть в банк концептов / flashcard's есть лишь один – через мои мозги, через то самое мышление письмом.

***

Ещё несколько интересных решений которые вокруг/внутри этой истории работают:

1. Конечно же я сразу набил ему "голову" минимальным [FPF](https://github.com/ailev/FPF) 🙂 Ku, кстати, дистиллировал спецификацию FPF сам себе в skill-pack. Возможно я этот скилл рассмотрю ближе, и потихоньку доделаю под универсальное использование с другими агентами.

2. MemSkill-inspired память – навыки извлечения эволюционируют через фидбек. Да, это очень свежая папира, и Ku после своей сессии размышлений по FPF предложил внедрить – я помучал вопросами и одобрил! Круть!

3. Есть механизм "Состязательной рефлексии" – один процесс генерит тезисы/идеи, другой ищет контр-доказательства и критикует.

4. Pieces интеграцию стоит упомянуть еще раз (никто же поссылкам не жмет!). Pieces это local-first (с оговоркой) комбайн с визуальными модельками, который смотрит на все что вы делаете и записывает себе в память. Там есть дескопный интерфейс, и MCP – собирает вполне себе глубокий рабочий контекст. В дизайн Ku очень хорошо зашло. Ух, теперь не только для демо митов буду использоваться с запросом "Аааэээ чо я делал весь спринт кроме xyz?", теперь Ku смотрит что я делал, находит связи с кусками из дайджестов, или моими мыслями/записями/постами из Обсидиан и говорит – "Смари чо нашел, это возможно интересным образом вязано!"

Почему все это не такой уж и rocket science:

- OpenClaw даёт солидную базу автономности из коробки, не смотря на всего его несовершенства.
- Opus достаточно умён, а все процессы достаточно просты, сегрегированны и чётко описаны чтобы эффективно им следовать
- Хватает дешёвого VPS — 2cpu/4gb
- Obsidian vault = просто файловая система, а rsync, fswatch и прочие микро-автоматизации на сервере и вашем компе делаются элементарно.
Please open Telegram to view this post
VIEW IN TELEGRAM
252818🤯8❤‍🔥3👍3
↑↑↑ Продолжаю работу с ментатами 🤓 ↓↓↓

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

...Стало заметно, что самые полезные 30–50 минут работы проходят вне IDE. Когда я формулирую словами шаги алгоритма или правила системы, структура кода затем выстраивается почти автоматически. Если я не могу описать словами, что делает фрагмент логики, значит, я всё ещё думаю на уровне «как выполняется», а не «что означает».
Теперь главный вопрос перед любым фрагментом логики для меня звучит так: «Какая сущность или правило системы здесь реализуется, а не какой именно код здесь написан?»

...Мне кажется работа над "запахом кода" может вестись непрерывно. Особенно когда у тебя не так много опыта и ты создаешь много "запаха" во время реализации первого релиза. Тебя подгоняют сроки. Регулярно я выполняю очередной коммит с мыслью, что после того, как выпустим проект в прод и пустим первых пользователей, то я обязательно вернусь и поработаю над этим "запахом". Мне практически ежедневно хочется вернуться и внести очередные изменения, которые устранят этот "запах".
...Да, LLM уже делают свою работу гораздо лучше, чем было еще год назад. И если такой код получается рабочим, но "запаха" у такого кода достаточно много. В принципе как и у людей когда мало опыта и подгоняют по срокам.

[...] Отменили интервью, сказали, что нужна релокация (Азербайджан). Возможно, причина выдумана)

[...] Не решил за час алгоритмическую задачку по нахождению самой длинной строго монотонной последовательности. Алгоритм написал, но с ошибками. Кстати в этот раз решал на Python. Буду дальше практиковаться в написании алгоритмов на вашем курсе.

...часть моей команды сокращают и тем временем моему коллеге разработчику повысили ЗП, и все это на 1 to 1 с руководителем. Сегодня сократили моего аналитика и вот пару часов назад мне встречу на завтра назначили...

...Благодаря последним заданиям HW, начал примерно понимать как архитектурно смотреть на проект и как можно его менять. Часто ловил себя на том, что читаю задание по изменению архитектуры и совсем не понимаю, а как это сделать у себя, особенно так, чтобы стало лучше. И вот наконец набралось то количество информации из ваших материалов, которое начинает превращаться в единую картину. И я начал ощущать, будто стал понимать как следует смотреть на проект. Раньше я вроде делал что-то в плане архитектуры, и возможно далеко не худшим образом, но всё это было будто на автомате, без осознания, а почему именно я делаю так. И вот при выполнении очередного задания HW, я ощутил, что начинаю понимать, а как вообще можно выразить архитектуру, чувствовать какие-то границы и т.д. И хоть это понимание ещё довольно примитивно и мне предстоит ещё расти и расти, но я рад, что ощутил прогресс...

...Закончил знакомство с блоком материалов по экстремальной ответственности. Пока изучал, казалось, что вроде бы проникся общей идеей, осознал пользу принятия ответственности, но тут вышел тимлид, стало психологически легче, и сразу появился соблазн сбросить с себя всю ответственность за решения в том числе по своим работам.
Отдельно отмечу, что эти материалы (в основном 40 - как не выгореть…) помогают не только в рабочем процессе, а в том числе и в общежитейском-семейном :)

...Нашёл для себя полезность такого "умничания" в том, что можно использовать заведомо неуспешное с точки зрения прохождения собеседование превратить в полезный инженерный спор, при условии, что интервьюер действительно разбирается в том, о чем спрашивает (хотя вряд ли).
По моему опыту таких интервьюеров, которые намеренно сливали, не было. Но были такие, которые не принимали ответ, так как ожидали "типичной" формулировки ответа, как в моем случае при собеседовании в [...]. К таким отношение не лучше, ибо они не видят глубины собственного вопроса и весьма ограничены в понимании вопроса.
1🏆25👍1442❤‍🔥1
Потестил последние модельки, вокруг которых сегодня хайп - опус4.6 кодекс5.3

"когда две комплексные групповые алгебры над конечными абелевыми группами изоморфны?"

Заразы, все справились :)

Когда |A| = |B|

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

Это кстати довольно важный момент в кампутер сайнсе, например type erasure. Как стирается структура группы до размерности, так и Java стирает List<Int> и List<String> до одного List в рантайме.
Разные типы, но одно представление.
1🤯34157👍2
Прекрасное: ASML (голландский лидер рынка литографического оборудования EUV - самое важное для мирового рынка чипов, считается едва ли ни самой сложной инженерной конструкцией в человеческой истории)

уволила 1700 (!) менеджеров, при этом расширив айтишные и инженерные позиции.

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

Дико уважаю.
46💯20👏127❤‍🔥2
...Но всё же я этих ваших искусственных болванов захейтил :)

опус4.6

4.6: функтор C[−] не верен на абелевых группах

разве??

4.6: Функтор верен (не склеивает стрелки), но склеивает объекты с точностью до изоморфизма. Спасибо за вопрос — формулировка «не верен» была ошибкой.


жпт5.3

функтор C[−] не верен на абелевых группах?

5.3: Не верен (не faithful).

разве??

5.3: Ты прав: на категории групп функтор C[-] верен (faithful).

💪🏻👊🏆
377🏆3👍1🫡1
Ну, с Днём Науки!!1

Так-то вчерашняя победа над очередными "топовыми" версиями нейронок возникла вот из этих размышлений =>

У нас есть структурно разные реализации стека -- с помощью динамического массива, и с помощью связного списка. Но после того, как мы их "компилируем" в общую алгебру C[G] - интерфейс/абстрактный класс - они становятся неразличимы (изоморфны как алгебры), хотя и имеют разные вычислительные свойства.
Об этом же говорит и унивалентность в HoTT: критичным будет выбор эквивалентности типов. Если она будет слишком грубой, то у нас склеятся типы, которые склеивать не нужно.

Хороший дизайн типов должен сохранять различия, которые важны для нашей предметной области, а не схлопывать их в общее представление (те же интерфейсы).

...Да, но как формализовать важность доменных различий?

Нам нужно проектировать такими функторами, которые будут одновременно верны, полны, и отражают изоморфизмы!
Это именно та ключевая эквивалентность из HoTT: домен и код выражают одно и то же, 1:1, без потерь информации и без лишнего мусора.

Таким образом,
- любой баг в системе будет следствием нарушения faithful соответствующего функтора;
- любые накладные/мусорные операции (например инкапсуляция, которую мы вводим для защиты от тупых разработчиков) будут следствием нарушения полноты функтора;
- любые лишние типы/обёртки (которые мы обычно вводим для снижения когнитивной нагрузки и той же страховки от дурака) будут следствием нарушения отражения изоморфизмов.

Но ведь все эти моменты мы вполне можем формализовать!

...Думаю вот, а не сделать ли такой мета-фреймворк для AI, который вообще уничтожит всё человеческое программирование? :)

Или всё же лучше подготовить условный "гайд", который сделает только его владельца x100..x1000...x1000000 -кратным эксклюзивным программистом? А саму мета-методику хранить в тайне, и доверять лишь избранным ментатам, как Бене Гессерит :)

А то вы так и будете бесконечно "прописывать скиллы для агентов" с кучей топологических дыр.

Правда, для использования только самого гайда потребуется PhD в теории типов, но это, на мой взгляд, вполне достойный порог входа для подобных целей (+ я вам дам прямую тайную тропку к цели:).
...В любом случае, в конечном итоге в айтишке останутся только такие.

Impossible? Like that would stop me.
2🥰32134👍4
...И у меня сильное подозрение, что конкретно для уничтожения мэйнстрима с помощью агентов смитов подойдёт только Haskell (Хиндли-Милнер на стероидах), потому что F# не умеет автоматически выводить функторы. Можно помучиться с помощью free monad, но всё равно в нём нету ни тайп-классов, ни deriving, ни GADTs, ни HKTs...

Haskell зараза, довольно кривой сам по себе, награбастал себе кучу крутых абстракций :)

Хорошая кстати идея: начинаем проект с подбора максимально сильных абстракций, с которыми знаком, хотя бы на пару уровней выше классических паттернов GoF.
👍3313❤‍🔥1
То есть как минимум чистое ядро бэка, бизнес-логику, смиты пилят на хаске,
а фронт (или под ноду) на purenoscript -- он концептуально ближе всего к хаскелю, есть вывод функторов, тайп-классы с higher-kinded types (но нету deriving via)...

В качестве модной альтернативы на фронтенд можно взять совсем молодой Roc
(автоматический вывод тайпкласс-подобных интерфейсов), который умеет компилировать например в wasm, и в целом весьма прагматичный.

Как альтернатива хаскелю вполне можно посмотреть скаловский dotty, по возможностям практически как ps. Конкретно под суровый прод я бы даже наверное со скалы3 и начал.
31👍116
.

Облако драгоценностей за неделю.

Сегодня будет важная информация для ментатов, посмотрите вечером наши новости - новый вид скидок 💰 (кто хорошо занимается, последние материалы могут быть вообще бесплатны!)

Приватный клуб.

Сейчас повсеместное распространение получил вайб-кодинг, и на первый взгляд это действительно выглядит впечатляюще. Вы можете превратить идею в работающее приложение за считанные минуты, просто описав, чего вы хотите, и предоставив AI выполнять 98% работы.
Многие новички создают таким образом MVP, игры и небольшие продукты. Некоторые из них даже внедряют эти приложения, привлекают пользователей и зарабатывают деньги, несмотря на то, что у них очень мало опыта в программировании.
И, честно говоря, эта часть реальна.
Проблема проявляется только после того, как вы переходите к первой рабочей версии...

Для донов-начинающих:


Что делать, если трудно заниматься даже на курсе программирования с нуля?..

Вот неприятная правда: тебе не нужны люди, которые "верят в тебя". Вот кто тебе нужен...

Изучение программирования в 2026-м году выглядит совсем иначе, чем два года или даже год назад (лонгрид, выложу также на бусти)...

Для донов-неначинающих:

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

...Конечно, я знаю, что многие отличные / одарённые программисты не сильны в "продажах" самих себя при переходе на новую работу... и что эта необходимость "продаваться" реально выбивает их из колеи. Им (как и мне) ненавистна сама идея "проталкивать" себя. Они стеснительны, немногословны, и хотят всего лишь сосредоточиться на своей работе, хотят просто писать хороший код.

Продолжение трека "Элитный программист":
35) Как работать с глупыми менеджерами
Когда речь заходит о начальстве, самые частые претензии сводятся к тому, что оно не заботится о применении лучших практик программирования (нередко и тестирования), и рассматривает их как причуды, которые только замедляют процесс производства. Вы также наверняка встретите руководителей, которые используют неверные показатели эффективности (например, частоту выпуска релизов, а не качество и надёжность), и продвигают не тех людей.

Продолжаю выкладывать для донов материалы СильныхИдей — доступны моим курсантам, но тут расширенные и дополненные версии.
74. Не путаем DI и ADT
"Начала выстраиваться наконец-то модель ООП,которая изначально выстроена,к сожалению,с помощью Dependency Injection - как и везде сейчас,и слабого курса в универе,где мы просто С++ учили."

(все старые материалы для донов постепенно сгорают)

=

Первые сериалы из существенно переработанных и улучшенных материалов СильныхИдей (по сути четыре книги) доступны на бусти:
1. БАЗА программной инженерии
2. Software Design с акцентом на Programming in Small
3. SOLID-25
4. Software Design с акцентом на Programming in Large

=

Новые материалы для ментатов Лаборатории.

В раздел "Элитный программист" добавлен материал
88) Математика высокой продуктивности-5

В курс карьеры добавлен 125-й материал "База по использованию AI в разработке".
По сути, вы меняете свой многолетний опыт на краткосрочное повышение скорости разработки, и то исключительно в интересах вашего работодателя, который не добавит вам за трёхкратную скорость даже 2% к зарплате...


💪🏻

Мы здесь, потому что это трудно.
it's a privilege to do things that are hard.

=

Гайд про функциональные архитектуры, 53 топика (+0), как наберётся 64, дам ментатам доступ.

Лаборатория идёт со скоростью самых лучших ментатов.

=

"Любая дорога, если дойти до её конца, ведёт прямо в никуда. Если держите путь на гору, поднимитесь чуть-чуть по склону, чтобы убедиться, что это действительно гора (Фрэнк Герберт знал про градиентный спуск уже тогда:). С вершины вы этого не увидите."
притча Бене Гессерит
"Дюна"
13010👍2
Последнее время многие ребята мне радостно пишут, что им на работе дали бесплатный аккаунт к условному жпт, причём немало и таких, у кого безлимитка за 200 долларов.

Дорогие, следите за руками :)

Вы получаете 2000 долларов и выполняете некий объём работ. Работы много и желательно её делать побыстрее.

Но если взять к вам ещё одного двухтысячника, то работа ускорится ну в лучшем случае раза в полтора, да и то не сразу. И тут внезапно оказывается, что если платить не 2000 зарплату белковому, а 200 за токены, то человек в паре с жпт начинает работать в два-три раза быстрее (а может и ещё продуктивнее). Ничего личного, просто капитализм.

Так-то и пофиг, но таким образом уничтожаются ваши собственные скиллы, и жпт200 приносит только выученную беспомощность...
🤔27💯1783😁1
В развитие темки.
Ты говоришь агенту "Мне нужна подсистема управления заказами: клиент может создать заказ, добавить товары, оплатить, отменить до отправки....".
Агент бодро берётся за работу, и где-то на пятидесятой итерации, потратив миллион токенов, выдаёт нечто вроде бы минимально работающее.

Допустим, 50 классов, которые можно комбинировать 2500 разными способами. И через полгода, после новых хотелок до 200 классов, жпт как сгенерит новый код, так сломает старый, и 80% токенов уходит на "поправь тут", "сломалось это", "не то имел в виду". А вскоре и контекст всех классов не будет влазить в окно, и на этом всё :) в таком случае принципиально невозможно добавить новый класс не поломав что-то в уже существующем.

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

5 таких подсистем - миллионы токенов, 20 - сотни миллионов, 50 - просто нереально. Каждая починка ломает что-то другое, откаты копятся, и начинается экспоненциальное блуждание в пространстве решений.

На практике-то и 100 млн токенов легко может улететь и на одну подсистему, если допустил топологическую дыру в спеке.

И вот что с этим мы будем делать :) =>
11👍3286🐳3
10 подсистем - 300 тысяч токенов, 50 - ну 2-3 миллиона.

Как, Карл??

По заветам Гротендика и Алана Кэя, метапрограммирование, DSL и тысячекратная компактность кода, с которой экспериментировал ещё лет 20 назад (OMeta), и вот наконец час пробил :)

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

Но мы не одинаковы.

1000 классов - это 15-20 функторов между 5-7 категориями.
Я пишу категорную спецификацию, и говорю агенту
"вот категория C с 5 объектами и функтор F: C -> Код".
Ну не буквально, а на особом DSL, понятном жпт, или например в Lean4.
0 токенов :)

Забрасываю это в какую-нибудь дешёвую жпт4 "превратить спеку в шаблон-генератор на F#" (ну 1000 токенов).

Гружу этот генератор в уже совсем бесплатную ллм-ку типа дипсика. Магия -- и на выходе нужные мне 200 классов, которые идеально работают.

Надо добавить 201-й класс? Он в категории C3, и может взаимодействовать только через функтор F: C3 -> C1 (за O(1), ну в крайнем за O(k), где k - число морфизмов).
Нужно проверить только интерфейс функтора, а не 200 классов! Пишем "реализуй тип T, совместимый с интерфейсом I" (сотня токенов!).

Твои 10 подсистем - полмиллиарда токенов и хрупкость 70%.
Мои 10 подсистем - 1 млн токенов и хрупкость 10%.
Интеграция подсистем: один функтор, 0 конфликтов.

Начинаем с композиционной корректности (сеньор конечно формализует по одному инварианту через пред- пост-условия, а когда их сотни и они все склеены?). Для этого учимся видеть в бизнес-домене категории и морфизмы. Это самый первый шаг, а всего будет 7 базовых, но с пропуском даже одного топологическая цепочка порвётся, и агент бросится лепить баги и безумно сжигать токены :)
11496😇4👍2🥰1
...Да и F# я конечно рановато списал, для него же есть F#+ с тайпклассом Functor, и Active Patterns, и Type Providers, и всякие крутые фишки обещают в F# 11 (хотя так-то есть
Myriad -- это прям наша темка для метапрограммирования)... Да и C# по большому счёту близится по потенциалу к этому всему (Source Generators).

Есть и зависимые типы для F# (заброшенный, но допилить при желании несложно). Между прочим, завтипчики сами по себе вполне могут дать категорную интуицию, и тут я пока не решил, идти ли от теорката (это скорее путь для классических математиков), или всё же от теории типов (это куда ближе программистам).

И в целом, я так подумал... Зачем мне эту методику вообще кому-то отдавать? Всё равно в ней без поллитра PhD не разобраться.

Учить этим темкам буду индивидуально только лучших ментатов, а реализую эту концепцию например как условный SaaS (внутри работают тысячи индусов и пакистанцев мои специально обученные агенты). Закидываете своё ТЗ, и получаете на выходе систему произвольной сложности по большому счёту, которая ну не формально верифицирована, но близко, и как минимум концептуально описана математически, а стоить это будет в сотни-тысячи раз дешевле, и делаться быстрее, чем если отдавать команде белковых с жпт200.
27👍3295😁3❤‍🔥1
Вайб-кодинг -- быстрый недисциплинированный подход, при котором разработчик отправляет запросы жпт, принимает его вывод без ревью кода, тестирует вживую и исправляет ошибки по мере их появления. Приводит к созданию непонятного, неподдерживаемого и хрупкого кода. Скрипты, прототипы, небольшие программы и игры, для которых можно украсть код с гитхаба -- норм.

Agentic engineering -- профессиональная инженерная методология, где человек берёт на себя прежде всего темы планирования, ревью кода, тестирования и оркестрации. Фундаментальные знания в архитектурах, system/software design, качестве и безопасности, становятся критически важными.
Спецификацию и этапы работ готовим до начала кодинга. Строгий ревью всего сгенерированного кода. Всеобъемлющее тестирование как база качества и успешных итераций агентов. Полная ответственность человека за архитектуру, код, документацию, CI/CD и мониторинг.
Так-то классический техлид и есть. Растите скорее в него!

Agentic mathematics -- существенно более формальная темка, куда двигаюсь я :)

Вот как сегодня работает agentic engineering: "Building a C compiler with a team of parallel Claudes", 16 агентов нафигачили на Rust компилятор Си под линукс на 100 тысяч строк кода за две недели.

При том что темка написания компиляторов -- это по сути академическая алгоритмическая задачка, она очень хорошо изучена и формализована десятки лет назад, сегодня по сути курсовая студенческая работа. Вот например компилятор сишечки, написанный на ассемблере, который уместился в 512 БАЙТОВ.

В данном случае ещё большой вопрос, как вообще эти 100.000 строк кода работают? Понятно что прогнали через стандартный набор тестов, ну ок. Но в продакшене я бы его использовать не стал :)

Собственно что хочу сказать -- работа этих агентов обошлась в 20.000 долларов! Ну, за 10 месяцев в принципе любой крепкий миддл с университетским образованием сделает даже несколько таких компиляторов.
7397🔥41👍1
Первый спутник, Гагарин, астронавты - дали бум по всему миру инженерным темкам, включая первые компьютеры.

В 1970-е появился Кобол, который создавался с целью "бизнесмены будут писать свои собственные программы".

(Кстати, очень лёгкий язык, реально похож на естественный, но даже небольшая логика занимала кучу перфокарт. Но учётные программы кодировались только так.)

Реальность: 98% бизнесменов тех лет не могли запрограммировать на околоестественном языке нахождение наибольшего значения из трёх чисел :) А сегодня, думаю, и 99,9% не напишут.

Но в целом на Коболе было написано просто огромное количество строк кода, и к программированию реально подключилось множество не только математиков и физиков которые использовали фортран, но и обычных инженеров.

1980-е: CASE-инструменты будут генерировать всё.
Реальность: эти инструменты так и остались уделом единичных проектов и академического изучения. Но при этом к программированию было привлечено большое количество постановщиков и аналитиков, подчас вообще без инженерного образования, которые начинали с рисования диаграммок, и попадали в промышленную разработку.

1990-е: Visual Basic и Delphi: пресловутое рисование мышкой, формошлёпство, что невероятно бесило хардкорных плюсистов, но к прикладному программированию оказалось привлечено просто огромное количество людей, начиная со студентов.

2000-е: Бум IDE, первые веб-фреймворки, где вся техническая начинка глубоко скрыта, и достаточно просто понимать реляционные отношения на уровне моделей и делать крупные проекты небольшим количеством кода, что привлекло множество людей уже в профессиональную разработку.
Сколько же я тогда книг, самоучителей написал на эти темки... :)

2010-е: Развитие тенденций lowcode/nocode, бессерверные/облачные технологии, появление различных конструкторов и библиотек компонентов, которые позволяли буквально "рисовать" стандартные бизнес-приложения.
Программирование переживает очередной бум, в айтишку входит всё больше и больше "гуманитариев".

2020-е: Искусственный интеллект: последняя глава в долгой истории?
Да нет же! До сих пор каждое усовершенствование программирования не уменьшало потребность в разработчиках, а увеличивало её! Ну или как минимум привлекало к программированию существенно - в разы, а то и на порядки - больше людей. Сейчас например в геймдеве, смотрю, массовый тренд - ребята бросаются изучать программирование. С помощью нейронки они создали прототип своей игры-мечты, да ещё и с кооперативом, но её дальнейшее развитие, да и просто доведение до первой рабочей версии, требует сперва базовых знаний сисадминства, затем devops/сборка/деплой, затем умения писать простые скрипты на lua python js...

Уверен, что скоро в "поизучать программирование" появится новая огромная волна желающих, попробовавших возможности создания "своего приложения", но быстро столкнувшихся с необходимостью профильных знаний. Но только им уже будет абсолютно наплевать на рекламные призывы "войти в айти за полгода зарплата 160k", потому что у них совсем другая мотивация, да и AI им хорошо поможет в самообучении.

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

Мы просто каждый раз обнаруживаем, что ограничением становится не инструмент, а сложность проблем, которые мы пытаемся решить.
🤓30💯1594🤔3
Надо признать, что AI-агенты -- это качественный шаг (куда-то туда:).

LLM как ни крути, не более чем статистический подбор наиболее "близкого" к решению, и всё (предсказание наиболее вероятной последовательности токенов). Нейросеть концептуально не способна - в принципе - прокручивать код по шагам, эмулировать его выполнение.

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

Что интересно, и люди программирует очень похоже. Смотрю по многим десяткам ребят (и девчат), кто у меня изучал программирование с полного нуля: нарешиваем сперва сотни простых задачек постепенно растущей сложности, чтобы когда человек прочитал условие новой задачи такой же сложности, нейросетка в его голове сразу выдала бы приблизительное решение. Собственно сеньоры отличаются от начинающих только тем, сколько примерно похожего на решение кода они могут сгенерировать с ходу. Начинающий - от силы десяток строк, профи быстро напечатает несколько сотен. Тут кстати полезная отдельная связь, дабы осознать свою скорость и рейт ошибок, у меня это курс по Personal Software Process Карнеги Меллона. Но это один микро-скилл, и его недостаточно.

Требуется также и агентское мышление, второй микро-скилл: прежде всего, метод пристального взгляда, когда мы пошагово прокручиваем работу кода (или как минимум его критические моменты) в голове. Тут у людей разные квалификации тоже различия, но скорее в уровне компетенции: начинающий (сознательная некомпетентность) будет долго и мучительно моделировать работу каждой строчки кода и путаться в трёх соснах, а профи (бессознательная компетентность) моделирует работу длинных простынь кода подсознательно; на уровне сознания это будут инсайты или смутное чувство "где-то что-то тут не так" (или "вроде норм" :). Тогда уже пускаем в ход отладчик и логи.

Я по этой причине начинающим с нуля с самого первого занятия даю рекомендации и разбор задачек в режиме пошагового выполнения, чтобы эти два базовых микро-скилла склеивались у них в уме как можно быстрее и прочнее.
(правда, набора на занятия у меня не было уже год, и не знаю, когда снова возобновлю :)
53522🏆5
Пятница 13е, нужен же позитив? :)

Ну, например я убеждён, что телеграмм уже в этом году полностью забанят, причём капитально, затем гугл, затем любые впн, затем оставят только белый список, цифровой рубль и персональный эйай вместо живого куратора за сорм-ом, а затем, согласно пророчеств, под предлогом заботы о безопасности граждан, заключительное: цифровая печать 666 на длань и чело. Думаю, что уже в этом десятилетии всё закончится.

"В сансаре абсолютно всё и всегда связано с дукха — страданием, неудовлетворённостью. В сансаре не может быть никакой справедливости, здравого смысла и т. д.
И наша миссия здесь -- не установить высший справедливый гуманный мировой порядок, а успеть за свою жизнь освободить из этого концлагеря как можно больше живых существ."
(с)
214612🤔11💯4👍1
Этот ваш клод4.5 даже не владеет коммутативностью арифметический операций (5й класс). А ведь иксперты нам говорят, что ещё совсем немного осталось, и жпт начнёт писать супер-код с наноскоростью, только чуть-чуть подправить. Штош...
😁51
"Гум-Гам" кстати очень рекомендую, прочитайте сами и своим детишкам эту светлую фантастическую повесть из 1970-го, святого советского писателя Евгения Велтистова (сперва книга, потом фильм): пророческое, как AI АВТУК, знавший ответы на все вопросы, порабощал людей (и там даже петля времени есть).
544👍13