Я мощно расширил первый гайд по ФП -- добавил 27 новых понятий/паттернов, которые превратили тему не только в функциональное программирование, но и в функциональное проектирование.
Жутко доволен, потому что получил инсайт:
если в ООП вам в принципе не обойтись без глубокого погружения в тему объектно-ориентированного анализа и проектирования и изучения толстенных книг, иначе ваш проект будет стабильно запутываться уже на первых двадцати классах, а трудоёмкость внесения новых фич взлетит экспоненциально,
то в ФП достаточно просто следовать паре десятков паттернов, чтобы автоматически выйти на уровень правильного проектирования, сохраняя сложность проекта линейной.
Make Illegal States Unrepresentative.
Типы как ограничители.
Вместо комментария "значение должно быть > 0" → тип PositiveInteger.
Вместо if (user != null) → тип NonOptionalUser.
Ликвидация runtime-ошибок.
Нет NullPointerException, ValueOutOfRange — компилятор их блокирует.
Моделирование домена в типах + типы -- это документация.
Компилятор-союзник проверяет бизнес-правила статически.
Код следует за моделью, а не наоборот. Архитектура определяется не фреймворками, а инвариантами домена.
Тесты концентрируются на логике, а не на проверке "а что если null?".
Рефакторинг безопасен: изменения типов "ломают" код точечно и на уровне компиляции.
Доменные эксперты визуально понимают код с выразительными типами:
Бизнес-логика переходит из умов постановщиков и разработчиков → в систему типов как отображение домена 1:1 → в работающий код.
=
Собственно по этой причине и книг-то по функциональному проектированию единицы -- по большому счёту они и не нужны, в отличие от объектного, и тем более императивного программирования. То есть по сути мы повышаем мастерство, не прокачивая скиллы(но если конечно их ещё и прокачать в функциональщине и кампутер сайнсе, выигрыш вообще будет на порядки) .
А глупенькие так и продолжат учить понятие классов, работу с памятью, и прочую убогую скриптовую по сути чухню для школоты, застывшую на уровне 1975-го года.
Жутко доволен, потому что получил инсайт:
если в ООП вам в принципе не обойтись без глубокого погружения в тему объектно-ориентированного анализа и проектирования и изучения толстенных книг, иначе ваш проект будет стабильно запутываться уже на первых двадцати классах, а трудоёмкость внесения новых фич взлетит экспоненциально,
то в ФП достаточно просто следовать паре десятков паттернов, чтобы автоматически выйти на уровень правильного проектирования, сохраняя сложность проекта линейной.
Make Illegal States Unrepresentative.
Типы как ограничители.
Вместо комментария "значение должно быть > 0" → тип PositiveInteger.
Вместо if (user != null) → тип NonOptionalUser.
Ликвидация runtime-ошибок.
Нет NullPointerException, ValueOutOfRange — компилятор их блокирует.
Моделирование домена в типах + типы -- это документация.
Компилятор-союзник проверяет бизнес-правила статически.
Код следует за моделью, а не наоборот. Архитектура определяется не фреймворками, а инвариантами домена.
Тесты концентрируются на логике, а не на проверке "а что если null?".
Рефакторинг безопасен: изменения типов "ломают" код точечно и на уровне компиляции.
Доменные эксперты визуально понимают код с выразительными типами:
Бизнес-логика переходит из умов постановщиков и разработчиков → в систему типов как отображение домена 1:1 → в работающий код.
=
Собственно по этой причине и книг-то по функциональному проектированию единицы -- по большому счёту они и не нужны, в отличие от объектного, и тем более императивного программирования. То есть по сути мы повышаем мастерство, не прокачивая скиллы
А глупенькие так и продолжат учить понятие классов, работу с памятью, и прочую убогую скриптовую по сути чухню для школоты, застывшую на уровне 1975-го года.
14❤51😁10👍7❤🔥1😎1
странно, насколько мы доверяем множеству компаний в том, что они "надёжно" (на словах) сохраняют наши приватные данные на неопределённый срок, чтобы мы могли получить к ним доступ из любого клиента в любой точке мира.
каждый день вы должны бороться с цифровым обществом, пытающимся сделать из вас бота.
каждый день вы должны бороться с цифровым обществом, пытающимся сделать из вас бота.
✍44❤12🤔6🫡5⚡1
.
Земля уничтожена. Извените, я ошибся.
Ваш AI
Нахрен цифрообщество.
=
ЖПТ насколько примитивен, что факт его писанины сегодня достаточно легко ловится просто по стилю, по структуре фраз и абзацев, и т.д. Можно даже достаточно точно сказать, какая модель использовалась. В данном случае это скорее всего клод (или дипсик): он любит глагольные связки типа "делайте так - получится вот так", и стабильно нарушает правила русского языка: не ставит знаки препинания в конце каждого понятия из списка, а слово после дефиса начинает с заглавной буквы.
Земля уничтожена. Извените, я ошибся.
Ваш AI
Нахрен цифрообщество.
=
ЖПТ насколько примитивен, что факт его писанины сегодня достаточно легко ловится просто по стилю, по структуре фраз и абзацев, и т.д. Можно даже достаточно точно сказать, какая модель использовалась. В данном случае это скорее всего клод (или дипсик): он любит глагольные связки типа "делайте так - получится вот так", и стабильно нарушает правила русского языка: не ставит знаки препинания в конце каждого понятия из списка, а слово после дефиса начинает с заглавной буквы.
😁54💯12❤3
Отзыв от СНС по "Гомотопической теории типов для программистов":
Вводная часть далась мне довольно легко, благодаря хорошей математической базе.
Совершенно новой в этом разделе оказалась только тема топологии. Она же была для меня самой интересной. Это же надо было додуматься определить топологию (непрерывность, связность и близость) через открытые подмножества! А ведь это позволяет использовать в дискретных системах (например - графах) эти математические понятия, которые кажутся характерными именно для плотных множеств.
Пи-типы и Сигма-типы объяснены очень хорошо. Теперь я, наконец, понимаю что написано в соответствующих разделах фундаментальной книги по HoTT от Univalent Foundations. Забавно, что я когда-то почти "открыл" Пи-типы, размышляя о шаблонах в C++ с точки зрения ФП.
Часть со змейкой далась тяжело.
Для того, чтобы применить N-тор для игрового поля, мне пришлось изменить его метод canonical_form, сделав поведение похожим на соответствующий метод для окружности.
Я так и не смог в полной мере использовать Path для поиска пути в демо-режиме: то решение, которое я увидел, потребовало бы слишком сильного вмешательства в существующий код. В моём решении путь пересчитывается после каждого шага, и от этого поведение змейки кажется более "живым", она даже может столкнуться со своим хвостом.
Да, потому что прикладной кодинг -- это уже темка software design, хотт просто даёт нам самые мощные на сегодня абстракции; дальше берусь за проектирование в контексте хотт/ctt.
Горжусь! 💪🏻
99,999999% программистов никогда в жизни не получат доступ к таким знаниям )
В целом, поразительно, что 98% разработчиков буквально забивают на свою карьеру, на своё развитие -- на самого СЕБЯ! застывая в липкой паутине бесконечной череды унылых рутинных рабочих задачек для дяди-паука. А профессий в ИТ, которые ещё будут пользоваться спросом, всё меньше и меньше, а специфических знаний для них требуется всё больше. Например, спрос на джуна-бэкендера вообще умер (а вот на крепкого миддла с жпт и хорошим системным мышлением наоборот мощно растёт).
p.s. Работая на одного дядю, не забывайте, что ваша работа в одном электронном письме от того, чтобы исчезнуть с завтрашнего дня.
p.p.s. Цук на днях предложил миллиард долларов ai-разработчику, а тот не согласился :)
p.p.p.s. Айтишка сегодня — это игра с нулевой суммой. Если вы теряете работу, это означает, что кто-то (или что-то) делает это лучше вас, быстрее вас или дешевле вас.
Всё, что имеет значение лично для тебя — это как быстро ты адаптируешься к качественно новой волне знаний и скиллов в итэ, чтобы просто оставаться конкурентоспособным — или же так и будешь зрителем, и за считанные годы получишь в ИТ полный бан.
Вводная часть далась мне довольно легко, благодаря хорошей математической базе.
Совершенно новой в этом разделе оказалась только тема топологии. Она же была для меня самой интересной. Это же надо было додуматься определить топологию (непрерывность, связность и близость) через открытые подмножества! А ведь это позволяет использовать в дискретных системах (например - графах) эти математические понятия, которые кажутся характерными именно для плотных множеств.
Пи-типы и Сигма-типы объяснены очень хорошо. Теперь я, наконец, понимаю что написано в соответствующих разделах фундаментальной книги по HoTT от Univalent Foundations. Забавно, что я когда-то почти "открыл" Пи-типы, размышляя о шаблонах в C++ с точки зрения ФП.
Часть со змейкой далась тяжело.
Для того, чтобы применить N-тор для игрового поля, мне пришлось изменить его метод canonical_form, сделав поведение похожим на соответствующий метод для окружности.
Я так и не смог в полной мере использовать Path для поиска пути в демо-режиме: то решение, которое я увидел, потребовало бы слишком сильного вмешательства в существующий код. В моём решении путь пересчитывается после каждого шага, и от этого поведение змейки кажется более "живым", она даже может столкнуться со своим хвостом.
Да, потому что прикладной кодинг -- это уже темка software design, хотт просто даёт нам самые мощные на сегодня абстракции; дальше берусь за проектирование в контексте хотт/ctt.
Горжусь! 💪🏻
99,999999% программистов никогда в жизни не получат доступ к таким знаниям )
В целом, поразительно, что 98% разработчиков буквально забивают на свою карьеру, на своё развитие -- на самого СЕБЯ! застывая в липкой паутине бесконечной череды унылых рутинных рабочих задачек для дяди-паука. А профессий в ИТ, которые ещё будут пользоваться спросом, всё меньше и меньше, а специфических знаний для них требуется всё больше. Например, спрос на джуна-бэкендера вообще умер (а вот на крепкого миддла с жпт и хорошим системным мышлением наоборот мощно растёт).
p.s. Работая на одного дядю, не забывайте, что ваша работа в одном электронном письме от того, чтобы исчезнуть с завтрашнего дня.
p.p.s. Цук на днях предложил миллиард долларов ai-разработчику, а тот не согласился :)
p.p.p.s. Айтишка сегодня — это игра с нулевой суммой. Если вы теряете работу, это означает, что кто-то (или что-то) делает это лучше вас, быстрее вас или дешевле вас.
Всё, что имеет значение лично для тебя — это как быстро ты адаптируешься к качественно новой волне знаний и скиллов в итэ, чтобы просто оставаться конкурентоспособным — или же так и будешь зрителем, и за считанные годы получишь в ИТ полный бан.
1✍54❤10👍7😁1💯1
.
Облако драгоценностей за неделю.
Основной паблик:
Разбираемся на практике, почему слабое связывание (loose coupling) — это ПЛОХО (в 100% учебников, курсов, университетов вас учат ровно противоположному: loose coupling — это ХОРОШО).
Заключительное: засада со структурой проекта.
Предыдущие серии:
Засада со слабым контратом.
Засада с контратом и реализацией.
Засада с неочевидно полезными сущностями.
Засада с валидацией
Засада с микросервисами
Засада с исключениями
Засада с инициализацией
Засада с контроллером
Для донов-начинающих:
Найм сломан, джуны никому не нужны, AI убил программирование...
Не надо изображать из себя беспомощную жертву.
"А что я могу сделать?" - это не взрослое, и уж тем более не мужское поведение.
Одна из самых простых моделей тайм-менеджмента, с которой мы знакомы с самого детства и наверняка применяем как минимум подсознательно — это ...
Для донов-неначинающих:
Золотые правила карьеры разработчика.
2. Почему на работе с тобой обращаются как с рабом? Вроде бы ты так всё норм делаешь и лоялен ...
Продолжение трека "Элитный программист":
31) Нетворк и платформы соцсетей
У вас нет сети контактов? Конечно, есть! У вас когда-нибудь раньше была работа? Тогда у вас есть контакты предыдущих коллег. Вы учились в университете или на курсах? Тогда у вас есть сеть одногруппников по вашей специальности.
Но давайте предположим, что у вас этого всего нет. Вы только что сменили профессию и не поступили в колледж. И что тогда?
Продолжаю выкладывать для донов материалы СильныхИдей — доступны моим курсантам, но тут расширенные и дополненные версии.
Тему SOLID мы очень подробно разобрали, дальше переходим к более сложным темам. Следующий сериал будет по теме проектирования. Начинаем =>
46. Семь неочевидных проектных ошибок
Один из лучших методологических подходов, прекрасно работающий во многих инженерных областях, и в частности, в программировании – это не
"позволять разработчику делать всё, что не запрещено, запрещать по минимуму, и стараться давать свободу творчества",
а наоборот: "не позволять разработчику делать то, что запрещено, и запрещать исходно по возможности вообще всё".
(все старые материалы для донов постепенно сгорают)
=
Первые сериалы из существенно переработанных и улучшенных материалов СильныхИдей (по сути три книги) доступны на бусти ( с 1 августа цена на все ТРИ гайда вырастет):
1. БАЗА программной инженерии
2. Software Design с акцентом на Programming in Small
3. SOLID-25
Сериал "Вайб-проектирование" тоже на неделе выложу для всех.
=
Новые материалы для ментатов Лаборатории.
Дополнил тему функционального программирования десятками новых понятий и паттернов.
Добрался наконец до гайда "Ясные Системы": возможно, он будет последним в моей Лаборатории. Хочу включить в него максимально знаний software design в контексте hott/coc/ctt. Когда будет 42 топика, сделаю доступным сперва для ментатов, потом возможно и для всех. Сейчас готово 4.
Этим летом версия-42 💯 будет готова.
Мы здесь, потому что это трудно.
it's a privilege to do things that are hard.
=
Self-Hack (тайм-менеджер + мотиватор + idle-игра).
Готово 28(+0) уровней из 54 альфа-версии,
этим летом бета-версия 💯 будет готова.
Добавил базовые фишки функциональности: нейродуши за кгбоссов, и перезагрузку Матрицы. Без них выше 30-го уровня не подняться.
Штурм цифрового Олимпа: атака на глобальную сеть стратегических AI, координирующих оборону континентов, орбитальные ударные платформы или климатическое оружие. Это война масштабов: Левиафан использует квантовые вычисления, самообучается за секунды и атакует через инфраструктуру целых стран.
Облако драгоценностей за неделю.
Основной паблик:
Разбираемся на практике, почему слабое связывание (loose coupling) — это ПЛОХО (в 100% учебников, курсов, университетов вас учат ровно противоположному: loose coupling — это ХОРОШО).
Заключительное: засада со структурой проекта.
Предыдущие серии:
Засада со слабым контратом.
Засада с контратом и реализацией.
Засада с неочевидно полезными сущностями.
Засада с валидацией
Засада с микросервисами
Засада с исключениями
Засада с инициализацией
Засада с контроллером
Для донов-начинающих:
Найм сломан, джуны никому не нужны, AI убил программирование...
Не надо изображать из себя беспомощную жертву.
"А что я могу сделать?" - это не взрослое, и уж тем более не мужское поведение.
Одна из самых простых моделей тайм-менеджмента, с которой мы знакомы с самого детства и наверняка применяем как минимум подсознательно — это ...
Для донов-неначинающих:
Золотые правила карьеры разработчика.
2. Почему на работе с тобой обращаются как с рабом? Вроде бы ты так всё норм делаешь и лоялен ...
Продолжение трека "Элитный программист":
31) Нетворк и платформы соцсетей
У вас нет сети контактов? Конечно, есть! У вас когда-нибудь раньше была работа? Тогда у вас есть контакты предыдущих коллег. Вы учились в университете или на курсах? Тогда у вас есть сеть одногруппников по вашей специальности.
Но давайте предположим, что у вас этого всего нет. Вы только что сменили профессию и не поступили в колледж. И что тогда?
Продолжаю выкладывать для донов материалы СильныхИдей — доступны моим курсантам, но тут расширенные и дополненные версии.
Тему SOLID мы очень подробно разобрали, дальше переходим к более сложным темам. Следующий сериал будет по теме проектирования. Начинаем =>
46. Семь неочевидных проектных ошибок
Один из лучших методологических подходов, прекрасно работающий во многих инженерных областях, и в частности, в программировании – это не
"позволять разработчику делать всё, что не запрещено, запрещать по минимуму, и стараться давать свободу творчества",
а наоборот: "не позволять разработчику делать то, что запрещено, и запрещать исходно по возможности вообще всё".
(все старые материалы для донов постепенно сгорают)
=
Первые сериалы из существенно переработанных и улучшенных материалов СильныхИдей (по сути три книги) доступны на бусти ( с 1 августа цена на все ТРИ гайда вырастет):
1. БАЗА программной инженерии
2. Software Design с акцентом на Programming in Small
3. SOLID-25
Сериал "Вайб-проектирование" тоже на неделе выложу для всех.
=
Новые материалы для ментатов Лаборатории.
Дополнил тему функционального программирования десятками новых понятий и паттернов.
Добрался наконец до гайда "Ясные Системы": возможно, он будет последним в моей Лаборатории. Хочу включить в него максимально знаний software design в контексте hott/coc/ctt. Когда будет 42 топика, сделаю доступным сперва для ментатов, потом возможно и для всех. Сейчас готово 4.
Этим летом версия-42 💯 будет готова.
Мы здесь, потому что это трудно.
it's a privilege to do things that are hard.
=
Self-Hack (тайм-менеджер + мотиватор + idle-игра).
Готово 28(+0) уровней из 54 альфа-версии,
этим летом бета-версия 💯 будет готова.
Добавил базовые фишки функциональности: нейродуши за кгбоссов, и перезагрузку Матрицы. Без них выше 30-го уровня не подняться.
Штурм цифрового Олимпа: атака на глобальную сеть стратегических AI, координирующих оборону континентов, орбитальные ударные платформы или климатическое оружие. Это война масштабов: Левиафан использует квантовые вычисления, самообучается за секунды и атакует через инфраструктуру целых стран.
1👍46✍5😁4❤🔥2
А как правильно ↑↑↑ ? Гайд "Ясные Системы" в помощь 🤓
Вы же понимаете например, что Django и Spring Boot — это группоиды, а React + Redux или Spring Cloud — высшие группоиды, что существенно разделяет области их применения? Или что при добавлении новой сущности в систему её надо прежде всего описать как стягиваемый/contractible тип? Или почему для каждого ключевого архитектурного решения надо формально доказать его контрпример? Или что пространство архитектурных решений -- это непрерывный путь между двумя крайними точками - простейшим типовым прототипом и сложной индивидуальной архитектурой, и что именно следует из непрерывности? Или как находить точки сингулярности в архитектуре (где происходят качественные изменения), где локальная структура "схлопывается" или существенно меняется? Ведь именно в этих точках происходит переход от простой архитектуры к более сложной. Или как сохранять гомотопическую эквивалентность поведения системы при масштабировании архитектуры?
Или нет?
Вы же понимаете например, что Django и Spring Boot — это группоиды, а React + Redux или Spring Cloud — высшие группоиды, что существенно разделяет области их применения? Или что при добавлении новой сущности в систему её надо прежде всего описать как стягиваемый/contractible тип? Или почему для каждого ключевого архитектурного решения надо формально доказать его контрпример? Или что пространство архитектурных решений -- это непрерывный путь между двумя крайними точками - простейшим типовым прототипом и сложной индивидуальной архитектурой, и что именно следует из непрерывности? Или как находить точки сингулярности в архитектуре (где происходят качественные изменения), где локальная структура "схлопывается" или существенно меняется? Ведь именно в этих точках происходит переход от простой архитектуры к более сложной. Или как сохранять гомотопическую эквивалентность поведения системы при масштабировании архитектуры?
Или нет?
6🤔54❤11😁6💯1
У Алана Кэя однажды спросили, как лучше изучать system design. Он дал, как обычно, мета-ответ:
"Надо попытаться помочь учащимся перейти от обычных, основанных на здравом смысле (а также неправильных и слабых) представлений о статической стабильности к общей идее о том, что любые стабильности на самом деле -- динамические стабильности, и, следовательно, необходимы какие-либо процессы для поддержания желаемых свойств в пределах допусков и т. д."
По-хорошему, людей лучше не просто кодингу/разработке обучать, а сразу учить формально доказывать корректность системы на третьем логическом уровне.
В целом, system/software design невозможно понять до конца: можно только убедить себя, что ты это как бы "понял". Но чтобы регулярно подниматься в таком трудном понимании, надо быть примерно вот таким (вторая жена Ричарда фон Неймана в заявлении о разводе) =>
"Он начинает решать задачи по математическому анализу в своей голове, как только просыпается. Он занимался анализом, пока ехал в своей машине, сидел в гостиной и лежал в кровати ночью".
Будь как дон Нейман!
"Надо попытаться помочь учащимся перейти от обычных, основанных на здравом смысле (а также неправильных и слабых) представлений о статической стабильности к общей идее о том, что любые стабильности на самом деле -- динамические стабильности, и, следовательно, необходимы какие-либо процессы для поддержания желаемых свойств в пределах допусков и т. д."
По-хорошему, людей лучше не просто кодингу/разработке обучать, а сразу учить формально доказывать корректность системы на третьем логическом уровне.
В целом, system/software design невозможно понять до конца: можно только убедить себя, что ты это как бы "понял". Но чтобы регулярно подниматься в таком трудном понимании, надо быть примерно вот таким (вторая жена Ричарда фон Неймана в заявлении о разводе) =>
"Он начинает решать задачи по математическому анализу в своей голове, как только просыпается. Он занимался анализом, пока ехал в своей машине, сидел в гостиной и лежал в кровати ночью".
Будь как дон Нейман!
1🔥37🤔19❤12✍8
.
Глубокий невротик:
Боится поговорить с начальником о повышении зарплаты - и не говорит.
Простой невротик:
Боится поговорить с начальником о повышении зарплаты, но говорит (но зп не повышают).
Нормис:
Не боится поговорить с начальником о повышении зарплаты, правильно проводит переговоры, и регулярно получает повышение зп.
Дзен:
Всё пофиг. Работает на 64 работах одновременно, не скрывая того, ведёт себя с начальниками как с подчинёнными - и те его слушаются.
Глубокий невротик:
Боится поговорить с начальником о повышении зарплаты - и не говорит.
Простой невротик:
Боится поговорить с начальником о повышении зарплаты, но говорит (но зп не повышают).
Нормис:
Не боится поговорить с начальником о повышении зарплаты, правильно проводит переговоры, и регулярно получает повышение зп.
Дзен:
Всё пофиг. Работает на 64 работах одновременно, не скрывая того, ведёт себя с начальниками как с подчинёнными - и те его слушаются.
1❤42😁24🔥8😎5🤔3
Ладно, спалю вам таки секретнейший секрет успешнейшего успеха в инфобизе, который мне открыли Аяз и Парабеллум великие тибетские отшельники и гуру. Если вы делаете продукт-шмордукт, сервис-фигервис, saas-фигас, менторство-шменторство, и любой другой онлайн и цифру, первое с чего вам надо начинать -- это найти нишу, где будет хороший неудовлетворённый СПРОС. Как находить и тестировать такие ниши, спросите жпт. И тогда всё что вам останется -- это связать с помощью рекламы жаждущих клиентов вашей ЦА с вашими услугами.
Если вы работаете в компании, которая зарабатывает деньги любыми ит-услугами, ну вот уже вам готовая темка для стартапа: есть покупатели и известно где их искать. Сводите в кафе девочку из маркетинга, и она вам сольёт эксель со всеми контактами например. Поизучайте методики промышленного шпионажа и социальной инженерии etc
Хотя, сколько десятков лет я сам этим всем занимался, но лучше чем на картинке ↑↑↑ нету ничего.
Если вы работаете в компании, которая зарабатывает деньги любыми ит-услугами, ну вот уже вам готовая темка для стартапа: есть покупатели и известно где их искать. Сводите в кафе девочку из маркетинга, и она вам сольёт эксель со всеми контактами например. Поизучайте методики промышленного шпионажа и социальной инженерии etc
Хотя, сколько десятков лет я сам этим всем занимался, но лучше чем на картинке ↑↑↑ нету ничего.
5👍59💯9❤4⚡2🐳2
...Ведь при попытке связать это всё в одну понятную, масштабируемую и качественную систему, всё начинает быстро приходить к костылям, каким-то явно неэффективным реализациям и просто запутыванию.
В такие моменты начинает казаться, что "идеальный код" и "чистая архитектура" - это красивые абстракции, о которых все говорят и к которым все стремятся, но которые никто никогда не видел :)
Спасибо вам за курс и за возможность спроектировать и реализовать с нуля игру (для меня подобный опыт был первым, и мне казалось, что это будет не так сложно реализовать, пока не приступил к реализации).
Как это сразу делать правильно, в мире знает только Алан Кэй и ещё может быть десяток гуру :)
По большому счёту вся вторая часть Лаборатории посвящена именно этому -- software design. Серебряной пули нету, но скилл проектирования вы точно повысите в несколько десятков раз. В первом приближении нужны подходы вроде TDD и BDD, когда вы сперва формализуете ТЗ, чтобы избежать всех мало понятных и противоречивых моментов, и пишите тесты ( от модульных до интеграционных даже), которые охватывают всю требуемую функциональность, и которые по сути есть формальная спецификация. Но внутренняя архитектура из неё никак не следует, мы только избегаем явных подводных камней.
Ладно, вот вам самый нулевой шаг: начьните с проектирования базы данных, с реляционной модели вашего домена. Поизучайте HtDP, и скоро дам базу донам-неначинающим "Как проектировать ко-рекурсивные программы" (так-то ментатам она доступна за золото рейтинга на сервере).
"Если вы покажете мне код и скроете структуры данных, я ничего не пойму в вашей программе. Однако, если вы покажете мне структуры данных, код скорее всего не понадобится. Он будет очевиден."
Брукс "Мифический человекомесяц" 1975
В такие моменты начинает казаться, что "идеальный код" и "чистая архитектура" - это красивые абстракции, о которых все говорят и к которым все стремятся, но которые никто никогда не видел :)
Спасибо вам за курс и за возможность спроектировать и реализовать с нуля игру (для меня подобный опыт был первым, и мне казалось, что это будет не так сложно реализовать, пока не приступил к реализации).
Как это сразу делать правильно, в мире знает только Алан Кэй и ещё может быть десяток гуру :)
По большому счёту вся вторая часть Лаборатории посвящена именно этому -- software design. Серебряной пули нету, но скилл проектирования вы точно повысите в несколько десятков раз. В первом приближении нужны подходы вроде TDD и BDD, когда вы сперва формализуете ТЗ, чтобы избежать всех мало понятных и противоречивых моментов, и пишите тесты ( от модульных до интеграционных даже), которые охватывают всю требуемую функциональность, и которые по сути есть формальная спецификация. Но внутренняя архитектура из неё никак не следует, мы только избегаем явных подводных камней.
Ладно, вот вам самый нулевой шаг: начьните с проектирования базы данных, с реляционной модели вашего домена. Поизучайте HtDP, и скоро дам базу донам-неначинающим "Как проектировать ко-рекурсивные программы" (так-то ментатам она доступна за золото рейтинга на сервере).
"Если вы покажете мне код и скроете структуры данных, я ничего не пойму в вашей программе. Однако, если вы покажете мне структуры данных, код скорее всего не понадобится. Он будет очевиден."
Брукс "Мифический человекомесяц" 1975
5❤55❤🔥6🏆6🥰1
.
Облако драгоценностей за неделю.
Основной паблик:
null
Для донов-начинающих:
База по карьере, серия 16:
Итак, что же это за система? Ранее я приводил несколько десятков схем тайм-менеджмента и самообучения, и в будущем разберём ещё немало...
Достичь практически чего угодно в ИТ сегодня стало проще, чем когда-либо прежде — в частности, с помощью AI, вообще без посторонней помощи... но люди по прежнему находят оправдания тому, почему они "не могут".
Честно говоря, сегодня в программировании лучшее время за все 45 лет моей карьеры. Но большинство людей оказываются в нужном месте в неподходящее время - или не в том месте в нужное время...
Для донов-неначинающих:
Профессиональным программистам сегодня приходится тратить больше времени на...
Продолжаю выкладывать для донов материалы СильныхИдей — доступны моим курсантам, но тут расширенные и дополненные версии.
47. Как повысить качество проектирования программных систем?
В ответ на такой вопрос обычно даются шаблонные советы, например:
"Больше работай над практическими проектами".
"Найди хороший проект с открытым кодом и изучай его код."
"Попроси коллегу, чтобы он провел code review".
Если читать между строк, то все это сведётся к "я не знаю"...
(все старые материалы для донов постепенно сгорают)
=
Первые сериалы из существенно переработанных и улучшенных материалов СильныхИдей (по сути три книги) доступны на бусти:
1. БАЗА программной инженерии
2. Software Design с акцентом на Programming in Small
3. SOLID-25
Сериал "Вайб-проектирование" тоже на неделе выложу для всех.
Не выложил )
=
Новые материалы для ментатов Лаборатории.
null
=
Self-Hack (тайм-менеджер + мотиватор + idle-игра).
null
По техническим причинам "по состоянию здоровья" ничем особо не занимался.
Фоном посмотреть рекомендую =>
Шиз 596 минут изучает теорию групп (тяжело...)
Облако драгоценностей за неделю.
Основной паблик:
null
Для донов-начинающих:
База по карьере, серия 16:
Итак, что же это за система? Ранее я приводил несколько десятков схем тайм-менеджмента и самообучения, и в будущем разберём ещё немало...
Достичь практически чего угодно в ИТ сегодня стало проще, чем когда-либо прежде — в частности, с помощью AI, вообще без посторонней помощи... но люди по прежнему находят оправдания тому, почему они "не могут".
Честно говоря, сегодня в программировании лучшее время за все 45 лет моей карьеры. Но большинство людей оказываются в нужном месте в неподходящее время - или не в том месте в нужное время...
Для донов-неначинающих:
Профессиональным программистам сегодня приходится тратить больше времени на...
Продолжаю выкладывать для донов материалы СильныхИдей — доступны моим курсантам, но тут расширенные и дополненные версии.
47. Как повысить качество проектирования программных систем?
В ответ на такой вопрос обычно даются шаблонные советы, например:
"Больше работай над практическими проектами".
"Найди хороший проект с открытым кодом и изучай его код."
"Попроси коллегу, чтобы он провел code review".
Если читать между строк, то все это сведётся к "я не знаю"...
(все старые материалы для донов постепенно сгорают)
=
Первые сериалы из существенно переработанных и улучшенных материалов СильныхИдей (по сути три книги) доступны на бусти:
1. БАЗА программной инженерии
2. Software Design с акцентом на Programming in Small
3. SOLID-25
Не выложил )
=
Новые материалы для ментатов Лаборатории.
null
=
Self-Hack (тайм-менеджер + мотиватор + idle-игра).
null
Фоном посмотреть рекомендую =>
Шиз 596 минут изучает теорию групп (тяжело...)
1👍38❤7🐳6🤓1
(а, так я же выложил гайд по вайб-проектированию (подробно): поставил дату на 28.07 и забыл :) а его уже напокупали)
Хочешь научиться проектировать системы с помощью AI так, чтобы код не превращался в адский спагетти-монстр? 🍝💀
=> гайд по вайб-проектированию на бусти (сегодня в полночь цена вырастет)
Разбираем AI-разработку на практике: от идеи до рабочего чата на локальной модели или API. Никаких сложных IDE — только Python, PyTorch и Gradio (+твои горящие глаза 👀).
Для кого?
✔️ Новички в AI, которые устали от "слепого" копирования кода из ChatGPT
✔️ Те, кто хочет запустить свой AI-сервис, но не знает, с чего начать
✔️ Все, кому надоело, что код из чатика превращается в "лоскутное одеяло"
Что внутри?
🚀 22 урока — от мозгового штурма до релиза:
- System Design (без него — никак!)
- Генерация кода (и как не сойти с ума)
- Локальные модели vs API (плюсы, минусы, подводные камни)
- Отладка и рефакторинг (спасаем проект от краха)
- Документация (да, это обязательно 😅)
Акцент на Programming in the Large — учим AI писать чистый, масштабируемый код, а не просто склеивать prompt'ы.
💡 Бонус: Весь процесс — от диалогов с Claude 3.7 до финального кода — у тебя перед глазами.
P.S. Если твой прошлый опыт с AI-кодингом напоминал "котёл ведьмы" — этот курс для тебя. 🧙♂️🔥
=> гайд по вайб-проектированию на бусти
Хочешь научиться проектировать системы с помощью AI так, чтобы код не превращался в адский спагетти-монстр? 🍝💀
=> гайд по вайб-проектированию на бусти (сегодня в полночь цена вырастет)
Разбираем AI-разработку на практике: от идеи до рабочего чата на локальной модели или API. Никаких сложных IDE — только Python, PyTorch и Gradio (+твои горящие глаза 👀).
Для кого?
✔️ Новички в AI, которые устали от "слепого" копирования кода из ChatGPT
✔️ Те, кто хочет запустить свой AI-сервис, но не знает, с чего начать
✔️ Все, кому надоело, что код из чатика превращается в "лоскутное одеяло"
Что внутри?
🚀 22 урока — от мозгового штурма до релиза:
- System Design (без него — никак!)
- Генерация кода (и как не сойти с ума)
- Локальные модели vs API (плюсы, минусы, подводные камни)
- Отладка и рефакторинг (спасаем проект от краха)
- Документация (да, это обязательно 😅)
Акцент на Programming in the Large — учим AI писать чистый, масштабируемый код, а не просто склеивать prompt'ы.
💡 Бонус: Весь процесс — от диалогов с Claude 3.7 до финального кода — у тебя перед глазами.
P.S. Если твой прошлый опыт с AI-кодингом напоминал "котёл ведьмы" — этот курс для тебя. 🧙♂️🔥
=> гайд по вайб-проектированию на бусти
5😁33👍16✍11❤7🐳4
This media is not supported in your browser
VIEW IN TELEGRAM
Раньше у меня было какое-то подобие личности, а потом я изучил теорию типов...
Первый (из семи) уровней рационального просветления ментата -- это освоить теоркат пониманием локальных декартово замкнутых категорий (ибо это категориальная модель лямбда-исчисления с зависимыми типами), симметричных моноидальных категорий (как обобщение лямбда-исчисления с гом-джаббаром функтором) и категории коммутативных диаграмм. Ну и, соответственно, изучить мои гайды по HoTT/CoC/CTT.
Первый (из семи) уровней рационального просветления ментата -- это освоить теоркат пониманием локальных декартово замкнутых категорий (ибо это категориальная модель лямбда-исчисления с зависимыми типами), симметричных моноидальных категорий (как обобщение лямбда-исчисления с гом-
5👍43🤯19❤11🔥3
.
Облако драгоценностей за неделю.
Основной паблик:
null
Для донов-начинающих:
Всё есть в бесплатном доступе, только не у всех складывается паззл, чтобы получилось системное действие, которое даст реальный и значительный рост...
Классическая рекомендация от долларового миллиардера по управлению задачами, но я всё же склоняюсь к более гибкой и системной версии (с учётом десятков подходов, рассмотренных ранее)...
Для донов-неначинающих:
Продолжаю выкладывать для донов материалы СильныхИдей — доступны моим курсантам, но тут расширенные и дополненные версии.
48. Как проектировать программы in small (два научных подхода)
Очень интересная работа оксфордских учёных предлагает альтернативный, и в чём-то даже более продуктивный подход: основывать структуру программы на структуре выходных данных, что приведёт к ко-рекурсивным программам.
(все старые материалы для донов постепенно сгорают)
=
Первые сериалы из существенно переработанных и улучшенных материалов СильныхИдей (по сути три книги) доступны на бусти:
1. БАЗА программной инженерии
2. Software Design с акцентом на Programming in Small
3. SOLID-25
4. Гайд Вайб-проектирование
=
Новые материалы для ментатов Лаборатории.
В раздел "Элитный программист" добавлены материалы
72) Как бороться с очень скучными занятиями
73) Никогда больше не скучайте во время работы
В курс карьеры добавлены
107-й материал "Что вас ждёт по мере роста".
Основное требование к разработчикам по мере их роста заключается в том, что они должны всё меньше и меньше создавать то, о чем их конкретно просят...
106-й материал "Как выживать в ИТ-индустрии в 2025-м".
Беднейшие 80-90% будут бороться за копейки. Многие будут вытеснены искусственным интеллектом, аутсорсингом или просто слабой экономикой.
Средний уровень "достойных, но не исключительных" разработчиков исчезает. И большинство программистов попадают в эту категорию...
Мы здесь, потому что это трудно.
it's a privilege to do things that are hard.
=
Self-Hack (тайм-менеджер + мотиватор + idle-игра).
Готово 42(+14) уровней из 54 альфа-версии,
этим летом бета-версия 💯 будет готова.
Пока на самой игре сосредоточился, надо базовую логику закончить не распыляясь. Как добрался до уровня крипты 1e500 - так многое посыпалось :)
Сложноватую математическую модель взял... некоторые коэффициенты на начальных уровнях должны быть дробными (2.71), а на средних - 1e1000, единого подходящего типа нету, ни double ни BigInteger не подходят. Надо было сразу самому правильный тип и алгебру для него делать, потому что в перспективе грядут куда более эпические уровни...
26-й уровень
Диверсии на автоматизированных производственных линиях, в системах контроля качества и логистики складов. Фокус на скрытый, накапливаемый ущерб.
Внедрение дефектов в продукцию; манипуляция параметрами сборки/тестирования; сбои в работе роботов-сборщиков; подделка отчетов КГ; нарушение логистики компонентов.
синхронизм с реальностью:
Грядет цифровой апокалипсис для любого устройства: российские хакеры из KillNet анонсировали ответную атаку на Францию в ответ на события 29–30 июля. По их заявлениям, новый инструмент способен выводить из строя интернет, транспортные сети и промышленные объекты.
Облако драгоценностей за неделю.
Основной паблик:
null
Для донов-начинающих:
Всё есть в бесплатном доступе, только не у всех складывается паззл, чтобы получилось системное действие, которое даст реальный и значительный рост...
Классическая рекомендация от долларового миллиардера по управлению задачами, но я всё же склоняюсь к более гибкой и системной версии (с учётом десятков подходов, рассмотренных ранее)...
Для донов-неначинающих:
Продолжаю выкладывать для донов материалы СильныхИдей — доступны моим курсантам, но тут расширенные и дополненные версии.
48. Как проектировать программы in small (два научных подхода)
Очень интересная работа оксфордских учёных предлагает альтернативный, и в чём-то даже более продуктивный подход: основывать структуру программы на структуре выходных данных, что приведёт к ко-рекурсивным программам.
(все старые материалы для донов постепенно сгорают)
=
Первые сериалы из существенно переработанных и улучшенных материалов СильныхИдей (по сути три книги) доступны на бусти:
1. БАЗА программной инженерии
2. Software Design с акцентом на Programming in Small
3. SOLID-25
4. Гайд Вайб-проектирование
=
Новые материалы для ментатов Лаборатории.
В раздел "Элитный программист" добавлены материалы
72) Как бороться с очень скучными занятиями
73) Никогда больше не скучайте во время работы
В курс карьеры добавлены
107-й материал "Что вас ждёт по мере роста".
Основное требование к разработчикам по мере их роста заключается в том, что они должны всё меньше и меньше создавать то, о чем их конкретно просят...
106-й материал "Как выживать в ИТ-индустрии в 2025-м".
Беднейшие 80-90% будут бороться за копейки. Многие будут вытеснены искусственным интеллектом, аутсорсингом или просто слабой экономикой.
Средний уровень "достойных, но не исключительных" разработчиков исчезает. И большинство программистов попадают в эту категорию...
Мы здесь, потому что это трудно.
it's a privilege to do things that are hard.
=
Self-Hack (тайм-менеджер + мотиватор + idle-игра).
Готово 42(+14) уровней из 54 альфа-версии,
этим летом бета-версия 💯 будет готова.
Пока на самой игре сосредоточился, надо базовую логику закончить не распыляясь. Как добрался до уровня крипты 1e500 - так многое посыпалось :)
Сложноватую математическую модель взял... некоторые коэффициенты на начальных уровнях должны быть дробными (2.71), а на средних - 1e1000, единого подходящего типа нету, ни double ни BigInteger не подходят. Надо было сразу самому правильный тип и алгебру для него делать, потому что в перспективе грядут куда более эпические уровни...
26-й уровень
Диверсии на автоматизированных производственных линиях, в системах контроля качества и логистики складов. Фокус на скрытый, накапливаемый ущерб.
Внедрение дефектов в продукцию; манипуляция параметрами сборки/тестирования; сбои в работе роботов-сборщиков; подделка отчетов КГ; нарушение логистики компонентов.
синхронизм с реальностью:
Грядет цифровой апокалипсис для любого устройства: российские хакеры из KillNet анонсировали ответную атаку на Францию в ответ на события 29–30 июля. По их заявлениям, новый инструмент способен выводить из строя интернет, транспортные сети и промышленные объекты.
❤38👍13⚡2
Продолжаю работу с ментатами 🤓
На работе месяц назад у меня прошел performance-review, по результатам которого подняли уровень до middle-начальный (всего три уровня для middle). Тех. собеседование прошла хорошо, аргументы о своей работе для поднятия ЗП, считаю, тоже неплохо доносила, просила 100-110 т.р., но дали только 90 т.р. на руки.
Девушка ↑↑↑ в том году с полного нуля после первой части моий Лабы + дипл.проект сама устроилась стажёром, выросла быстро до джуна (не msk не spb!), вот уже миддл, опыт не крутила (хотя я предлагал, у неё уровень крепкий джун точно был, а кодит вообще отлично), всё честно. Да, подольше в целом, ну и что, тоже полезный опыт. Я конечно больше за такой подход.
Визг тормозов, музыка крыш -
Выбор смерти на свой риск и страх.
Битва за жизнь, или жизнь ради битв -
Всё в наших руках.
=
...И ещё зацепили ваши слова из одного отчёта о работе с ментатами в ТГ:
"Вообще, процесс обучения можно назвать процессом вашего сопротивления. Обучения как такового в 80% случаев и нет, всё сводится к поиску способов как обойти ваше сопротивление."
Раньше я думал, что учёба должна идти легко и просто, иначе что-то у тебя не так. Но в реальности приходилось да и сейчас приходится, бороться с собой и садиться за учёбу специально, через нежелание. А если этого не делать, то будешь лежать и бездельничать. А тут я увидел эти ваши слова и почувствовал, что да, вот оно. Оказывается это нормально, что я ощущаю сопротивление/нежелание и нужно просто обходить его. Кажется, что я испытал от этого облегчение.
...Clickhouse даже без нагрузки ведет себя немного странновато. Даже при вставке одной точки раз в 10 секунд он все равно умудряется их терять по пути. Возможно я чего-то не настроил.
(Переделаю генератор и буду писать чанками.)
...Видимо, из-за отсутствия опыта проектирование давалось довольно тяжело.
Сейчас еще вернулся к своим записям, оказалось, что этап проектирования у меня занял всего треть времени, а всё остальное — реализация, которую бахнул за 3 дня. Реализация шла гораздо быстрее, чем проектирование :)
...Собрать и запустить получилось с первого раза, но программа отрабатывает некорректно, алгоритм нужно править.
...как только я перестал плакать и продолжил жевать кактус, платный Cursor все очень четко разложил.
...В понедельник на планерке меня послушали и сказали что наверное все таки со мной расстанутся. Короче протянул я там 2 недели.
Все праздники произошедшее мне не дает покоя. Я опять разлюбил свою работу.
Довольно иронично что я очень давно хотел туда попасть и не мог, а когда попал не протянул и месяца.
Возможно для меня кнопка социального лифта "2 работы" сожжена окончательно. Надо попробовать что-то другое (например довести пару пет-проектов до коммерческого состояния).
...Помню как тимлид выпендривался касаемо того что я опаздываю на два часа, ибо до офиса я добирался через пробки, по итогу ничего мне не сделал ибо понимал, что врубаться в написанное чтобы доделать полугодовую задачу ему не по силам.
...Так же через знакомых нашел клиента, у которого сайт на php laravel, делали два студента, выполняли обязанности очень плохо, зато хорошо нарисовали мужское достоинство на стене перед уходом)
На работе месяц назад у меня прошел performance-review, по результатам которого подняли уровень до middle-начальный (всего три уровня для middle). Тех. собеседование прошла хорошо, аргументы о своей работе для поднятия ЗП, считаю, тоже неплохо доносила, просила 100-110 т.р., но дали только 90 т.р. на руки.
Девушка ↑↑↑ в том году с полного нуля после первой части моий Лабы + дипл.проект сама устроилась стажёром, выросла быстро до джуна (не msk не spb!), вот уже миддл, опыт не крутила (хотя я предлагал, у неё уровень крепкий джун точно был, а кодит вообще отлично), всё честно. Да, подольше в целом, ну и что, тоже полезный опыт. Я конечно больше за такой подход.
Визг тормозов, музыка крыш -
Выбор смерти на свой риск и страх.
Битва за жизнь, или жизнь ради битв -
Всё в наших руках.
=
...И ещё зацепили ваши слова из одного отчёта о работе с ментатами в ТГ:
"Вообще, процесс обучения можно назвать процессом вашего сопротивления. Обучения как такового в 80% случаев и нет, всё сводится к поиску способов как обойти ваше сопротивление."
Раньше я думал, что учёба должна идти легко и просто, иначе что-то у тебя не так. Но в реальности приходилось да и сейчас приходится, бороться с собой и садиться за учёбу специально, через нежелание. А если этого не делать, то будешь лежать и бездельничать. А тут я увидел эти ваши слова и почувствовал, что да, вот оно. Оказывается это нормально, что я ощущаю сопротивление/нежелание и нужно просто обходить его. Кажется, что я испытал от этого облегчение.
...Clickhouse даже без нагрузки ведет себя немного странновато. Даже при вставке одной точки раз в 10 секунд он все равно умудряется их терять по пути. Возможно я чего-то не настроил.
(Переделаю генератор и буду писать чанками.)
...Видимо, из-за отсутствия опыта проектирование давалось довольно тяжело.
Сейчас еще вернулся к своим записям, оказалось, что этап проектирования у меня занял всего треть времени, а всё остальное — реализация, которую бахнул за 3 дня. Реализация шла гораздо быстрее, чем проектирование :)
...Собрать и запустить получилось с первого раза, но программа отрабатывает некорректно, алгоритм нужно править.
...как только я перестал плакать и продолжил жевать кактус, платный Cursor все очень четко разложил.
...В понедельник на планерке меня послушали и сказали что наверное все таки со мной расстанутся. Короче протянул я там 2 недели.
Все праздники произошедшее мне не дает покоя. Я опять разлюбил свою работу.
Довольно иронично что я очень давно хотел туда попасть и не мог, а когда попал не протянул и месяца.
Возможно для меня кнопка социального лифта "2 работы" сожжена окончательно. Надо попробовать что-то другое (например довести пару пет-проектов до коммерческого состояния).
...Помню как тимлид выпендривался касаемо того что я опаздываю на два часа, ибо до офиса я добирался через пробки, по итогу ничего мне не сделал ибо понимал, что врубаться в написанное чтобы доделать полугодовую задачу ему не по силам.
...Так же через знакомых нашел клиента, у которого сайт на php laravel, делали два студента, выполняли обязанности очень плохо, зато хорошо нарисовали мужское достоинство на стене перед уходом)
❤43🏆7👍6😁2
.
Грегори Бейтсон (которого ангелы страшатся), отец эпистемологии, учил: "разум/тело" - это эпистемология, а не раздел философии". Напомню, эпистемология -- это способ мышления, позволяющий эффективно "познавать" то, что вы знаете. У вас, как и у меня, уже есть своя эпистемология. Она есть у всех, даже у большинства тех людей, которым трудно осознанно определить свою эпистемологию. Кроме того, существуют хорошие и плохие эпистемологии.
Бейтсон выступал всегда за обновлённые способы мышления и познания, которые должны основываться на том, что в "уме" нет "вещей", а только процессы, поэтому наш язык вещей создаёт запутанную неразбериху, которую необходимо деноминировать.
Какова твоя эпистемология? Это твой образ мышления и знания о себе, своём разуме, своём бессознательном, своей цели в жизни, своих способностях и навыках, своей способности к развитию, своём потенциале к росту, к духовности, к здоровью и благополучию, к деньгам и т.д.
У вас есть свой взгляд на эти вещи. У вас есть подсознательный способ "узнать" о каждой из них. И каков бы ни был ваш образ мышления и познания -- такова ваша эпистемология.
Теперь можно задать ещё более личный вопрос: насколько хорошо работает ваш способ мышления? В конечном счёте, вы зарабатываете на жизнь мышлением. Мы все думаем. Это потому, что ваше мышление определяет качество вашей жизни, то, как вы смотрите на вещи, ваши предположения...
В качестве примера давайте создадим простую эпистемологию о programming in large.
1) Знаете ли вы, что нужно делать, чтобы качественно и в срок создавать крупные системы? Что, по вашему мнению, вам нужно делать по архитектуре, по system design? Можете ли вы чётко определить, какие технологии и фреймворки вам подходят, а какие нет? Какие паттерны проектирования вам применять? Когда, где, как часто?
2) Знаете ли вы, как делать то, что необходимо для того, чтобы качественно и в срок создавать крупные системы? Есть ли у вас подробный план, мистер Фикс? Есть у вас диаграммы C4 и набор требований по BDD? Есть ли у вас осознанный и проверенный процесс разработки, который, как правило, приводит к успешному результату? Вы действительно придерживайтесь этого всего?
3) Знаете ли вы, как думать о делании всех этих требуемых вещей? Как лучше всего об этом думать? Знаете ли вы, как думают те, кто наиболее преуспел в этих темах? Что они думают о software design, о system design? Как они относятся к объектному и функциональному программированию, что они применяют из computer science?
"Ментат обучен одновременному сознательному следованию по параллельным петлям кажущихся случайными связей, просчитывая всю цепь причин и следствий."
"Дети Дюны"
У вас уже есть некоторое представление о том, как качественно и в срок создавать крупные системы (возможно, на основе богатого опыта; возможно, на основе единственной статьи на хабре). Но что вы знаете об этом представлении? Когда вы поймёте, как вы думаете и что вы знаете об этих вещах, вы сможете начать обновлять и улучшать то, что и как вы "знаете".
Ваше мышление -- ваша эпистемология. Ваша эпистемология -- ваш полезный опыт.
Грегори Бейтсон (которого ангелы страшатся), отец эпистемологии, учил: "разум/тело" - это эпистемология, а не раздел философии". Напомню, эпистемология -- это способ мышления, позволяющий эффективно "познавать" то, что вы знаете. У вас, как и у меня, уже есть своя эпистемология. Она есть у всех, даже у большинства тех людей, которым трудно осознанно определить свою эпистемологию. Кроме того, существуют хорошие и плохие эпистемологии.
Бейтсон выступал всегда за обновлённые способы мышления и познания, которые должны основываться на том, что в "уме" нет "вещей", а только процессы, поэтому наш язык вещей создаёт запутанную неразбериху, которую необходимо деноминировать.
Какова твоя эпистемология? Это твой образ мышления и знания о себе, своём разуме, своём бессознательном, своей цели в жизни, своих способностях и навыках, своей способности к развитию, своём потенциале к росту, к духовности, к здоровью и благополучию, к деньгам и т.д.
У вас есть свой взгляд на эти вещи. У вас есть подсознательный способ "узнать" о каждой из них. И каков бы ни был ваш образ мышления и познания -- такова ваша эпистемология.
Теперь можно задать ещё более личный вопрос: насколько хорошо работает ваш способ мышления? В конечном счёте, вы зарабатываете на жизнь мышлением. Мы все думаем. Это потому, что ваше мышление определяет качество вашей жизни, то, как вы смотрите на вещи, ваши предположения...
В качестве примера давайте создадим простую эпистемологию о programming in large.
1) Знаете ли вы, что нужно делать, чтобы качественно и в срок создавать крупные системы? Что, по вашему мнению, вам нужно делать по архитектуре, по system design? Можете ли вы чётко определить, какие технологии и фреймворки вам подходят, а какие нет? Какие паттерны проектирования вам применять? Когда, где, как часто?
2) Знаете ли вы, как делать то, что необходимо для того, чтобы качественно и в срок создавать крупные системы? Есть ли у вас подробный план, мистер Фикс? Есть у вас диаграммы C4 и набор требований по BDD? Есть ли у вас осознанный и проверенный процесс разработки, который, как правило, приводит к успешному результату? Вы действительно придерживайтесь этого всего?
3) Знаете ли вы, как думать о делании всех этих требуемых вещей? Как лучше всего об этом думать? Знаете ли вы, как думают те, кто наиболее преуспел в этих темах? Что они думают о software design, о system design? Как они относятся к объектному и функциональному программированию, что они применяют из computer science?
"Ментат обучен одновременному сознательному следованию по параллельным петлям кажущихся случайными связей, просчитывая всю цепь причин и следствий."
"Дети Дюны"
У вас уже есть некоторое представление о том, как качественно и в срок создавать крупные системы (возможно, на основе богатого опыта; возможно, на основе единственной статьи на хабре). Но что вы знаете об этом представлении? Когда вы поймёте, как вы думаете и что вы знаете об этих вещах, вы сможете начать обновлять и улучшать то, что и как вы "знаете".
Ваше мышление -- ваша эпистемология. Ваша эпистемология -- ваш полезный опыт.
3✍50👍8❤4💯2🫡1
Forwarded from Дизраптор
Ещё одна важная новость из мира эйай:
Стартап Harmonic запустил приложение с чатботом, став первым общедоступным математическим эйай-сервисом с формальной проверкой результата. А скоро обещают и API для компаний выкатить.
Обычный* генеративный ИИ работает примерно как ребёнок, которого родители научили, что ветер дует, потому что деревья качаются, и он говорит: "ветер дует". А почему он дует? И дует ли?
Другими словами, если попросить ChatGPT или Claude расписать математическую формулу, то он её... как бы сказать... попробует угадать в формате "я зделяль". Но ответить и пояснить за свой генеративный базар не сможет. Можно ли такой формуле доверять и закладывать её в серьёзные расчёты - судите сами.
А ИИшка от Harmonic под названием "Aristotle" работает не так. Генеративный ИИ (LLM) предлагает гипотезу или часть решения и передаёт её в специальный доказательный движок, который всё проверяет с точки зрения формальной логики, аксиом, мат. определений. Алгоритмически, то бишь.
Весь процесс происходит на Lean - это такой интерактивный инструмент доказательства теорем. По сути, специальный язык программирования и формальной логики, где каждое утверждение должно быть доказано шаг за шагом, а пруф должен быть проверяем машиной.
Если движок "Аристотеля" не может верифицировать решение от LLM, то генерится другое решение. Потом его снова проверяют. И так по новой, пока проверка не будет пройдена. И лишь тогда решение выплюнется юзеру.
За счёт этого Harmonic не галлюционирует, и (по идее) его можно использовать для взрослых математических и логических задач. От академической математики до инженерии, фин. анализа и даже юридических рассуждений.
* Генеративный ИИ теперь обычный, дожили, хех😈
Дизраптор
Стартап Harmonic запустил приложение с чатботом, став первым общедоступным математическим эйай-сервисом с формальной проверкой результата. А скоро обещают и API для компаний выкатить.
Обычный* генеративный ИИ работает примерно как ребёнок, которого родители научили, что ветер дует, потому что деревья качаются, и он говорит: "ветер дует". А почему он дует? И дует ли?
Другими словами, если попросить ChatGPT или Claude расписать математическую формулу, то он её... как бы сказать... попробует угадать в формате "я зделяль". Но ответить и пояснить за свой генеративный базар не сможет. Можно ли такой формуле доверять и закладывать её в серьёзные расчёты - судите сами.
А ИИшка от Harmonic под названием "Aristotle" работает не так. Генеративный ИИ (LLM) предлагает гипотезу или часть решения и передаёт её в специальный доказательный движок, который всё проверяет с точки зрения формальной логики, аксиом, мат. определений. Алгоритмически, то бишь.
Весь процесс происходит на Lean - это такой интерактивный инструмент доказательства теорем. По сути, специальный язык программирования и формальной логики, где каждое утверждение должно быть доказано шаг за шагом, а пруф должен быть проверяем машиной.
Если движок "Аристотеля" не может верифицировать решение от LLM, то генерится другое решение. Потом его снова проверяют. И так по новой, пока проверка не будет пройдена. И лишь тогда решение выплюнется юзеру.
За счёт этого Harmonic не галлюционирует, и (по идее) его можно использовать для взрослых математических и логических задач. От академической математики до инженерии, фин. анализа и даже юридических рассуждений.
* Генеративный ИИ теперь обычный, дожили, хех
Дизраптор
Please open Telegram to view this post
VIEW IN TELEGRAM
❤43👍18✍8
Обожаю смотреть нашу первую-вторую лиги!
Собрал за пару часовтакую же глупую как и футбол игрульку "Лучшая Лига Мира"
(жпт использовал только для генерации календаря встреч).
Процесс игры очевиден (всего одна кнопка:).
Скачать игру тут zip 27 кб :)
В корне игры текстовый файлик teams.txt, предварительно замените название самой первой команды (Динамо М), на название той, за которую вы будете играть.
Нужна NET 4.8.
На стадионе мало народа - обычный матч, вторая лига,
Моб выдвигается из парка, у турникетов стрела с врагами,
Их число превышает наше, но мы к этому уже привыкли,
Заряжаем МосЭнерго, и первые тела уже на асфальте...
Хулиганы второй лиги снова рвутся в бой!..
=
А это, видимо, памяти Цоя?
"The hardest part of letting go, is saying goodbye."
+ фоном к игре можно послушать думерское
Собрал за пару часов
(жпт использовал только для генерации календаря встреч).
Процесс игры очевиден (всего одна кнопка:).
Скачать игру тут zip 27 кб :)
В корне игры текстовый файлик teams.txt, предварительно замените название самой первой команды (Динамо М), на название той, за которую вы будете играть.
Нужна NET 4.8.
На стадионе мало народа - обычный матч, вторая лига,
Моб выдвигается из парка, у турникетов стрела с врагами,
Их число превышает наше, но мы к этому уже привыкли,
Заряжаем МосЭнерго, и первые тела уже на асфальте...
Хулиганы второй лиги снова рвутся в бой!..
=
А это, видимо, памяти Цоя?
"The hardest part of letting go, is saying goodbye."
+ фоном к игре можно послушать думерское
👍45❤🔥10😁2