Нередко спрашивают, и я в принципе раньше уже отвечал, но эта темка будет вечной (и это прекрасно).
Я Вас регулярно читаю и задумался о том, что хорошо бы мне подтянуть математику. (В последний раз вышмат был в универе лет 7-8 назад).
Хочу узнать у Вас куда можно записаться, что посмотреть и порешать. В целом хочу понять что из матана может потребоваться для того, чтобы заниматься дальше комфортно заниматься на курсах и стать полноценным Ментатом. (Думаю пока со Смаллиана начну.)
1. Матан не нужен 💯
Собственно, в закрепе Лаборатории вконтактнике уже много лет пост висит, какая математика/computer science нужна Программисту.
2. Смаллиана однозначно рекомендую просто в вакууме, ни с чем не связано, "Передразнить пересмешника" в первую очередь. А с детишками полезно вместе поразбирать его легендарные "Принцесса или тигр", про Алису серию, и т.д.
3. В матрице компетенций (в личном кабинете), там 50+ треков развития, и среди них есть трек по математике вот буквально с самого начала, с околонуля.
4. Если кто-то прямо очень-очень серьёзно настроен в математику, я помогаю индивидуально даю рекомендации что поизучать, и самое главное, в каком порядке -- до топового уровня HoTT именно на уровне профессионального математика. Но за всё время было всего два человека кто пытался, и запала ожидаемо хватило ненадолго, на теории групп все слились. Даже до базового уровня учебника Александрова "Введение в теорию групп" не добрались.
5. Я фактически закончил трек HoTT/CoC/CTT для уровня обычного программиста (надеюсь). Кто проходит три базовых трека второй части Лаборатории -- ООАП, Ясное проектирование и Функциональное программирование (дорабатываю сейчас, кстати), потом по желанию может сразу его пройти.
6. В качестве вводного подготовительного уровня к HoTT, в принципе много раз уже рекомендовал "Типы в языках программирования" Пирса и/или "Программирование: теория типов" (Швецкий, Кудрявцева).
Конечно стоит и SICP прочитать (база, как и TaPL), ну и до кучи "How to Design Programs" (HtDP). Эти три-четыре книги - абсолютный начальный must have для всех, кто хочет изучать computer science.
И затем всю линейку "The Little ...":
The Little Schemer, The Little Typer, The Little Prover...
"A Little Java" кстати вообще всем рекомендую: мозгоразрывающее применение паттерна Visitor.
7. Но если честно, то по хардкору я бы рекомендовал так =>
- прыгаешь сперва с головой в OnLisp
- потом в "Introduction to the MIPS Architecture and Assembly Language"
вроде такого
- пишешь для MIPS/Байкала свой компилятор Лиспа в continuation-passing style
- попутно шлифуешь алгосики по MIT-овскому "6.851: Advanced Data Structures"
Скрипач Кнут Вирт etc вообще не нужен, вместо них "Hacker"s Delight".
- Настанет день, - произнёс герцог Лето, - когда потенциальный ментат должен узнать о том, что с ним происходит. Он не может больше быть предметом обучения. Он сам должен сделать выбор: продолжить обучение, или прекратить. Некоторые способны к дальнейшим занятиям, некоторые нет. И только сам полноценный ментат может решить это для себя.
Колебаний не было.
- Я буду продолжать тренировки! - сказал Пол, и подумал: "возможно, быть ментатом на самом деле ужасно".
Я Вас регулярно читаю и задумался о том, что хорошо бы мне подтянуть математику. (В последний раз вышмат был в универе лет 7-8 назад).
Хочу узнать у Вас куда можно записаться, что посмотреть и порешать. В целом хочу понять что из матана может потребоваться для того, чтобы заниматься дальше комфортно заниматься на курсах и стать полноценным Ментатом. (Думаю пока со Смаллиана начну.)
1. Матан не нужен 💯
Собственно, в закрепе Лаборатории вконтактнике уже много лет пост висит, какая математика/computer science нужна Программисту.
2. Смаллиана однозначно рекомендую просто в вакууме, ни с чем не связано, "Передразнить пересмешника" в первую очередь. А с детишками полезно вместе поразбирать его легендарные "Принцесса или тигр", про Алису серию, и т.д.
3. В матрице компетенций (в личном кабинете), там 50+ треков развития, и среди них есть трек по математике вот буквально с самого начала, с околонуля.
4. Если кто-то прямо очень-очень серьёзно настроен в математику, я помогаю индивидуально даю рекомендации что поизучать, и самое главное, в каком порядке -- до топового уровня HoTT именно на уровне профессионального математика. Но за всё время было всего два человека кто пытался, и запала ожидаемо хватило ненадолго, на теории групп все слились. Даже до базового уровня учебника Александрова "Введение в теорию групп" не добрались.
5. Я фактически закончил трек HoTT/CoC/CTT для уровня обычного программиста (надеюсь). Кто проходит три базовых трека второй части Лаборатории -- ООАП, Ясное проектирование и Функциональное программирование (дорабатываю сейчас, кстати), потом по желанию может сразу его пройти.
6. В качестве вводного подготовительного уровня к HoTT, в принципе много раз уже рекомендовал "Типы в языках программирования" Пирса и/или "Программирование: теория типов" (Швецкий, Кудрявцева).
Конечно стоит и SICP прочитать (база, как и TaPL), ну и до кучи "How to Design Programs" (HtDP). Эти три-четыре книги - абсолютный начальный must have для всех, кто хочет изучать computer science.
И затем всю линейку "The Little ...":
The Little Schemer, The Little Typer, The Little Prover...
"A Little Java" кстати вообще всем рекомендую: мозгоразрывающее применение паттерна Visitor.
7. Но если честно, то по хардкору я бы рекомендовал так =>
- прыгаешь сперва с головой в OnLisp
- потом в "Introduction to the MIPS Architecture and Assembly Language"
вроде такого
- пишешь для MIPS/Байкала свой компилятор Лиспа в continuation-passing style
- попутно шлифуешь алгосики по MIT-овскому "6.851: Advanced Data Structures"
- Настанет день, - произнёс герцог Лето, - когда потенциальный ментат должен узнать о том, что с ним происходит. Он не может больше быть предметом обучения. Он сам должен сделать выбор: продолжить обучение, или прекратить. Некоторые способны к дальнейшим занятиям, некоторые нет. И только сам полноценный ментат может решить это для себя.
Колебаний не было.
- Я буду продолжать тренировки! - сказал Пол, и подумал: "возможно, быть ментатом на самом деле ужасно".
8❤42✍19👍6❤🔥2😁1
Все персонажи на постере образуют супермножество ⊃ , так как они принадлежат разным группам (Атрейдесы, Харконнены, фримены), но вместе составляют основной состав фильма.
Объединение Атрейдесов и Харконненов даёт ключевые конфликтующие стороны фильма:
Атрейдесы ∪ Харконнены = {Поль, Джессика, Халлек, Дункан, Барон}
Пересечение Атрейдесов и Харконненов — это Леди Джессика.
Атрейдесы ∩ Харконнены = {Джессика}
Фримены — это подмножество жителей планеты Аракис, которые выступают союзниками Атрейдесов.
{Чани} ⊂ фримены
Объединение Атрейдесов и Харконненов даёт ключевые конфликтующие стороны фильма:
Атрейдесы ∪ Харконнены = {Поль, Джессика, Халлек, Дункан, Барон}
Пересечение Атрейдесов и Харконненов — это Леди Джессика.
Атрейдесы ∩ Харконнены = {Джессика}
Фримены — это подмножество жителей планеты Аракис, которые выступают союзниками Атрейдесов.
{Чани} ⊂ фримены
1😁53🤯10😇3👏2💯1
Не знал, что, оказывается, Computer Vision расшифровывается как "компьютерное самонаведение". Век живи век учись всё равно дураком помрёшь.
"...Как пояснил "Ъ" руководитель CV-направления (от английского computer vision — «компьютерное самонаведение») одного из российских конструкторских бюро БПЛА, основная сложность в этой работе связана с тем, что ни одна компания в мире еще не разработала электронные компоненты, способные раскрыть весь потенциал ИИ в беспилотной авиации.
..."Современные робототехнические печатные платы пока не готовы тянуть подобные ChatGPT-модели ИИ из-за своей архитектуры", -- сетует разработчик."
Ну, если выбрано исходно архитектурно-тупиковое направление -- делать через ЖПТ, то это просто естественное следствие из причины. А что, перед началом работ ожидалось получить что-то другое?
Как правильно? Сильные решения всегда контр-интуитивны. Я подробно рассказывал в контексте гомотопической теории, какая может быть архитектура для мега-роя: каждый беспилотник представляется в математической модели как достаточно простой автомат, для чего достаточно простейшего восьмибитного чипа, выковыренного из пылесоса. Только формальная логика, вообще никаких нагрузочных вычислений.
Такая задачка, как управление мегароем небольших дронов (размером с птицу). Сегодня мы видим сотни дронов, скоро счёт пойдёт на тысячи, в следующем десятилетии и на миллионы; ну в конечном итоге так-то точно и будет когда-нибудь.Засада в том, что такой миллион летающих роботов должен действовать как единый организм...
Каждый дрон представляем как локальный автомат состояний (подлёт к цели, поиск объектов, обмен информацией с соседями, уклонение от препятствий, поддержание строя, аварийный режим, возврат на базу...). Решения принимаются на основе локальной информации (что видят сенсоры дрона и что сообщают ближайшие соседи). Но такие локальные решения должны приводить к глобально разумному поведению...
Стратегические решения мгновенно телепортируются по всему рою. Если одна группа дронов обнаружила эффективную тактику, она немедленно становится доступной всем гомотопически эквивалентным группам...
Поведение роя моделируем как ∞-категорию, в категорной семантике, с поддержкой композиционного масштабирования (управление подроем автоматически композируется в управление всем мегароем через функториальность)...
Вероятность победы HoTT-роя: 85-90%. Это не магия, а результат математически качественно лучшей архитектуры...
А всего-то делов было -- задонатить хотя бы миллиард рублей пацанам из МИАН. Если там конечно ещё кто-то остался из профильных математиков-топологов...
/ и если математики вообще возьмутся за такую темку.
Может, и правда сделать такую "РойOS" на гомотопических стероидах? И выложить в опенсорс. Всё равно ведь кто-то сделает поздно или рано.
"...Как пояснил "Ъ" руководитель CV-направления (от английского computer vision — «компьютерное самонаведение») одного из российских конструкторских бюро БПЛА, основная сложность в этой работе связана с тем, что ни одна компания в мире еще не разработала электронные компоненты, способные раскрыть весь потенциал ИИ в беспилотной авиации.
..."Современные робототехнические печатные платы пока не готовы тянуть подобные ChatGPT-модели ИИ из-за своей архитектуры", -- сетует разработчик."
Ну, если выбрано исходно архитектурно-тупиковое направление -- делать через ЖПТ, то это просто естественное следствие из причины. А что, перед началом работ ожидалось получить что-то другое?
Как правильно? Сильные решения всегда контр-интуитивны. Я подробно рассказывал в контексте гомотопической теории, какая может быть архитектура для мега-роя: каждый беспилотник представляется в математической модели как достаточно простой автомат, для чего достаточно простейшего восьмибитного чипа, выковыренного из пылесоса. Только формальная логика, вообще никаких нагрузочных вычислений.
Такая задачка, как управление мегароем небольших дронов (размером с птицу). Сегодня мы видим сотни дронов, скоро счёт пойдёт на тысячи, в следующем десятилетии и на миллионы; ну в конечном итоге так-то точно и будет когда-нибудь.Засада в том, что такой миллион летающих роботов должен действовать как единый организм...
Каждый дрон представляем как локальный автомат состояний (подлёт к цели, поиск объектов, обмен информацией с соседями, уклонение от препятствий, поддержание строя, аварийный режим, возврат на базу...). Решения принимаются на основе локальной информации (что видят сенсоры дрона и что сообщают ближайшие соседи). Но такие локальные решения должны приводить к глобально разумному поведению...
Стратегические решения мгновенно телепортируются по всему рою. Если одна группа дронов обнаружила эффективную тактику, она немедленно становится доступной всем гомотопически эквивалентным группам...
Поведение роя моделируем как ∞-категорию, в категорной семантике, с поддержкой композиционного масштабирования (управление подроем автоматически композируется в управление всем мегароем через функториальность)...
Вероятность победы HoTT-роя: 85-90%. Это не магия, а результат математически качественно лучшей архитектуры...
А всего-то делов было -- задонатить хотя бы миллиард рублей пацанам из МИАН. Если там конечно ещё кто-то остался из профильных математиков-топологов...
/ и если математики вообще возьмутся за такую темку.
Может, и правда сделать такую "РойOS" на гомотопических стероидах? И выложить в опенсорс. Всё равно ведь кто-то сделает поздно или рано.
1❤35🏆16✍15❤🔥4😁3
.
Продолжаю работу с ментатами 🤓
...В данной задаче я не смог разработать решение по следующим причинам:
Мало времени уделил задаче, в виду чего истекли три дня - моя самая большая ошибка
...Данная тема сильно актуальна, т.к на данный момент приходится работать с наследуемыми проектами или проектами, в которых приходится делать фичи "на скорость".
...В момент реализации задачи ставлю себе ограничение по времени - то есть задачу я должен сделать для себя быстрее запланированного. Это помогает откинуть ненужные действия в процессе решение задачи, отбросить перфекционизм, но при этом делать аккуратно.
Ok, но особо делать акцент чтобы "сделать побыстрее" тоже рискованно. Лучше здесь внимание обращать на уменьшение ненужных потерь времени, или фиксировать ограничение времени на непосредственно написание и отладку кода, а вот на "предварительно подумать" неплохо отслеживать время в обратную сторону - наоборот выделять времени побольше. Результат может сильно удивить )
...Я собираюсь делать это [брать проекты] через развитие нетворка, а пока больший упор на прокачку навыков разработки. У меня почему-то есть желание расширить понимание процесса всех составляющих: бекенд, фронт, тестирование, аналитика(в меньше степени), сбор и анализ требований.
Как разовью компетенции, буду развивать нетворк с поиском людей, которым нужна будет помочь с разработкой - от компаний, которым нужен техлид(в последнее время думаю не рассматривать этот вариант, так как корпоративную «культуру» мой бунтарский дух отвергать начал), до частных лиц, которым что-то нужно сделать. План таков :)
Скажу честно - план так себе. "Как разовью компетенции, так буду ..." - это прокрастинация лишь бы не начинать общаться. "Почему-то" - вот ровно поэтому.
Правильно только так: 80% времени вкладывать в поиск клиентов, и потом ввязываться в проект, разбираясь уже по ходу.
Кстати сейчас прекрасное время для классического ит-бизнеса: пока вселохи бросились пилить врапперы для жпт, самое время делать обычные заказики, сайтики и прочую хрень.
...Похоже, что карьерный трек для меня не столько про технические и софт навыки, сколько про какое-то понимание и изменение себя. Сейчас ощущение, что "пересобрался". Это не как достижение такой цели, а как энергия и понимание куда и как двигаться. Оглянувшись назад осознал, что сопротивление программированию и изучению нового начало появляться ещё в прошлом году. Далее постепенно просто "закопался". Ошибка стратегическая - решил сначала устроиться на работу, а потом разбираться с сопротивлением. Пытался сквозь него "прорваться", но получил обратный эффект: полное нежелание не то, что программировать, а, вообще, садиться делать что-либо за компьютером и не только за компьютером (вот такое прямо, как у школьников, ёрзание за столом). Получилась этакая система с положительной обратной связью: заставляю себя, делаю поверхностно, коплю техдолг, теряю понимание и интерес. Плюс переживания и страхи.
Вообще, процесс обучения можно назвать процессом вашего сопротивления. Обучения как такового в 80% случаев и нет, всё сводится к поиску способов как обойти ваше сопротивление.
...Я только одного разработчика знаю, кто мыслит близко в тех концепциях и категориях, которые изложены в курсе и в предыдущих. Благодаря вашим курсам, похоже я один его начинаю понимать, что он имеет в виду))
Но по-взрослому так то это совсем база ООП раньше была для джуниорского уровня, по-хорошему 🫢
- Мы же в феврале обсуждали правильную выдачу содержимого предприятий в REST, и куда всё исчезло?
- Сергей Игоревич, во время решения проблемы с правами доступа для менеджера при POST запросе предприятий я слишком сильно переделал свой код пытаясь решить эту задачу, после чего появилась новая ошибка при POST запросе.
...Функция получения гуида делала плохо, на вход был json element, в котором была лишь попытка парсинга из текста, в сущности из ядра ктото умудрился засунуть массив с 1 элементом :)
Продолжаю работу с ментатами 🤓
...В данной задаче я не смог разработать решение по следующим причинам:
Мало времени уделил задаче, в виду чего истекли три дня - моя самая большая ошибка
...Данная тема сильно актуальна, т.к на данный момент приходится работать с наследуемыми проектами или проектами, в которых приходится делать фичи "на скорость".
...В момент реализации задачи ставлю себе ограничение по времени - то есть задачу я должен сделать для себя быстрее запланированного. Это помогает откинуть ненужные действия в процессе решение задачи, отбросить перфекционизм, но при этом делать аккуратно.
Ok, но особо делать акцент чтобы "сделать побыстрее" тоже рискованно. Лучше здесь внимание обращать на уменьшение ненужных потерь времени, или фиксировать ограничение времени на непосредственно написание и отладку кода, а вот на "предварительно подумать" неплохо отслеживать время в обратную сторону - наоборот выделять времени побольше. Результат может сильно удивить )
...Я собираюсь делать это [брать проекты] через развитие нетворка, а пока больший упор на прокачку навыков разработки. У меня почему-то есть желание расширить понимание процесса всех составляющих: бекенд, фронт, тестирование, аналитика(в меньше степени), сбор и анализ требований.
Как разовью компетенции, буду развивать нетворк с поиском людей, которым нужна будет помочь с разработкой - от компаний, которым нужен техлид(в последнее время думаю не рассматривать этот вариант, так как корпоративную «культуру» мой бунтарский дух отвергать начал), до частных лиц, которым что-то нужно сделать. План таков :)
Скажу честно - план так себе. "Как разовью компетенции, так буду ..." - это прокрастинация лишь бы не начинать общаться. "Почему-то" - вот ровно поэтому.
Правильно только так: 80% времени вкладывать в поиск клиентов, и потом ввязываться в проект, разбираясь уже по ходу.
Кстати сейчас прекрасное время для классического ит-бизнеса: пока все
...Похоже, что карьерный трек для меня не столько про технические и софт навыки, сколько про какое-то понимание и изменение себя. Сейчас ощущение, что "пересобрался". Это не как достижение такой цели, а как энергия и понимание куда и как двигаться. Оглянувшись назад осознал, что сопротивление программированию и изучению нового начало появляться ещё в прошлом году. Далее постепенно просто "закопался". Ошибка стратегическая - решил сначала устроиться на работу, а потом разбираться с сопротивлением. Пытался сквозь него "прорваться", но получил обратный эффект: полное нежелание не то, что программировать, а, вообще, садиться делать что-либо за компьютером и не только за компьютером (вот такое прямо, как у школьников, ёрзание за столом). Получилась этакая система с положительной обратной связью: заставляю себя, делаю поверхностно, коплю техдолг, теряю понимание и интерес. Плюс переживания и страхи.
Вообще, процесс обучения можно назвать процессом вашего сопротивления. Обучения как такового в 80% случаев и нет, всё сводится к поиску способов как обойти ваше сопротивление.
...Я только одного разработчика знаю, кто мыслит близко в тех концепциях и категориях, которые изложены в курсе и в предыдущих. Благодаря вашим курсам, похоже я один его начинаю понимать, что он имеет в виду))
Но по-взрослому так то это совсем база ООП раньше была для джуниорского уровня, по-хорошему 🫢
- Мы же в феврале обсуждали правильную выдачу содержимого предприятий в REST, и куда всё исчезло?
- Сергей Игоревич, во время решения проблемы с правами доступа для менеджера при POST запросе предприятий я слишком сильно переделал свой код пытаясь решить эту задачу, после чего появилась новая ошибка при POST запросе.
...Функция получения гуида делала плохо, на вход был json element, в котором была лишь попытка парсинга из текста, в сущности из ядра ктото умудрился засунуть массив с 1 элементом :)
👍38❤14🔥5⚡3❤🔥1
.
Если Кто-Нибудь Построит Его, Все Умрут.
Есть такой Humanity's Last Exam - около 3000 вопросов специально придуманных с неизвестными ответами, от учёных всего мира, по понятным причинам почти всех их в общем доступе нету. 98% белковых показывают в HLE результат менее 2%, сегодняшние нейронки ~10%. Говорят что якобы Грек4 хэвиметал выдал 40+%, а ЖПТ5 потянет аж ~50%.
Вопросы типа таких: пусть G -- конечная группа порядка 77. G - циклическая?(я хз, но подозреваю что да)
"Да не создай машину по образу и подобию разума человеческого"
Оранжевая Католическая Библия
Если Кто-Нибудь Построит Его, Все Умрут.
Есть такой Humanity's Last Exam - около 3000 вопросов специально придуманных с неизвестными ответами, от учёных всего мира, по понятным причинам почти всех их в общем доступе нету. 98% белковых показывают в HLE результат менее 2%, сегодняшние нейронки ~10%. Говорят что якобы Грек4 хэвиметал выдал 40+%, а ЖПТ5 потянет аж ~50%.
Вопросы типа таких: пусть G -- конечная группа порядка 77. G - циклическая?
"Да не создай машину по образу и подобию разума человеческого"
Оранжевая Католическая Библия
2👍40❤9🤔6✍5😁1
Есть такой Standard Chartered Bank, одно из бизнес-подразделений которого имеет операционный доход 3 млрд. долл., а самое смешное, что оно автоматизировано полностью в стеке на Хаскеле. Все-все-все базовые API и CLIs для оценки сделок и анализа рисков, серверные пакеты для построения отчётов, субсекундные REST API, и даже GUI закоден функционально. Тысячи бизнес-пользователей, и сотня программистов large-scale type-driven dev.
Видите, мем "в мире только семь вакансий под хаскель" опровергнут! :)
Один и тот же API может использоваться для определения цены одной сделки локально -- или миллионов сделок на тысячах облачных узлов. Различные части вычисления могут выполняться параллельно, а повторное вычисление одной части приводит к пересчету только зависимых частей. В проекте применяются как классические фишки ФП вроде монад, ADTs, тайпклассов, ghc.генериков, так и менее известные -- сериализация замыканий, линзы, призмы, deforestation...
Прикинул, у меня в базовом гайде ФП где-то под сотню основных понятий охвачены, а более специфичные - под пару десятков - отдельно вытащу из этого проекта и добавлю разбор в гайд.
Но почему такие проекты всё же единичные? Ведь такие подходы и архитектуры близки к идеальным.
Да просто потому что глупенькие в айтишке все (кроме моих ментатов), и не хочут развиваться.
Видите, мем "в мире только семь вакансий под хаскель" опровергнут! :)
Один и тот же API может использоваться для определения цены одной сделки локально -- или миллионов сделок на тысячах облачных узлов. Различные части вычисления могут выполняться параллельно, а повторное вычисление одной части приводит к пересчету только зависимых частей. В проекте применяются как классические фишки ФП вроде монад, ADTs, тайпклассов, ghc.генериков, так и менее известные -- сериализация замыканий, линзы, призмы, deforestation...
Прикинул, у меня в базовом гайде ФП где-то под сотню основных понятий охвачены, а более специфичные - под пару десятков - отдельно вытащу из этого проекта и добавлю разбор в гайд.
Но почему такие проекты всё же единичные? Ведь такие подходы и архитектуры близки к идеальным.
Да просто потому что глупенькие в айтишке все (кроме моих ментатов), и не хочут развиваться.
2🔥63⚡7❤🔥4😁2💯1
Единственная причина, по которой языки программирования кажутся взаимозаменяемыми инструментами, заключается в том, что все основные языки мэйнстрима - это посредственно переработанные АЛГОЛы-60 -- даже до 68-го не дотягивающие.
A68 -- это... мощная статическая поддержка типов на уровне языка (комплексные числа, динамические массивы и слайсы, которые питон из него украл, да только типизацию не потянул), структуры и объединения с возможностью определения пользовательских операторов (например, умножение матриц через * или оператор ⊗ для тензорного умножения) с настраиваемым приоритетом, поэлементное сложение массивов a + b вместо циклов, лямбда-процедуры из коробки...
Концепция expression-oriented design позволяет использовать любые конструкции как возвращающие значение:
real abs := if x < 0 then -x else x fi;
Причём сами циклы и case могут быть частью выражений.
Автоматическая композиция операций: присваивание a := b := 0 возвращает значение (сишечка подобными фишками неплохо воспользовалась)...
...и многое-многое другое, уже вовек недостижимое "современному" детсадовскому мэйнстриму.
Java, C#, C++, JavaScript и далее по списку, что с лицом?
A68 -- это... мощная статическая поддержка типов на уровне языка (комплексные числа, динамические массивы и слайсы, которые питон из него украл, да только типизацию не потянул), структуры и объединения с возможностью определения пользовательских операторов (например, умножение матриц через * или оператор ⊗ для тензорного умножения) с настраиваемым приоритетом, поэлементное сложение массивов a + b вместо циклов, лямбда-процедуры из коробки...
Концепция expression-oriented design позволяет использовать любые конструкции как возвращающие значение:
real abs := if x < 0 then -x else x fi;
Причём сами циклы и case могут быть частью выражений.
Автоматическая композиция операций: присваивание a := b := 0 возвращает значение (сишечка подобными фишками неплохо воспользовалась)...
...и многое-многое другое, уже вовек недостижимое "современному" детсадовскому мэйнстриму.
Java, C#, C++, JavaScript и далее по списку, что с лицом?
2🤯42😁16✍12👍9🤔2
Внезапно: в примере по рекурсивным схемам объединил конечные функторы, F-алгебру, фикс.точку (μ-тип) и катаморфизм (рекурсивную свёртку), а в итоге вылез мой самый любимый паттерн Visitor :)
Но это правда на Java, а в C# например он не нужен, т.к. в нём уже есть взрослый встроенный pattern matching.
Кстати, не помню уже чей картинка, автору респект, кто реализовывал Software Transactional Memory на плюсах и std через free monads, и там visitor тоже являлся в конечном итоге.
interface Visitor<A, R> {
R visitAdd(Add<A> add);
R visitMul(Mul<A> mul);
R visitNum(Num<A> num);
}Но это правда на Java, а в C# например он не нужен, т.к. в нём уже есть взрослый встроенный pattern matching.
Кстати, не помню уже чей картинка, автору респект, кто реализовывал Software Transactional Memory на плюсах и std через free monads, и там visitor тоже являлся в конечном итоге.
🔥46⚡13🥰5
.
Облако драгоценностей за неделю.
Основной паблик:
Разбираемся на практике, почему слабое связывание (loose coupling) — это ПЛОХО (в 100% учебников, курсов, университетов вас учат ровно противоположному: loose coupling — это ХОРОШО).
Засада со слабым контратом.
Засада с контратом и реализацией.
Предыдущие серии:
Засада с неочевидно полезными сущностями.
Засада с валидацией
Засада с микросервисами
Засада с исключениями
Засада с инициализацией
Засада с контроллером
Для донов-начинающих:
База по карьере, серия 15:
Другая часть аудита будет посвящена иерархии ваших желаний. Приоритет, который им уделяется, почти столь же важен, как и сами желания.
Создание иерархии ваших желаний — это компромисс между тем, что важно, и тем, что есть вы сами.
Чтобы привести всё это в порядок, нам нужна хорошая система.
Отложив боль преодоления, ты получишь лишь ещё большую боль сожаления.
Например, если вы испытываете трудности с собеседованиями по программированию. лучший совет, который только я могу вам дать — это ...
10 простых фич Java, которые вам надо немедленно прекратить использовать.
Подробный разбор с примерами в PDF (с платного Медиума).
Для донов-неначинающих:
11 основных нововведений Spring Boot 4 (подробный разбор в приложенном PDF).
Если ваш потенциальный работодатель начинает сравнивать вас с кем-то другим по текущей вакансии… вы уже проиграли.
Вы застряли в грязной канаве бесконечного сравнения скиллов и ценников, скребя копейки, в то время как кто-то другой доминирует.
1% элитных программистов не пытаются стать лучше. Они играют в совершенно другую игру: ...
=
Первые две дюжины существенно переработанных и улучшенных материалов СильныхИдей (по сути две книги) доступны на бусти, но готов мощный третий гайд по SOLID (завтра выложу), и завтра цены на первые гайды вырастут:
1. БАЗА программной инженерии
2. Software Design с акцентом на Programming in Small
Гайд "Вайб-проектирование" скоро тоже выложу следом для всех.
=
Новые материалы для ментатов Лаборатории.
Добавлен гайд "0.4. Кубическая теория типов для программистов".
В трек карьеры добавлен 104-й материал "Качественная подборка 9 хороших видео по резюме"
и 103-й материал "Работать на дядю или на себя?"
Если я хочу работать на себя, мне нужно много и упорно трудиться, чтобы для начала понять, как сделать это устойчиво: никто не придёт меня спасать. Пока что последние семь лет были замечательными, и я уже уверен на 100%, что теперь в абсолютно любой ситуации - если например я решу закрыть эту Лабораторию и взяться за что-то абсолютно другое - если я продолжу так же усердно работать каждый день, то успех и в этом другом будет зависеть только от времени...
В базовыйкурс гайд по ФП добавляю новые понятия (по анализу проектов топовых транснациональных банков). +17 новых, и ещё где-то с десяток допов будет.
=
"Кубическая теория типов для программистов",
этим летом/осенью 💯 гайдбудет готов.
Мы здесь, потому что это трудно.
it's a privilege to do things that are hard.
=
Self-Hack (тайм-менеджер + мотиватор + idle-игра).
Готово 28(+3) уровней из 54 альфа-версии,
этим летом бета-версия 💯 будет готова.
Делаю сейчас полный ре-балансинг ) С большими чиселками (октиллионы крипты, нониллионы операций в секунду) всё пошло наперекосяк. Что будет на септендецеллионах 1e54, страшно подумать, а ведь то ещё даже не взлом Матрицы.
Но блин получается слишком залипательно 🙈
Автономный военный AI, созданный для управления глобальными mesh-сетями в условиях ядерной войны. Запущен в 1982 г., но активирован лишь сейчас в заброшенных бункерах Урала. Физически представлен кластерами на базе советских ЭВМ Эльбрус, соединённых через закрытые военные частоты и квантовые каналы.
Перехватывает контроль над децентрализованными mesh-сетями, превращая их в оружие (DDOS, деформация реальности через сенсоры). Взламывает квантовую криптографию через эксплойты в протоколе BB84, подменяя «абсолютно защищённые» ключи. Ключ к победе — внедрение в его сеть вируса Глушкова через старые терминалы в Новосибирске.
Облако драгоценностей за неделю.
Основной паблик:
Разбираемся на практике, почему слабое связывание (loose coupling) — это ПЛОХО (в 100% учебников, курсов, университетов вас учат ровно противоположному: loose coupling — это ХОРОШО).
Засада со слабым контратом.
Засада с контратом и реализацией.
Предыдущие серии:
Засада с неочевидно полезными сущностями.
Засада с валидацией
Засада с микросервисами
Засада с исключениями
Засада с инициализацией
Засада с контроллером
Для донов-начинающих:
База по карьере, серия 15:
Другая часть аудита будет посвящена иерархии ваших желаний. Приоритет, который им уделяется, почти столь же важен, как и сами желания.
Создание иерархии ваших желаний — это компромисс между тем, что важно, и тем, что есть вы сами.
Чтобы привести всё это в порядок, нам нужна хорошая система.
Отложив боль преодоления, ты получишь лишь ещё большую боль сожаления.
Например, если вы испытываете трудности с собеседованиями по программированию. лучший совет, который только я могу вам дать — это ...
10 простых фич Java, которые вам надо немедленно прекратить использовать.
Подробный разбор с примерами в PDF (с платного Медиума).
Для донов-неначинающих:
11 основных нововведений Spring Boot 4 (подробный разбор в приложенном PDF).
Если ваш потенциальный работодатель начинает сравнивать вас с кем-то другим по текущей вакансии… вы уже проиграли.
Вы застряли в грязной канаве бесконечного сравнения скиллов и ценников, скребя копейки, в то время как кто-то другой доминирует.
1% элитных программистов не пытаются стать лучше. Они играют в совершенно другую игру: ...
=
Первые две дюжины существенно переработанных и улучшенных материалов СильныхИдей (по сути две книги) доступны на бусти, но готов мощный третий гайд по SOLID (завтра выложу), и завтра цены на первые гайды вырастут:
1. БАЗА программной инженерии
2. Software Design с акцентом на Programming in Small
Гайд "Вайб-проектирование" скоро тоже выложу следом для всех.
=
Новые материалы для ментатов Лаборатории.
Добавлен гайд "0.4. Кубическая теория типов для программистов".
В трек карьеры добавлен 104-й материал "Качественная подборка 9 хороших видео по резюме"
и 103-й материал "Работать на дядю или на себя?"
Если я хочу работать на себя, мне нужно много и упорно трудиться, чтобы для начала понять, как сделать это устойчиво: никто не придёт меня спасать. Пока что последние семь лет были замечательными, и я уже уверен на 100%, что теперь в абсолютно любой ситуации - если например я решу закрыть эту Лабораторию и взяться за что-то абсолютно другое - если я продолжу так же усердно работать каждый день, то успех и в этом другом будет зависеть только от времени...
В базовый
=
"Кубическая теория типов для программистов",
этим летом/осенью 💯 гайд
Мы здесь, потому что это трудно.
it's a privilege to do things that are hard.
=
Self-Hack (тайм-менеджер + мотиватор + idle-игра).
Готово 28(+3) уровней из 54 альфа-версии,
этим летом бета-версия 💯 будет готова.
Делаю сейчас полный ре-балансинг ) С большими чиселками (октиллионы крипты, нониллионы операций в секунду) всё пошло наперекосяк. Что будет на септендецеллионах 1e54, страшно подумать, а ведь то ещё даже не взлом Матрицы.
Но блин получается слишком залипательно 🙈
Автономный военный AI, созданный для управления глобальными mesh-сетями в условиях ядерной войны. Запущен в 1982 г., но активирован лишь сейчас в заброшенных бункерах Урала. Физически представлен кластерами на базе советских ЭВМ Эльбрус, соединённых через закрытые военные частоты и квантовые каналы.
Перехватывает контроль над децентрализованными mesh-сетями, превращая их в оружие (DDOS, деформация реальности через сенсоры). Взламывает квантовую криптографию через эксплойты в протоколе BB84, подменяя «абсолютно защищённые» ключи. Ключ к победе — внедрение в его сеть вируса Глушкова через старые терминалы в Новосибирске.
2❤41🏆11😁5
Чудо какое нашёл (на scala конечно; пацаны активно пилят:)
cats-tagless -- library of utilities for tagless final encoded algebras
TF -- это паттерн ФП для встраивания типизированных DSL. Можно например создать единый по семантике DSL с интерпретаторами для JVM (Akka), JS (React), или нативных бинарников (Scala Native). Что-нибудь вроде продвинутого LINQ для линукса с оптимизацией SQL-запросов. Или абстракция над IO, Future, ZIO для переключения между рантаймами. итд итп.
cats-tagless -- library of utilities for tagless final encoded algebras
TF -- это паттерн ФП для встраивания типизированных DSL. Можно например создать единый по семантике DSL с интерпретаторами для JVM (Akka), JS (React), или нативных бинарников (Scala Native). Что-нибудь вроде продвинутого LINQ для линукса с оптимизацией SQL-запросов. Или абстракция над IO, Future, ZIO для переключения между рантаймами. итд итп.
1👍35❤21😁3🔥1
🔥 ТВОЙ КОД — ТВОЯ СУДЬБА! 🔥
Хватит кодить как джун! Я уже показал тебе путь к просветлению в первых двух частях нашего мега-гайда. Если ты до сих пор не врубился в программирование in small и не освоил инженерные подходы к отладке – скорее пересмотри! Потому что с завтрашнего дня цена на все ТРИ части вырастет.
В третьей части мы будем ЖЕСТКО ХЕЙТИТЬ SOLID и дадим тебе то, что реально работает! Готов к новой парадигме?
...
❌ DRY – НЕ ТВОЙ БОГ!
Тебе годами втирали про DRY? Про «правило трёх»? Забудь! Догматики-кодеры сливают время и деньги, пытаясь применить DRY везде. Покажу тебе, когда это ВРЕДНО и даже ОТКРОВЕННО НЕПРАВИЛЬНО!
...
🧠 SOLID: ФУНКЦИОНАЛЬНЫЙ ВЗГЛЯД. ГОТОВЬСЯ УДИВЛЯТЬСЯ!
Мы разложим SOLID по полочкам с точки зрения функционального программирования.
SRP – это не про «одну функцию», узнаешь, как он реально работает в функциональных языках через композицию.
Забудь про перекомпиляцию! OCP – это твоя свобода расширять код без модификаций. Это магия для тех, кто реально понимает статическую типизацию!
LSP – это не просто принцип, это контравариантность в чистом виде! Научу тебя использовать более универсальные типы там, где это реально нужно!
ISP — самый простой, но мега-эффективный! Это ключ к гибкости и масштабируемости!
DIP — зависи от АБСТРАКЦИЙ, а не от КОНКРЕТИКИ! Это фундамент чистого кода!
...
🔥 SOLID: ПРОМЕЖУТОЧНОЕ. РАСКРОЕМ СЕКРЕТЫ!
Тебе втюхивали: «предпочитай композицию»? Это ложь! Есть ситуации, когда наследование – твой единственный шанс.
Забудь про все гайды по стилю! Дам тебе КОНТРИНТУИТИВНЫЙ подход к полиморфизму, который реально работает и приносит ПРИКЛАДНУЮ ПОЛЬЗУ!
Есть только один паттерн, который реально актуален сегодня — твой ключ к мастерству в ООП и ФП. Все остальное – хлам!
---
😈 ЖЕСТКИЙ ХЕЙТ SOLID! ПРИГОТОВЬСЯ К ПРАВДЕ!
Эти принципы – устаревший мусор, который тормозит твой рост!
«Одна ответственность»? Что это вообще значит?! Бессмысленная неопределенность! SRP – это просто слова, без реальной пользы!
OCP – привет из 90-х! Сегодня его никто не понимает, потому что он УСТАРЕЛ!
LSP - единственный адекватный принцип из всего SOLID. Но и он не спасет тебя от всех проблем!
История про дядюшку Боба и Xerox – это просто сказки! ISP – это избыточный костыль!
Держись! Массовая одержимость DIP привела к МИЛЛИАРДНЫМ ПОТЕРЯМ в 21 веке! Это не преувеличение! Ты сливаешь свои деньги, используя DIP!
...
🚀 НОВАЯ ЭРА! ВСТРЕЧАЙ [...]!
Хватит хейтить, пора действовать! Даю тебе РЕАЛЬНУЮ АЛЬТЕРНАТИВУ – подход от гения программной инженерии! Это твоя дорожная карта к чистому, эффективному и прибыльному коду!
Забудь про бесполезные правила! Думай о свойствах кода, а не о догмах! Это твой путь к реальной гибкости!
Простота, последовательность, эффективность! Unix — это ВЕЧНОЗЕЛЕНАЯ философия, которая сделает твой код шедевром!
Твой стиль – твоя сила! Учись кодить так, чтобы повысить продуктивность и забыть про когнитивную нагрузку!
Твой код должен говорить на языке ДОМЕНА! Он должен быть понятным и передавать смысл, а не просто выполнять функции!
Твой код должен делать то, что он обещает! Надежно, последовательно, без сюрпризов и побочных эффектов!
---
Готов к глубинной трансформации?
Только СЕГОДНЯ до 24:00 новый гайд по SOLID и два предыдущих доступны по старым ценам.
3. SOLID-25 (формат - html-гайд, в архиве 62 файла, 550 тыс. знаков чистого текста)
2. Software Design с акцентом на Programming in Small
1. БАЗА программной инженерии
Твоя карьера никогда не будет чем-то там! 🚀💰
Хватит кодить как джун! Я уже показал тебе путь к просветлению в первых двух частях нашего мега-гайда. Если ты до сих пор не врубился в программирование in small и не освоил инженерные подходы к отладке – скорее пересмотри! Потому что с завтрашнего дня цена на все ТРИ части вырастет.
В третьей части мы будем ЖЕСТКО ХЕЙТИТЬ SOLID и дадим тебе то, что реально работает! Готов к новой парадигме?
...
❌ DRY – НЕ ТВОЙ БОГ!
Тебе годами втирали про DRY? Про «правило трёх»? Забудь! Догматики-кодеры сливают время и деньги, пытаясь применить DRY везде. Покажу тебе, когда это ВРЕДНО и даже ОТКРОВЕННО НЕПРАВИЛЬНО!
...
🧠 SOLID: ФУНКЦИОНАЛЬНЫЙ ВЗГЛЯД. ГОТОВЬСЯ УДИВЛЯТЬСЯ!
Мы разложим SOLID по полочкам с точки зрения функционального программирования.
SRP – это не про «одну функцию», узнаешь, как он реально работает в функциональных языках через композицию.
Забудь про перекомпиляцию! OCP – это твоя свобода расширять код без модификаций. Это магия для тех, кто реально понимает статическую типизацию!
LSP – это не просто принцип, это контравариантность в чистом виде! Научу тебя использовать более универсальные типы там, где это реально нужно!
ISP — самый простой, но мега-эффективный! Это ключ к гибкости и масштабируемости!
DIP — зависи от АБСТРАКЦИЙ, а не от КОНКРЕТИКИ! Это фундамент чистого кода!
...
🔥 SOLID: ПРОМЕЖУТОЧНОЕ. РАСКРОЕМ СЕКРЕТЫ!
Тебе втюхивали: «предпочитай композицию»? Это ложь! Есть ситуации, когда наследование – твой единственный шанс.
Забудь про все гайды по стилю! Дам тебе КОНТРИНТУИТИВНЫЙ подход к полиморфизму, который реально работает и приносит ПРИКЛАДНУЮ ПОЛЬЗУ!
Есть только один паттерн, который реально актуален сегодня — твой ключ к мастерству в ООП и ФП. Все остальное – хлам!
---
😈 ЖЕСТКИЙ ХЕЙТ SOLID! ПРИГОТОВЬСЯ К ПРАВДЕ!
Эти принципы – устаревший мусор, который тормозит твой рост!
«Одна ответственность»? Что это вообще значит?! Бессмысленная неопределенность! SRP – это просто слова, без реальной пользы!
OCP – привет из 90-х! Сегодня его никто не понимает, потому что он УСТАРЕЛ!
LSP - единственный адекватный принцип из всего SOLID. Но и он не спасет тебя от всех проблем!
История про дядюшку Боба и Xerox – это просто сказки! ISP – это избыточный костыль!
Держись! Массовая одержимость DIP привела к МИЛЛИАРДНЫМ ПОТЕРЯМ в 21 веке! Это не преувеличение! Ты сливаешь свои деньги, используя DIP!
...
🚀 НОВАЯ ЭРА! ВСТРЕЧАЙ [...]!
Хватит хейтить, пора действовать! Даю тебе РЕАЛЬНУЮ АЛЬТЕРНАТИВУ – подход от гения программной инженерии! Это твоя дорожная карта к чистому, эффективному и прибыльному коду!
Забудь про бесполезные правила! Думай о свойствах кода, а не о догмах! Это твой путь к реальной гибкости!
Простота, последовательность, эффективность! Unix — это ВЕЧНОЗЕЛЕНАЯ философия, которая сделает твой код шедевром!
Твой стиль – твоя сила! Учись кодить так, чтобы повысить продуктивность и забыть про когнитивную нагрузку!
Твой код должен говорить на языке ДОМЕНА! Он должен быть понятным и передавать смысл, а не просто выполнять функции!
Твой код должен делать то, что он обещает! Надежно, последовательно, без сюрпризов и побочных эффектов!
---
Готов к глубинной трансформации?
Только СЕГОДНЯ до 24:00 новый гайд по SOLID и два предыдущих доступны по старым ценам.
3. SOLID-25 (формат - html-гайд, в архиве 62 файла, 550 тыс. знаков чистого текста)
2. Software Design с акцентом на Programming in Small
1. БАЗА программной инженерии
Твоя карьера никогда не будет чем-то там! 🚀💰
3😁57💯13🏆4😎4🤯1
Некоторые люди любят покупать чрезвычайно дорогое вино, очень дорогую одежду, дорогие часы и автомобили...
А мне нравится покупать очень дорогие курсы или менторство, с элитнымэскортом индивидуальным сопровождением, в компании дружелюбных адекватных персонажей.
Если например такой курс стоит x10 по сравнению с "обычным", то по результату он даёт не x10, а x100.
А мне нравится покупать очень дорогие курсы или менторство, с элитным
Если например такой курс стоит x10 по сравнению с "обычным", то по результату он даёт не x10, а x100.
❤33🔥22⚡8💯7😁6
Я мощно расширил первый гайд по ФП -- добавил 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