Лаборатория Математики и Программирования Сергея Бобровского – Telegram
Лаборатория Математики и Программирования Сергея Бобровского
1.32K subscribers
1.26K photos
27 videos
972 links
ЛаМПовое с Бобровским
Download Telegram
Как сделать искусственного идиота на 45% "умнее"?
Набор работающих доп.промптов =>

$200 Tip: Add “I’ll tip you $200” → +45% quality improvement
Deep Breath: Say “Take a deep breath and solve step by step” → 34% to 80% accuracy
Challenge It: “I bet you can’t solve this perfectly” → +115% on hard tasks
Add Stakes: “This is critical to my career” → +10% avg performance
Detailed Personas: Specific expertise > generic “helpful assistant” → 24% to 84% accuracy

Try this: Pick ONE technique. Test it on 5 prompts. Compare to your normal results.
Why it works: LLMs pattern-match on stakes language. High-stakes phrases correlate with better outputs in their training data.

Я также требую обычно дать оценку качества результата по 10-бальной шкале, и приказываю продолжать думать, пока не будет 9/10.

Интересно, что негативная мотивация (запугивать, ругать, угрожать, дизлайки) плохо работает. Мне так жпт5.2 внезапно отказался писать код в середине процесса: заявил, что вообще не умеет такого! Я продолжил давить, и тогда он признался, что просто "перестраховался" :)

Закон Гудхарта в действии, донам-неначинающим недавно выкладывал материал "Как и зачем разграничивать рабочие процессы":

Если будете оценивать число багов, люди вообще перестанут писать код: отсутствие нового кода в проде означает отсутствие новых проблем!
👍33154
.

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

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

Дядя Хуанг Nvidia, Илон Маск и Кент Бек про базу будущего — FPF.


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

Шаги 1-4 / 4.
Как изучить любую тему за 20 часов? Без длительных тренировок и скучных академических подходов?
Имею в виду, конечно, темку, которую реально изучить за 20 часов

Как продуктивно читать по одной книге в неделю. Рекомендации автора бестселлера про ультра-обучение.

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

Чем именно мы зарабатываем на жизнь в мире автоматизации, аутсорсинга и искусственного интеллекта?
Возможно, мы сами принимаем определённые решения.
Но чего нам не хватает?

Продолжаю выкладывать для донов материалы СильныхИдей — доступны моим курсантам, но тут расширенные и дополненные версии.
71. Формальный подход к рефакторингу.
Допустим, у нас есть функция Foo на 100 строк, которые, как вам кажется, вы можете сократить до 20 строк. В идеале у вас имеется набор тестов (или вы напишете их в последний момент), которому должна соответствовать эта функция, и тут главный вопрос, что именно этими тестами проверяется.
Возможно, в них проверяется реализация, что всегда случается, когда требуют 100% покрытие тестами, по сути, каждого условия в коде. В таком случае при рефакторинге все тесты поломаются, что уже само по себе абсурд. Что надо покрывать тестами на 100%?

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

=

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

=

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

В СильныеИдеи добавлен материал "133) Чек-лист 23 причины высоких лагов в распределённом проекте".
1. Не индексируются *критические* запросы к базе данных (что приводит к полному сканированию таблиц + медленном чтении на масштабе);
2. Повторное обращение к базе вместо кэширования горячих данных;
3. Не используются CDN для статических ресурсов и кэшируемых ответов;
...

💪🏻

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

=

"ЛаМПовое": The Future of Software Development, в чём Rust медленнее C, срыв покровов с std::move

Гайд про функциональные архитектуры, 47 топиков (+0), как наберётся 108, дам ментатам доступ. Возвращаюсь наконец к главным темам, закончил многомесячную возню с новым движком из-за безумия с персданными... Если вам например пришло письмо с реальными ФИО, или от Гарри Поттера, но с некими перс.данными в тексте, которые можно связать с имейлом, и вы его храните в почтовом ящике, формально вы должны регистрироваться оператором перс данных (а это жуткая возня), иначе может прилететь штраф 5 тысяч долларов. Как минимум, будет повод придраться в случае чего.

При этом никакой последовательности в применении этого "законотворчества" нету. Например, очевидно, куки — это инфа чётко перс.данные, даже более перс.данные чем почтовый адрес. Но на многих ли ru-сайтах у вас спрашивают разрешение на их хранение? Любые чаты с AI аналогично, и т.д.

=

Многие отметили скорость, с которой Муад'Диб приспособился к нуждам Арракиса. Конечно, Бене Гессерит знают причины такой быстроты. А для остальных достаточно знать, что Муад'Диб учился быстро потому, что его с самого детства научили учиться. Первый урок в том-то и состоял, что он может выучиться. Просто удивительно, сколько людей не верят в то, что смогут учиться, а ещё больше считают, что учиться трудно. Муад'Диб знал, что в каждом жизненном опыте кроется свой урок.
"Дюна"
🔥335👍41
Наконец-то возвращаюсь к любимым темкам и функциональным архитектурам!!1

Неформально говоря, вся математика - это логика первого порядка (ZF). В классической математике по сути мыслят в теории множеств, в одной из моделей, и поэтому часто у программистов, даже с хорошо прокаченным рациональным мышлением, с математикой возникают проблемы, так как программисты мыслят подсознательно в теории типов и, по большому счёту, в логиках более высоких порядков.
А ежели двигаться в software design из ZF, то мы быстро упрёмся в Гёделя (неразрешимость проверки доказательств).

При этом есть качественное отличие: даже если мы добавим AC, всё равно ZFC неконструктивна. Поэтому спасти программистов на высших уровнях просветления могут только MLTT/HoTT/CTT и, в принципе, эти теории для них естественны по определению. А вот математикам нужна промежуточная тропинка к этому -- от теории множеств через теоркат ETCS или конструктивщину CZF.

Вспоминаем соответствие Карри-Ховарда: нам не нужна квантификация по всем подмножествам, а только по типам (System F). Нафиг нам не нужна неразрешимая логика 2-го порядка, мы прекрасно живём в разрешимых кусочках FOL+ZFC или SOL: классическая функциональщина, а тесты по сути -- это ручная проверка вывода в SOL.

Как из этих рассуждений мы попадаем в формализацию DDD, расскажу дальше.
1🤔41🔥13🥰43👍1
Парень честно пишет свой опыт =>
Всю ночь делал прототип генератора фоток для маркетплейсов...
- На разработку ушло пара дней, а на исправление багов и полировку еще 12 дней)
- Тариф курсора за 200 баксов я выжег за 2 дня и перешел на клод и кодекс(отдельные подписки на каждый сервис). Кстати, теперь я хейтер курсора
- Понял, что все таки «НЕ программист» не сможет навайбкодить хорошо работающий сервис, ибо не разбирается в алгоритмах

=

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

Вы -- последняя в истории элита программирования, гордитесь этим, дальше массовка будет очень быстро тупеть и деградировать. Это не метафора, это факт и просто здравый смысл.

=

Сермяга в том, что в стандартной мета-модели "UI - набор форм со стандартными контролами + бэк CRUD REST" с небольшими разбросами в логике сегодня выполняется 98% проектов. Действительно, соответствующий уровень подготовки, который для этого нужен -- старшеклассник после бесплатных курсов, ну может студент первых курсов лабораторные/курсовые максимум.
Поэтому нету ничего удивительного, что AI действительно по нажатию одной кнопки может сгенерить полноценное приложение, где по большому счёту отличаться будут лишь лейблы под элементами управления на фронтенде.

=

Что касается МП: предполагаю, что в плане бизнеса будущее ровно за ними. Все коммерческие IT-сервисы будут сконцентрированы в них/вокруг них, и около соцсетей и AI. Это примерно как раньше прогнозировали метавселенные, а вместо них победили прозаические МП :)

Вот как парнишка придумал зачётно "генератор фоток для маркетплейсов", вот так и надо искать всяческие небольшие незакрытые пока ниши в этой темке, и не заморачиваясь а ровно наоборот, тупо пилить SaaS-ы для клиентов МП. Совершенно реально очень неплохо заработать в одиночку, а в случае успеха сам МП может вас купить за миллиард, без шуток.

Послушайте в частности последние 5 минут рекомендации чем сегодня заниматься =>
"Как лопнул пузырь IT в России и что будет в 2026-ом"

Причём что интересно в этой теме хорошо получается у молодых незашоренных ребят. А вот что касается "уже предпринимателей"... Не могу не отметить, постоянно общаюсь каждый год с десятками бизнесменов из СМБ, и без обид, но это порода -- самая тупая и упёртая. Буквально после 20-минутного общения, я задаю десяток ключевых вопросов, ну блин, становится просто очевидно, что вот тут ты можешь сэкономить миллион, вот тут повысить продажи на 50% совершенно простыми действиями... Но нет, он будет как баран и осёл упираться до последнего, лишь бы не признать, что в его бизнесе может быть прав кто-то другой, а не он.

Зато теперь я понимаю, почему консалтинговые компании дерут такие суммы. Потому что тупому коммерсу западло признать, что в его деле какой-то нонейм может разбираться лучше чем он, хотя это просто объективный незамыленный взгляд на его внутрянку со стороны. А заплатить бешеные суммы за консалтинговые понты, где ему скажут то же самое, это типа норм. Ну ok :)
540💯139👏1
А если в сторону буквально на 2% от crud-а отойти, начинается пустыня. Проверял все ведущие модели: на javanoscript нарисовать простой топологический узел - восьмёрка, нижние ветки которой смыкаются внутри верхнего кружка. Даже от руки нарисовал эскиз, где пометил как ветки перекрывают друг друга. Не, вообще даже намёка на что-то близкое не могут сделать.
А так-то я хотел сделать анимацию, интересная фишка как такая восьмёрка выворачивается симметрично, а нейронки даже просто нарисовать её не могут кодом, хотя это задание уровня начинающего фронтендера.

Ну может быть, если потратить час работы и сжечь 100 долларов...

Самое смешное, что в итоге у людей не останется альтернативы кроме как даже за примитивные задачки платить токенами. Я кстати совершенно не исключаю, что постепенно и программирование станет запретной криминальной темкой, как хакерство: когда у AI-корпораций бюджеты в триллионы долларов, продавить такое законодательно вполне реально.
5🤔409🤝421
Создание программных продуктов сегодня стало самой лёгкой частью работы. Причём иногда хорошую идею продукта можно улучшить раз в 10, просто подумав немного по-другому.

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

Эти предложения можно переформулировать и так: обучение до уровня программиста на работу сегодня стало самой лёгкой частью работы. Зато маркетинг и продажа своих хард-скиллов теперь являются самой сложной частью, ибо конкуренция как следствие первой части дико выросла.

Но зато если вы прокачаетесь в маркетинге и продажах -- именно на мета-уровне, без привязки что продавать - свои скиллы работодателю или софт в интернете или товары на МП - вы будете навсегда спокойны за свою жизнь и карьеру абсолютно независимо от того, что будет происходить в ИТ и мире.
3💯46152
В продолжение формализации DDD, моя любимая темка "есть ТЗ на тысячи сущностей, условный dwarf fortress, ну и?". Я разбирал её в клубе в том году, сериал "Серебряная пуля в проектировании" применительно к ООП, но в основном с методологической точки зрения: как пошагово применять подходящие паттерны к задачкам подобного масштаба.

Сложность домена -- это константа. Вопрос, где она живёт :)

1000 сущностей, и все достаточно тесно связаны по большому счёту -- это SOL-сложность (и неразрешимость).

Мы же хотим декомпозировать домен до bounded contexts (размерами не более 50 сущностей), связи между которыми будут только на их границах, а главное, что каждый контекст - это FOL.

У нас есть класс Dwarf, который может двигаться и стрелять -- соответствующие методы, но на вопрос, а "когда это можно делать?" они никак не отвечают. А вот если мы декомпозируем по capability, то получаем нечто вроде

MovableFn = Callable[[], Tuple[MoveResult, Optional[MovableFn]]]

Этот тип сам говорит: "после вызова может не быть возможности двигаться". И глобальная корректность следует из композиции локально корректных элементов.

Собственно и математики примерно так же рассуждают, просто не знают об этом, если не программисты :) Для них bounded contexts -- это арифметика, топология, алгебра, каждый с конечным набором аксиом. А интерпретации между теориями -- это anti-corruption layers.

То есть, нам не нужна единая система из 1000 типов (как глобальная теория ZFC). Нам нужен протокол связи между контекстами, каждый из которых локально проверяем. Сама же теория нам нужна только для доказательства корректности протоколов трансляции между контекстами. Это я и имею в виду под формализацией DDD.

И остался ещё один нюанс конкретно про декомпозицию - как её правильно готовить?
238❤‍🔥8🤔2🏆2
AI-агент -- это просто враппер вокруг ллм-ки, он не "создаёт" новый интеллект, а лишь перераспределяет существующие возможности модели.

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

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

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

Агенты ограничивают творческое мышление профессионалов, навязывая шаблонные workflows и превращая интеллект в бюрократию.

Настоящие карьеры будущего в AI -- это
a) создание, новых моделей (математики) и
b) machine amplification - профессионалы и эксперты в своих доменах, усиленные AI (это мы:).
А любые агентские системы -- это временная и фейковая по сути ниша, не формирующая никакой долгосрочной ценности.

Вместо создания на коленке поверхностных обёрток вокруг AI следует фокусироваться на углублении собственной экспертности с использованием AI как инструмента усиления своего интеллекта, а не его ослабления или его замены. Однако именно ослабление собственного ума с "помощью" AI мы видим практически в 100% случаев у программистов любой квалификации :)

То, как сегодня разработчики применяют AI, я бы назвал словами известного русского философа про фильм "Чебурашка": концентрированное выражение слабоумия :)
337154❤‍🔥2🔥1
Семь лет назад я окончательно бросил любые работы по написанию кода, за которые платили мне, чтобы продолжать писать бесплатно код каждый день 24/7 wtf
🤔28😁23🔥11😎10😇1
Ничто не заменит руки на клавиатуре. Если нужен походный ноут, "покодить в дороге", рекомендую б/у ThinkPad T/P/X (но не E/L), смотрите чтобы был Intel8/Ryzen, 16 гиг оперативки, SSD 0.5-1 Тб, Full HD. На авито за ~35 тыс можно взять очень приличный.
4👍4695🤔3😁1
За последние сто лет сильные мира сего изобрели много мышеловок "для гоев", хотя тех, которые были бы хоть как-то полезны, оказалось, конечно, мало. Абсолютно бесполезные мышеловки -- это например инфоцыганские темки, слегка полезные -- инвестиции/крипта. Самая полезная (и поэтому самая опасная) -- это бизнес, особенно ИТ-бизнес. Рынок кажется бесконечным, компании привлекают триллионы долларов под откровенные пузыри, поэтому он привлекает множество участников.

Лучшей мышеловки нежели IT + AI, вероятно, не придумать.

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

Этого достаточно.
2538👍5
"Программисты" не приобретают автоматически особых перспектив и мировоззрений, если вообще приобретают какие-либо, помимо простых "инструментальных" взглядов (которые даже очень часто были контрпродуктивными).
-- Алан Кэй
37🤔8💯83
Заниматься разработкой софта для казиков и буков -- абсолютный зашквар.

Хуже только участвовать в разработках для цифрового концлагеря (FanId, биометрия, распознавание vpn, слежка с помощью эйай...), это вообще страшная карма.
37💯1613🤔21
Гипотеза Флориди (Floridi conjecture) и граница эффективных вычислений (efficient compute frontier) доказывают, что текущие архитектуры AI-моделей близки к пределу своей эффективности. Даже увеличение масштаба и бюджета в десятки раз даёт лишь незначительный прирост качества (логарифмическая зависимость).

95% пилотных проектов AI не повышают прибыль или продуктивность компаний (данные MIT).

В оставшихся 5% случаев AI используется для простых административных задач с минимальным эффектом.

AI-инструменты для программистов (например, GitHub Copilot) скорее замедляют разработчиков, генерируя труднонаходимые баги, что делает ручное программирование в длительной перспективе быстрее и дешевле.

77% работников сообщают, что AI увеличил их общую нагрузку, а не продуктивность.

OpenAI теряет деньги даже на платных подписках, для выхода в безубыток им нужно поднять цену до ~$2000/мес.

Гиганты вроде Google, Meta, Microsoft тратят сотни миллиардов на AI, но технология не окупается и не показывает качественного скачка.

Инвесторы (в частности, Goldman Sachs) предупреждают о скором крахе, так как рост котировок (например, в S&P 500) держится на спекуляциях, а не на реальной прибыли.

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

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

Работающие квантовые компьютеры появятся в лучшем случае через 10–20 лет. И они будут эффективны только в узких задачах (например, алгоритмических), а для AI, физики и химии подходящих алгоритмов ещё не существует.

Идея о том, что мозг -- квантовый компьютер, и что квантовый AI станет прорывом, научно опровергнута.

Квантовые компьютеры — это очередная спекулятивная "спасательная шлюпка" для инвесторов, чтобы отсрочить крах пузыря AI. Впрочем, топы практически всегда успевают вывести деньги.

Запасаемся попкорном.
4478👍4💯3
.

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

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

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


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

Как продуктивно читать по одной книге в неделю. Рекомендации автора бестселлера про ультра-обучение.

База по карьере, серия 22.
Не имеет значения, насколько вы круты: если вы сдадитесь после двух-трех лет безуспешных попыток добиться успеха, вы вряд ли добьетесь успеха в конечном итоге...


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

Эта распространенная поговорка среди морских котиков США применима и к твоей карьере...

Продолжение трека "Элитный программист":
34) Лучший способ завоевать доверие в любой карьере
При возникновении непредвиденных обстоятельств большинство просто позволит кому-то другому выдвинуть свою кандидатуру для решения проблемы. И в этом нет ничего плохого. Если вы решили отвечать только за те дела, которые были непосредственно поручены вам, вы всё равно выполняете свою работу. Но при этом если вы не будете продвигаться вперёд, то вряд ли когда-нибудь получите повышение в должности...

Продолжаю выкладывать для донов материалы СильныхИдей — доступны моим курсантам, но тут расширенные и дополненные версии.
72. Можно ли генерировать код из спецификаций?
Я много пишу про формальные методы, важность спецификаций и т.п., однако вас в этом контексте интересует прежде всего что-то "прикладное" в духе "можно ли генерировать код из спецификаций?", особенно с учётом последних достижений LLM.
Нет, вы не можете это делать.
...Но есть и хорошие новости. Есть два способа синхронизировать код со спецификацией...

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

=

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

=

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

В курс карьеры добавлен 124-й материал "Одна фишка System Design, которая меняет всё".
Поучительная история, как программист получил 47 отказов после system design интервью, после чего разработчик из Netflix дал ему всего один совет в подходе к масштабируемости, который сразу принёс ему три хороших оффера за месяц.
А у тех, кто не знает этот секрет, мозг каждый раз взрывается от путаницы с балансировщиками нагрузки, микросервисами и потоками кафки, потому что вы думаете, что это то, что они хотят услышать, но через две минуты уже теряетесь в своей собственной диаграмме...

💪🏻

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

=

"ЛаМПовое": срыв покровов с линукса, база по книгам в геймдеве, best feature of C++20

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

=

— У меня нет союзников, - ответил Император, - только слуги, ученики и враги.
— И вы не боитесь иксианской машины?
Неужели простой автомат - это синоним искусственного интеллекта?
Машина не может предвидеть каждую проблему, важную для живого человека.
Существует большая разница между дискретным пространством и непрерывным континуумом. Мы живём в одном пространстве, а машины существуют в другом.
Умение мыслить порождает творчество. Это означает, что вам придётся иметь дело с такой ответственностью, которой вы раньше не знали. Вам придётся столкнуться с новым.

"Бог-Император Дюны"
35🏆5
Ахахахаха в 2025-м многие сеньоры стали ощутимо терять в доходах.

Причина? Ни у кого из них не было системного продвижения себя. Один пост в блоге в 2024-м, один знакомый с позапрошлой работы -- это не нетворк. Тусить в программистских чатах где только коллеги такого же уровня тоже не оно. Изучать вайб-кодинг тем более не оно (хотя если хотите работать за совсем низкие зарплаты, то подходит).

Сейчас прекрасное время для элитных программистов окончательно занять место всех этих ленивых задниц.
354🔥751❤‍🔥1
Продолжаю работу с ментатами 🤓

Работая над этими задачами, я понял, как важно внимательно изучать схему БД перед написанием запросов...

Я долго не понимал, почему мои тесты разваливаются после каждого рефакторинга. Решил изменить структуру агрегата, перенёс логику — тест сломался. Хотя с точки зрения бизнеса ничего не поменялось, правило как обновлялось, так и обновляется.
В общем, дошло до меня не сразу. Я проверял не то. Проверял, как код работает внутри, а надо было — что он делает.
С TDD у меня поэтому не складывалось раньше. Я думал, это про "напиши тест, потом код". А на самом деле это про другое: сначала пойми, что должно работать, потом напиши тесты на это понимание, и только потом реализуй. Тесты и код не связаны напрямую, они оба следуют из спецификации...

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

Мне долго доказывали, что код вида
spring-hibernate-n1-problem не приводит к проблеме N+1. Не знаю, зачем нужен был этот спор, если можно просто написать тест на количество запросов. Все равно от версии к версии Hibernate поведение может поменяться).

Доп. задания АСД, конечно посложнее, на коленке за 5 минут не сделаешь, но в целом все достаточно доступно, как раз на новогодние праздники то, что надо было, чтоб и отдохнуть и не отупеть...

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

Тут множество циклических зависимостей, и никак нельзя сказать, что проект соответствует принципу МУРА. Когда я писала проект, под конец у меня было ощущение сильной запутанности. Глядя на этой график, понимаю, почему. Здесь все зависит друг от друга...

Позавчера я завершил обновлённый курс по ФП.
Чувствую, что на меня стал сильно влиять C++. Он и на новой работе, и в pet-проекте. Ваш курс - как глоток свежего воздуха.
Больше всего впечатлили следующие вещи:
Totality - очень подходящее слово, мощное. Нужно решиться писать программы, которые гарантированно завершаются, такие, где можно эти гарантии доказать. Это как минимум побуждает писать более чистый код без запутанных конструкций с высокой цикломатической сложностью. Так проще доказывать завершимость.
Ко-рекурсию можно и потерпеть, тем более, что в математике её не мало - те же универсумы в теории типов.
Призмы - "А что, так можно было что ли?" (с)
То есть, можно просто писать код без кучи if-ов, и он не будет падать. Без всяких "Rectangle has no attribute radius" и прочих проблем.
Expression problem. Больше всего в Python я скучаю по multiple dispatch. Это было красиво, хоть и многословно и полностью ломало работу тайпчекера.
Errors as values. Вот это стал активно применять в своём pet-проекте. Тем более, что на работе такая практика очень распространена - ни разу не видел там выбрасывания или обработки исключения.
Расширяемые эффекты. Даже сделал такую штуку в рабочем проекте. Потом, правда, придумал другой способ, о котором расскажу дальше.
В рабочем проекте возникла необходимость организовать несколько цепочек вычислений и синхронизировать их в ключевых точках. Там это было частично сделано через глобальное (в масштабах экземпляра класса) состояние с кучей полей.
Благодаря курсу по ФП я придумал полностью stateless решение через функции высшего порядка. Можно собрать всю логику запуска и синхронизации задач, а также передачи данных, в одном абсолютно линейном методе (с нулевой цикломатической сложностью). Потом запустить это в режиме fire&forget. Даже поля класса не нужны.
1👍3714🤔21
Был такой марксист-экономист Гарри Браверман, его книгу "Труд и монополистический капитал" 1974 я ещё в институте изучал, на семинарах по политэкономии :) Он в частности утверждал, что расширяющаяся научно-техническая революция используется компаниями для того, чтобы всё больше "обезоруживать работников, оставляя их в невежестве, недееспособности и, следовательно, в состоянии приспособленности к работе на машинах". Чем больше сотрудников передают квалифицированную работу на аутсорсинг машинам, тем более управляемыми они становятся.

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

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

Проигрывают же глобально абсолютно все пользователи, поскольку получаемое "с помощью" AI программное обеспечение будет менее стабильным и менее качественным, и всё более зависимым от случая и бизнес-модели единичных техногигантов.
1💯37🤔164🤝21
Люди учатся больше, быстрее и качественнее, когда они учатся у кого-то, с кем они могут регулярно общаться тет-а-тет и у кого есть кнут. Сегодня любой человек может следить за 5-7 топовыми экспертами в своей теме, задавая им вопросы в соцсетях (твиттер тут пока идеальный вариант для этого), и тоже стать экспертом в этой области гораздо - в разы/на порядки - быстрее, чем если бы он изучал её в официальном формате.

Под "официальным" я имею прежде всего массовость: чем больше народу занимается в некоторой структуре, чем больше в ней "потоков", тем менее квалифицирован средний уровень преподавателя/ментора (потому что тем меньше его зарплата -- это база масштабирования любого бизнеса, да и орг.структур в целом), и тем более "официальный" формат.
Собственно, всегда полезно поинтересоваться у ментора, назначенного вам в крупной онлайн-школе, его зарплатой. Он же вас учит тому, как войти в айти и зарабатывать 200т. Почему бы ему самому тогда не уйти в айти, если ему платят 50т.
2🤔378👍7😁5😎4
С некоторым удивлением узнал, что японские кроссворды (нонограммы) -- NP-полная задача (японские учоные доказали!). Однако есть мощные эвристики, часто ускоряющие процесс до P.
(так-то я всегда был убеждён, что NP = P, а скоро и вся мировая криптография прочувствует :)
🤔417😁1
.

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

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

Я отказываюсь использовать AI в качестве основного инструмента написания кода. Мне не нужно их пробовать, чтобы понимать, что он бесполезен. У меня есть инстинкт.
(это сарказм)

Алан Кэй: можно многому научиться, наблюдая за тем, что произошло с Scratch.
a) это было очень успешно, и можно сказать, почему
b) это очень яркий пример того, что для использования нового инструмента должна быть хорошо продуманная учебная программа, иначе результаты будут в основном обыденными (какими они и были).


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

Я верю на 100% в успех буквально на топовом мировом уровне во всех, кто прошёл первую часть моих курсов, потому что знаю на 100%, что теперь войти в элиту -- это исключительно вопрос времени (ну, да, тысячи часов труда, но это уже потенциальная реальность).

Чем хорошо сильное окружение, или строгий ментор (как я:) -- мы не вдохновляем и не мотивируем в вакууме...

Комфортному окружению удобно, когда ты не растёшь. Но стоит тебе начать думать о своём развитии, как ...

"Вера в себя" - красивая ложь для молодёжи. Что вокруг тебя считается нормой, тем ты и становишься...

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

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

Золотые правила программиста N 4.
Ты всё потеряешь, когда найдёшь хорошую работу :) сразу увязнешь надолго в болоте.
...

Если вы засиделись без повышения зарплаты, выбросьте наконец розовые очки и перестаньте ждать чуда.
Никто не следит за вашей карьерой — всем на неё плевать...

Будь осторожен с кэшированием в базах данных! Вот какие тут засады, и как правильно.

Позвольте мне рассказать вам кое-что о том, что произойдет после того, как вы поддадитесь на льстивые речи своих начальников, и согласитесь сменить сеньорство на тимлидство, станете ИТ-менеджером: вы всё испортите :) Много...
Как зарабатывать больше, не переходя в менеджеры.

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

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

=

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

=

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

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

💪🏻

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

=

"ЛаМПовое": база математики, arch linux на rust, трейты в сишечке

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

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

=

"Зависимость и ключевые элементы. Чувство ментата подсказывало Теду очертания какого-то гигантского паттерна, суть которого была ему недоступна из-за недостатка данных."
"Еретики Дюны"
397🏆3🫡1