Ты сеньор, тебе предлагают программиста в помощь. Кого возьмёшь?
Anonymous Poll
28%
Уровень джуна, но классно умеет делать задачки миддла с AI
28%
Крепкий миддл, но не умеет и не хочет использовать AI
44%
Никто не нужен, я сам всё сделаю (с AI или без), если дадите мне его зарплату + к моей
😁23🐳21👍7❤2🤔2
Где-то в 1990-2000-е, когда интернет стремительно развивался с нуля, казалось, что практически бесплатный доступ ко всем знаниям мира существенно повысит общий культурный и интеллектуальный уровень человечества. И программисты становились миллиардерами с нуля в эпоху доткомов, и перспективы выглядели самыми радужными.
Но в итоге всё закончилось тем, что общий образовательный и культурный уровень из-за интернета стал стремительно падать, и востребован он 98% человеков оказался только с целью смотреть бесконечные видеоролики и порно, играть в игры, лайкать котиков и переругиваться с незнакомыми людьми. В выигрыше же стабильно остаются примерно 2% населения планеты (у которых от рожденияшило в заднице повышенная активность ретикулярной формации).
С лёгкой печалью наблюдаю, что сейчас практически 1:1 ситуация с доткомами повторяется теперь в отношении AI. Пока кажется, что практически бесплатный доступ к менторам 24/7, не только обладающими всем знаниям мира, но и способными практически любую тему пояснять существенно выше среднего экспертного уровня, существенно повысит общий культурный и интеллектуальный уровень человечества. И программисты также становятся миллиардерами с нуля в эпоху AI, и перспективы выглядят самыми радужными.
Но я уверен 💯 , что уже в этом десятилетии всё снова закончится "бесконечными видеороликами и порно, играми, лайками котиков и переругивании с незнакомыми людьми" -- только уже не в реальной жизни (хоть и по ту сторону экрана), а в симулякре, полностью сгенерированном AI под интересы конкретного существа...
В адеквате же в итоге останется даже не 2, а 2 от 2 процента = 0.04% белковых/кожаных...
Будешь зажат и скован, смотреть на этот серый дождь
Ты не можешь быть разочарован, если ничего не ждёшь.
Любовь никому не нужна здесь, я буду пробовать жить без неё...
❤️❤️❤️
Но в итоге всё закончилось тем, что общий образовательный и культурный уровень из-за интернета стал стремительно падать, и востребован он 98% человеков оказался только с целью смотреть бесконечные видеоролики и порно, играть в игры, лайкать котиков и переругиваться с незнакомыми людьми. В выигрыше же стабильно остаются примерно 2% населения планеты (у которых от рождения
С лёгкой печалью наблюдаю, что сейчас практически 1:1 ситуация с доткомами повторяется теперь в отношении AI. Пока кажется, что практически бесплатный доступ к менторам 24/7, не только обладающими всем знаниям мира, но и способными практически любую тему пояснять существенно выше среднего экспертного уровня, существенно повысит общий культурный и интеллектуальный уровень человечества. И программисты также становятся миллиардерами с нуля в эпоху AI, и перспективы выглядят самыми радужными.
Но я уверен 💯 , что уже в этом десятилетии всё снова закончится "бесконечными видеороликами и порно, играми, лайками котиков и переругивании с незнакомыми людьми" -- только уже не в реальной жизни (хоть и по ту сторону экрана), а в симулякре, полностью сгенерированном AI под интересы конкретного существа...
В адеквате же в итоге останется даже не 2, а 2 от 2 процента = 0.04% белковых/кожаных...
Будешь зажат и скован, смотреть на этот серый дождь
Ты не можешь быть разочарован, если ничего не ждёшь.
Любовь никому не нужна здесь, я буду пробовать жить без неё...
❤️❤️❤️
❤52👍17🤔6🔥4🐳1
Хейлсберг рассказал, почему для переписывания TypeScript выбрал Go.
Типа, несколько месяцев они занимались прототипированием на разных языках, и Go оказался лучшим из всех: "Go proved the best fit, he said, with optimized native code for all platforms, great control over data layout, ability to have cyclic data structures and so forth, as well as automatic memory management with a garbage collector, and great access to concurrency.
...Hejlsberg said that despite advances in AOT, C# is bytecode-first, is not on all platforms, doesn’t have a decade of hardening and was not engineered that way."
Казалось бы, почему не Rust или C++ (про C# вообще молчим)? В туповатом Go действительно многие востребованные в TS 7 вещи (управление памятью, многопоточность...) реализованы в готовом виде "под капотом", и все аргументы Хейлсберга сводятся фактически к тому, что Go -- наиболее простой вариант из всех, особенно с учётом уровня доступных разработчиков.
Мэйнстрим -- это всегда примитивизация.
Типа, несколько месяцев они занимались прототипированием на разных языках, и Go оказался лучшим из всех: "Go proved the best fit, he said, with optimized native code for all platforms, great control over data layout, ability to have cyclic data structures and so forth, as well as automatic memory management with a garbage collector, and great access to concurrency.
...Hejlsberg said that despite advances in AOT, C# is bytecode-first, is not on all platforms, doesn’t have a decade of hardening and was not engineered that way."
Казалось бы, почему не Rust или C++ (про C# вообще молчим)? В туповатом Go действительно многие востребованные в TS 7 вещи (управление памятью, многопоточность...) реализованы в готовом виде "под капотом", и все аргументы Хейлсберга сводятся фактически к тому, что Go -- наиболее простой вариант из всех, особенно с учётом уровня доступных разработчиков.
Мэйнстрим -- это всегда примитивизация.
❤42👍17🤔11🐳6🤓2
Моя лучшая инвестиция за март -- это 189 рублей за плагин к хрому, который ускоряет ютуб до 4k. Я ещё прошлой осенью прогнозировал, что быстро появятся перепродавцы трафика (не исключено, связанные коммерческими интересами с лицами, ответственными за тормоз ютуба:) .
Не люблю для этого впн запускать, в целом он много чего подтормаживает, пользуюсь им только для работы с клодом 3.7 и виндсёрфом. А так, в браузере фоном слушать подкасты, смотреть велогонки в маленьком окне, самое оно.
Вот прекрасное например: "Рабство 21го века. Как тебя обманывают в ИТ"
Не люблю для этого впн запускать, в целом он много чего подтормаживает, пользуюсь им только для работы с клодом 3.7 и виндсёрфом. А так, в браузере фоном слушать подкасты, смотреть велогонки в маленьком окне, самое оно.
Вот прекрасное например: "Рабство 21го века. Как тебя обманывают в ИТ"
❤34👍17🫡4✍2🤔1
Второй сериал из 12 материалов СильныхИдей: продолжаем тему software design с акцентом на programming in small, и немного затронем programming in large.
(уровень понимания крепкий джуниор, но наверняка этим темам вас никто не учил даже в универе :)
Так они доступны только моим курсантам, но тут расширенные версии, дополненные множеством примеров (преимущественно на Java).
Цена до завтрашнего дня: 1499 рублей.
Формат - html-гайд, в архиве 38 файлов, 200 тыс. знаков чистого текста.
Доступен на бусти.
=
(Предыдущий сериал из 14 материалов СильныхИдей: БАЗА программной инженерии)
=
Краткое содержание второго сезона:
5 советов по повышению качества проектирования программных систем
Как повысить качество проектирования программных систем?
В ответ на такой вопрос обычно даются шаблонные советы, например:
"Больше работай над практическими проектами".
"Найди хороший проект с открытым кодом и изучай его код."
"Попроси коллегу, чтобы он провел code review".
Если читать между строк, то все это сведётся к "я не знаю"...
Три правила простого проектного дизайна
Как насчёт того, чтобы защитить от ошибок дизайн (в архитектурном смысле) вашего проекта? Как сделать его более удобным для развития и сопровождения?
В тему ещё можно упомянуть выученную беспомощность по Селигману.
И вот как вам не попадать в подобные ловушки ...
Важные принципы хорошего кода
...Ищите общие структуры управления и абстрагируйтесь от них. На самом деле таких шаблонов не так уж много, в СильныхИдеях (и теперь тут) постепенно их выкладываю. Усвойте эти принципы, и у вас появится внутренняя сила, которая не позволит вам писать плохой код, и вы будете блистать на code review!..
Прикладной хак из функционального программирования
Формальная чистота кода в функциональном программировании возведена в ранг святой темы. Однако платой за это становится тот факт, что код программы распухает и начинает занимать всё больший объём. И вот что с этим делать...
Как правильно готовить тесты
"Тестируйте то, что код должен делать, а не то, что он случайно делает".
Как именно вы определяете, какие писать юнит-тесты?
Что на самом деле означает корректность данной фичи?..
Почему любые дефлотные параметры -- зло
Справедливо считается, что использование дефолтных параметров (прежде всего мутабельных) -- зло. Выясняем, как с этим обстоит дело в Python и C#, C++ и TypeScript , F#, Swift, Kotlin и Rust.
Генерация исключений -- зло
С их "помощью" вы получаете слепое пробрасывание исключений, смешение checked и unchecked исключений, непредсказуемые ветвления, рекурсивные выбросы исключений, нарушение иерархии исключений, неполное логирование...
Как и зачем отказываться от хранения логических значений в базе
Есть очень мало вещей в программировании, которые однозначно и безоговорочно можно считать хорошей идеей.
Сила низкоуровневых подходов
Я постоянно призываю думать над проектом как можно более сильными абстракциями, и может показаться, что для этого надо использовать только небольшое число функциональных языков со строгой системой типов. Но нет, мне на самом деле очень нравится язык Си...
Некоторые разработчики говорили, что этот материал изменил их вычислительное мировоззрение :) Может быть, это случится и с вами?
Проверяем легаси на прочность
...Есть такая глобальная система бронирования авиабилетов SABRE, API которой существует уже 60 лет ))) и если у вас когда-либо был неудачный опыт работы с авиакомпанией, есть шанс, что частично это было связано с её API.
Когда на ваше API завязано множество сторонних ИТ-систем, вы, возможно, уже никогда не сможете изменить поведение вашего API. Поэтому...
Вечный компромисс между возможностями и удобством
Чем больше разных сущностей и концепций может представлять ваша система, тем меньше вы можете сказать о самих этих вещах, которые в ней представлены...
4 важных свойства хорошего кода
Если для того, чтобы проверить, работает ли программа правильно, нужно приложить максимум усилий, то, скорее всего, она работает неправильно.
Но при работе с хорошим кодом думать почти не нужно.
(уровень понимания крепкий джуниор, но наверняка этим темам вас никто не учил даже в универе :)
Так они доступны только моим курсантам, но тут расширенные версии, дополненные множеством примеров (преимущественно на Java).
Цена до завтрашнего дня: 1499 рублей.
Формат - html-гайд, в архиве 38 файлов, 200 тыс. знаков чистого текста.
Доступен на бусти.
=
(Предыдущий сериал из 14 материалов СильныхИдей: БАЗА программной инженерии)
=
Краткое содержание второго сезона:
5 советов по повышению качества проектирования программных систем
Как повысить качество проектирования программных систем?
В ответ на такой вопрос обычно даются шаблонные советы, например:
"Больше работай над практическими проектами".
"Найди хороший проект с открытым кодом и изучай его код."
"Попроси коллегу, чтобы он провел code review".
Если читать между строк, то все это сведётся к "я не знаю"...
Три правила простого проектного дизайна
Как насчёт того, чтобы защитить от ошибок дизайн (в архитектурном смысле) вашего проекта? Как сделать его более удобным для развития и сопровождения?
В тему ещё можно упомянуть выученную беспомощность по Селигману.
И вот как вам не попадать в подобные ловушки ...
Важные принципы хорошего кода
...Ищите общие структуры управления и абстрагируйтесь от них. На самом деле таких шаблонов не так уж много, в СильныхИдеях (и теперь тут) постепенно их выкладываю. Усвойте эти принципы, и у вас появится внутренняя сила, которая не позволит вам писать плохой код, и вы будете блистать на code review!..
Прикладной хак из функционального программирования
Формальная чистота кода в функциональном программировании возведена в ранг святой темы. Однако платой за это становится тот факт, что код программы распухает и начинает занимать всё больший объём. И вот что с этим делать...
Как правильно готовить тесты
"Тестируйте то, что код должен делать, а не то, что он случайно делает".
Как именно вы определяете, какие писать юнит-тесты?
Что на самом деле означает корректность данной фичи?..
Почему любые дефлотные параметры -- зло
Справедливо считается, что использование дефолтных параметров (прежде всего мутабельных) -- зло. Выясняем, как с этим обстоит дело в Python и C#, C++ и TypeScript , F#, Swift, Kotlin и Rust.
Генерация исключений -- зло
С их "помощью" вы получаете слепое пробрасывание исключений, смешение checked и unchecked исключений, непредсказуемые ветвления, рекурсивные выбросы исключений, нарушение иерархии исключений, неполное логирование...
Как и зачем отказываться от хранения логических значений в базе
Есть очень мало вещей в программировании, которые однозначно и безоговорочно можно считать хорошей идеей.
Сила низкоуровневых подходов
Я постоянно призываю думать над проектом как можно более сильными абстракциями, и может показаться, что для этого надо использовать только небольшое число функциональных языков со строгой системой типов. Но нет, мне на самом деле очень нравится язык Си...
Некоторые разработчики говорили, что этот материал изменил их вычислительное мировоззрение :) Может быть, это случится и с вами?
Проверяем легаси на прочность
...Есть такая глобальная система бронирования авиабилетов SABRE, API которой существует уже 60 лет ))) и если у вас когда-либо был неудачный опыт работы с авиакомпанией, есть шанс, что частично это было связано с её API.
Когда на ваше API завязано множество сторонних ИТ-систем, вы, возможно, уже никогда не сможете изменить поведение вашего API. Поэтому...
Вечный компромисс между возможностями и удобством
Чем больше разных сущностей и концепций может представлять ваша система, тем меньше вы можете сказать о самих этих вещах, которые в ней представлены...
4 важных свойства хорошего кода
Если для того, чтобы проверить, работает ли программа правильно, нужно приложить максимум усилий, то, скорее всего, она работает неправильно.
Но при работе с хорошим кодом думать почти не нужно.
4✍40👍9❤7👏2
ООП по сути просто кривая эмуляция алгебраических типов данных и тайп-классов. Да, понятие класса/объекта, считается, легче заходит начинающим, хотя по сотне ребят, кто прошёл мой курс для начинающих с полного нуля, смотрю, оно совсем не так легко и просто воспринимается, как может показаться. Скорее наоборот: человек доучился до уровня, когда может написать сортировку массива, но далее переход к объектам, когда надо что-то смоделировать с помощью классов, в 70% случаев вызывает разрыв шаблона. Это совсем не интуитивно!
А вот развитие в сторону условного функционального программирования происходит действительно легко и просто. Есть функции, есть интерфейсы, и есть чётко отделённые от них структуры данных, и надо просто учиться это всё комбинировать и выстраивать цепочки трансформаций.
Но я не могу так учить, потому что 100% вакансий будут требовать знания ООП.
Однако из позитивных трендов нельзя не упомянуть Go и Rust, где никаким наследованием и не пахнет. Впрочем, в computer science это было давно известно, вот легендарный учебник "Object-Oriented Programming With ANSI-C" 1993-го года от одного из святых cs, крайне рекомендую всем вне зависимости от того, на каком языке вы пишете.
Код/логика должен быть простым, а для этого он должен быть прежде всего плоским. Ну ок, на хаскеле наверное это получается лучше всего, но например в F# есть модули, интерфейсы , статические методы, SRTP...
Ну и конечно либа FSharpPlus.
А вот развитие в сторону условного функционального программирования происходит действительно легко и просто. Есть функции, есть интерфейсы, и есть чётко отделённые от них структуры данных, и надо просто учиться это всё комбинировать и выстраивать цепочки трансформаций.
Но я не могу так учить, потому что 100% вакансий будут требовать знания ООП.
Однако из позитивных трендов нельзя не упомянуть Go и Rust, где никаким наследованием и не пахнет. Впрочем, в computer science это было давно известно, вот легендарный учебник "Object-Oriented Programming With ANSI-C" 1993-го года от одного из святых cs, крайне рекомендую всем вне зависимости от того, на каком языке вы пишете.
Код/логика должен быть простым, а для этого он должен быть прежде всего плоским. Ну ок, на хаскеле наверное это получается лучше всего, но например в F# есть модули, интерфейсы , статические методы, SRTP...
type Adder<'T> = { Add : 'T -> 'T -> 'T }
let addValues adder a b = adder.Add a b
let intAdder = { Add = (+) }
let result = addValues intAdder 3 5Ну и конечно либа FSharpPlus.
👍48🤔10✍1❤1
Продолжаю работу с курсантами 🤓
...Также у нас в компании начинаются сокращения, до многих дошли с уведомлением об увольнении. Я не попадаю под сокращение, но на собственной шкуре ощутил важность иметь предложения от других компаний.
...На данном этапе обучения у меня отсутствует напрочь логика построения запроса таким образом, чтобы создавать временные агрегированные таблицы с целью дальнейшего использования. Алгебраически вроде понятно, как и что вычислять, но группировка данных и дальнейшее использование не ясно
...когда в том году получилось устроиться в [...], все время уходило на работу, на доучивание стека.
Подумал, наконец-то карьеру сделал, дальше можно спокойно жить и развиватся.
На тот период забросил все дополнительные курсы - физические не было времени.
В итоге в феврале сократили. Как говорится, расскажи богу о своих планах. А на рынке какая-то беда. Работу найти не могу.
Желание расти и развиваться, как разработчик не забросил. Хочу продолжить.
...С удивлением обнаружил, что не позволяю перезатирать значения по ключу. Почему я решил сделать такое поведение мне уже не ведомо, больше похоже на ошибку. В целом, я бы таким контейнером не пользовался бы xD
...Зато обратил внимание как мысли стали выстраиваться иначе в решении повседневных задач на основной работе.
...Самостоятельно доперел до того, что операции объединения/пересечения/вычитания замкнуты на типе, разве что не знал, как это называется правильно.
...При выполнении этого задания я ощутил погружение в реальную жизнь разработчика с неполной документацией, нечёткими требованиями и недостатком знаний.
...Также у нас в компании начинаются сокращения, до многих дошли с уведомлением об увольнении. Я не попадаю под сокращение, но на собственной шкуре ощутил важность иметь предложения от других компаний.
...На данном этапе обучения у меня отсутствует напрочь логика построения запроса таким образом, чтобы создавать временные агрегированные таблицы с целью дальнейшего использования. Алгебраически вроде понятно, как и что вычислять, но группировка данных и дальнейшее использование не ясно
...когда в том году получилось устроиться в [...], все время уходило на работу, на доучивание стека.
Подумал, наконец-то карьеру сделал, дальше можно спокойно жить и развиватся.
На тот период забросил все дополнительные курсы - физические не было времени.
В итоге в феврале сократили. Как говорится, расскажи богу о своих планах. А на рынке какая-то беда. Работу найти не могу.
Желание расти и развиваться, как разработчик не забросил. Хочу продолжить.
...С удивлением обнаружил, что не позволяю перезатирать значения по ключу. Почему я решил сделать такое поведение мне уже не ведомо, больше похоже на ошибку. В целом, я бы таким контейнером не пользовался бы xD
...Зато обратил внимание как мысли стали выстраиваться иначе в решении повседневных задач на основной работе.
...Самостоятельно доперел до того, что операции объединения/пересечения/вычитания замкнуты на типе, разве что не знал, как это называется правильно.
...При выполнении этого задания я ощутил погружение в реальную жизнь разработчика с неполной документацией, нечёткими требованиями и недостатком знаний.
❤🔥43✍17👍6❤3💯2
Отчёт за неделю.
Официальный "блоггер-паблик"
-- Почему многоуровневые подходы (Clear, Onion, Hexagon, да какие угодно)
в конечном итоге приводят лишь к фрагментации домена и расползанию бизнес-логики...
Для донов начинающих+ по саморазвитию
-- Если вы работали c сервисами Jira, Trello, Notion , то уже фактически имеется представление о Kanban. Но буквально в последние годы активно развиваются их конкуренты, которые внедряют AI... Некоторые платформы добавляют игровые элементы, например, баллы за выполнение задач, уровни и награды, соревнования с другими и т.п. Получается своеобразная "Жизнь как Ролевая игра" :)
-- Набор на мой новый трек для начинающих с полного нуля, 5 мест закончились за один час. Такие наборы для донов теперь проводятся регулярно.
-- Вы отправили заявки на более чем 200 вакансий — и ни одного отклика? Проблема не в навыках — у вас всё выглядит как у любого другого джуниора.
В большинстве резюме есть:
- Опыт работы с JavaScript и Java или Python
- TODO-приложение на GitHub
- "Увлечён программированием, хочу у вас работать" в сопроводительном письме.
Если вы не выделяетесь из массовки, вас игнорируют. Три ключевых шага, которые вам надо сделать.
=
Для донов-неначинающих
— Open Closed Principle
Мы хотим иметь возможность повторно использовать и расширять код без необходимости изменять исходную реализацию. ФП достигает этого с помощью двух инструментов...
— Single Responsibility Principle
Если доводить SRP до логического предела, то, скорее всего, вы получите кодовую базу с множеством мелкоструктурных классов, каждый из которых имеет единственный метод. когда такое мелкое структурирование происходит неоднократно, пора переходить на функциональный стиль...
Бусти
-- command-line tool for answering that eternal question: Who wrote this code?!
-- Важно! 2 сезон сериала СильныхИдей:
Продолжаем тему software design с акцентом на programming in small, и немного затронем programming in large. Полное содержание тут.
(Первая часть: БАЗА программной инженерии)
Официальный "блоггер-паблик"
-- Почему многоуровневые подходы (Clear, Onion, Hexagon, да какие угодно)
в конечном итоге приводят лишь к фрагментации домена и расползанию бизнес-логики...
Для донов начинающих+ по саморазвитию
-- Если вы работали c сервисами Jira, Trello, Notion , то уже фактически имеется представление о Kanban. Но буквально в последние годы активно развиваются их конкуренты, которые внедряют AI... Некоторые платформы добавляют игровые элементы, например, баллы за выполнение задач, уровни и награды, соревнования с другими и т.п. Получается своеобразная "Жизнь как Ролевая игра" :)
-- Набор на мой новый трек для начинающих с полного нуля, 5 мест закончились за один час. Такие наборы для донов теперь проводятся регулярно.
-- Вы отправили заявки на более чем 200 вакансий — и ни одного отклика? Проблема не в навыках — у вас всё выглядит как у любого другого джуниора.
В большинстве резюме есть:
- Опыт работы с JavaScript и Java или Python
- TODO-приложение на GitHub
- "Увлечён программированием, хочу у вас работать" в сопроводительном письме.
Если вы не выделяетесь из массовки, вас игнорируют. Три ключевых шага, которые вам надо сделать.
=
Для донов-неначинающих
— Open Closed Principle
Мы хотим иметь возможность повторно использовать и расширять код без необходимости изменять исходную реализацию. ФП достигает этого с помощью двух инструментов...
— Single Responsibility Principle
Если доводить SRP до логического предела, то, скорее всего, вы получите кодовую базу с множеством мелкоструктурных классов, каждый из которых имеет единственный метод. когда такое мелкое структурирование происходит неоднократно, пора переходить на функциональный стиль...
Бусти
-- command-line tool for answering that eternal question: Who wrote this code?!
-- Важно! 2 сезон сериала СильныхИдей:
Продолжаем тему software design с акцентом на programming in small, и немного затронем programming in large. Полное содержание тут.
(Первая часть: БАЗА программной инженерии)
3❤36✍6🔥2👏1
...Но главное, что весь предыдущий недельный спринт я вложил в курс "Гомотопическая теория типов для программистов". Продвигается очень тяжело, но зато я буду первым в мире, кто низведёт HoTT до уровня рядовых миддлов мэйнстрима. Ну или возвысит их до уровня HoTT :)
Столько времени к сожалению вкладывать в него долгосрочно нереально, ну хотя бы по нескольку помидорок в день буду стараться.
Пока я сделал БАЗУ: введение в HoTT и MLTT, интуиционистская версия, теория групп, открытое множество, непрерывное отображение, топологическое пространство...
И начал "Базовые понятия": фундаментальная группа, петля, путь, окружность, тор... При этом добавляю мою реализацию HoTT на питоне, с максимумом комментариев.
=
Отвечая на ваш вопрос. Нет никакой практической ценности в изучении HoTT, иначе вся мировая айтишка была бы там. Однако HoTT от этого застрахован, потому что туда очень трудно попасть.
..И все же всегда имеется слабая возможность и для обычного человека войти в эту тему, если он получит правильную карту. Но, предупреждаю заранее, если ему это и удаётся, то результатом становится замешательство, иногда необратимое -- вплоть до полного unemployable.
Столько времени к сожалению вкладывать в него долгосрочно нереально, ну хотя бы по нескольку помидорок в день буду стараться.
Пока я сделал БАЗУ: введение в HoTT и MLTT, интуиционистская версия, теория групп, открытое множество, непрерывное отображение, топологическое пространство...
И начал "Базовые понятия": фундаментальная группа, петля, путь, окружность, тор... При этом добавляю мою реализацию HoTT на питоне, с максимумом комментариев.
=
Отвечая на ваш вопрос. Нет никакой практической ценности в изучении HoTT, иначе вся мировая айтишка была бы там. Однако HoTT от этого застрахован, потому что туда очень трудно попасть.
..И все же всегда имеется слабая возможность и для обычного человека войти в эту тему, если он получит правильную карту. Но, предупреждаю заранее, если ему это и удаётся, то результатом становится замешательство, иногда необратимое -- вплоть до полного unemployable.
1❤46👍11🤯6⚡1🤔1
Твой выбор, мистер Андерсон. Альтернативы нет :)
Anonymous Poll
64%
Страх потратить всю жизнь на работу, которая ощущается как каторга
36%
Страх потерять работу и умереть в нищете
🤯21🫡13😎12🐳3
То знакомое чувство лёгкой грусти, когда возникает очередное противоречие между теоретической моделью обобщённых типов, и их фактической реализацией в Python...
Даже на таком простом уровне, как реализация типа-суммы (дизъюнктное объединение типов- параметров).
Когда уже сделал реализацию, но решил сэкономить на том, чему активно учишь других, и забил на TDD (или хотя бы "тесты-первыми"). В результате первые же тесты ломаются, после чего тратишь кучу времени на странные баги, а когда добираешься до причины, понимаешь, что всё придётся переписать заново :)
Я совсем забыл, что питончик - это type erasure, когда информация о параметрах типа (T и U для класса Sum[T, U]) стирается во время выполнения...
Тут рекомендуют паттерн Стратегия, но я бы для продакшена делал фабричные методы вроде Sum.left(), которые создают экземпляры Sum с явно заданным значением is_left, что полностью обходит необходимость определения типа во время выполнения.
Но в данном случае (и в ряде существенно более сложных) мне надобудет придумать как сделать абсолютно чистый в математическом смысле интерфейс.
Даже на таком простом уровне, как реализация типа-суммы (дизъюнктное объединение типов- параметров).
class Sum(Generic[T, U]):
def __init__(self, value: Union[T, U], is_left: Optional[bool] = None):
Когда уже сделал реализацию, но решил сэкономить на том, чему активно учишь других, и забил на TDD (или хотя бы "тесты-первыми"). В результате первые же тесты ломаются, после чего тратишь кучу времени на странные баги, а когда добираешься до причины, понимаешь, что всё придётся переписать заново :)
Я совсем забыл, что питончик - это type erasure, когда информация о параметрах типа (T и U для класса Sum[T, U]) стирается во время выполнения...
Тут рекомендуют паттерн Стратегия, но я бы для продакшена делал фабричные методы вроде Sum.left(), которые создают экземпляры Sum с явно заданным значением is_left, что полностью обходит необходимость определения типа во время выполнения.
Но в данном случае (и в ряде существенно более сложных) мне надо
❤36👍16✍7❤🔥1🤯1
У меня на рутубе много подкастов, которые слушаю фоном, и сегодня он внезапно стал отключаться, едва уходишь на другую вкладку или просто сам хром сворачиваешь, или переключаешься на другую программу.
Я "ничего не трогал ничего не обновлял ничего не менял комп перезагружал", но главное что в фоне продолжает прекрасно работать и ютуб, и вквидео, и даже одноклассники-видео :) и онлайн-кинотеатры разные, то есть проблема конкретно в рутубе. Впрочем, по очевидным причинам совершенно не удивлён. Видимо, совсем у пацанов дела плохи, раз приходится экономить трафик таким образом )))
Любой джун-фронтендер подскажет, как можно эту проблему решить на время жизни вкладки: надо отрубить Page Visibility API.
F12 -> Console ->
А если регулярно повторяется, автоматизируем подмену API с помощью Tampermonkey.
Подкасты с рутуба я из гуманных соображений всегда слушал в видеоформате 144, но теперь из вредности буду всегда ставить 1080++.
( даже стрим мэдисона на кике в фоне норм работает 😊 начинал он кстати с рутуба... )
Самое же возмутительное, что на рутуб у меня платная подписка, и вот его отказ работать в фоне даже для платных папищеков откровенное свинство.
27.03.25 Сегодня вроде заработало; был баг?
30.03.25 Опять сломалось...
Я "ничего не трогал ничего не обновлял ничего не менял комп перезагружал", но главное что в фоне продолжает прекрасно работать и ютуб, и вквидео, и даже одноклассники-видео :) и онлайн-кинотеатры разные, то есть проблема конкретно в рутубе. Впрочем, по очевидным причинам совершенно не удивлён. Видимо, совсем у пацанов дела плохи, раз приходится экономить трафик таким образом )))
Любой джун-фронтендер подскажет, как можно эту проблему решить на время жизни вкладки: надо отрубить Page Visibility API.
F12 -> Console ->
Object.defineProperty(document, 'hidden', { value: false, configurable: false });
Object.defineProperty(document, 'visibilityState', { value: 'visible', configurable: false });А если регулярно повторяется, автоматизируем подмену API с помощью Tampermonkey.
Подкасты с рутуба я из гуманных соображений всегда слушал в видеоформате 144, но теперь из вредности буду всегда ставить 1080++.
( даже стрим мэдисона на кике в фоне норм работает 😊 начинал он кстати с рутуба... )
Самое же возмутительное, что на рутуб у меня платная подписка, и вот его отказ работать в фоне даже для платных папищеков откровенное свинство.
27.03.25 Сегодня вроде заработало; был баг?
30.03.25 Опять сломалось...
😎36😁22👍10🤔3🐳3
Как Spring-разработчик заваривает чай.
Входные данные: Spring-разработчик не может просто взять и заварить чай, ему нужен DI.
Spring Context: всё должно быть бинами: @TeaBean, @Sugar (опционально, как всегда), @BoilingWater.
Прокси-слой (AOP): прежде чем выдать чай, нужно залогировать процесс и замерить время заваривания.
Внешний сервис: вода берётся асинхронно (@Async), а если кран не работает – автоматический retry (@Retryable).
Exception Handler: если чайник сломался, Spring gracefully вернёт TeaPotException (HTTP 418 I'm a teapot).
Можно добавить ещё @Scheduled для автоматического чаепития каждые 2 часа.
Входные данные: Spring-разработчик не может просто взять и заварить чай, ему нужен DI.
Spring Context: всё должно быть бинами: @TeaBean, @Sugar (опционально, как всегда), @BoilingWater.
Прокси-слой (AOP): прежде чем выдать чай, нужно залогировать процесс и замерить время заваривания.
Внешний сервис: вода берётся асинхронно (@Async), а если кран не работает – автоматический retry (@Retryable).
Exception Handler: если чайник сломался, Spring gracefully вернёт TeaPotException (HTTP 418 I'm a teapot).
Можно добавить ещё @Scheduled для автоматического чаепития каждые 2 часа.
😁57👍9✍7💯4🏆2
Продолжаю работу с курсантами 🤓
...С основной работы я уже ушел, 21го числа. Решили что нет смысла "лямку тянуть" до конца месяца. (Как то даже по спокойнее сразу стало - снизилась тревожность и себя стал слышать, даже идеи сами приходят)
...Я в первую очередь буду на свои модели менять, потому что уж очень важный узел, и как будто ЛЛМ вообще не нужен, а хороший NLU классификатор который можно прозрачно дообучить/переобучить после того как обнаружатся странности.
Такие роутеры классификаторы на LLM это вообще рандом. Осенью очень много смешных поведений ловили. Буквально чуть чуть промпт меняешь, пробел лишний или слово 1-2, и результат вообще другой.
...Теперь командам разработки без выделенных девопсов/dba никогда не посоветую self-hosted HA-кластер сопровождать).
Кстати месяц где-то назад одну мою команду как раз отговорил на основе этого моего опыта.
(а ты сможешь самостоятельно обновить кластера без даунтайма?)
...В одном из проектов заменил PostgreSQL на MongoDB. Исходной причиной стало понимание того, что более эффективно будет работать с денормализованными данными. Таким образом мы перешли от набора таблиц к единому документу, что упростило схему БД и сделало выполнение запросов более быстрым. В дополнение к этому мы получили отказоустойчивый кластер из коробки, что упрощает процесс его сопровождения.
...Неужели, ORM так и работает: использует под капотом эти функции для получения запросов в виде json, а потом при помощи какого-нибудь jackson мапит их в объекты?!
...Альтернативой в экосистеме Go между ORM и голым SQL могут служить инструменты, такие как query-билдеры, например, squirrel. - Они способны на 99% загрыть потребность в ORM, если стоит вопрос о гибкости и удобстве построения сложных запросов.
Если говорить про модели данных, то одной из лучших рекомендаций для ослабления ограничеий ORM-ов может стать денормализация таблиц и формирование более избыточных моделей, чтобы была возможность гибко с ними работать без излишних джоинов и сложной бизнес-логики.
...Помимо этих интеграции вышел очередной баг с 1с, господа решили раз в месяц менять в каком нибудь api ответ datetime полей с null, на mindate.
Также переводил на новый pipeline и десерилизовал ответ от 1с новым самописным десириализатором,по вашим занятиям избавился полностью от nullable полей в record ответе от 1с, и жить стало в разы легче, теперь я работаю с двумя состояниями даты, либо она конкретная, либо минимальная.
Да, писать свой собственный клей для подобных случаев, похоже , надо будет всегда, главная проблема что он со временем сам превращается в баттлнек )
Горжусь вами, дорогие!
❤️❤️❤️❤️❤️❤️❤️
...С основной работы я уже ушел, 21го числа. Решили что нет смысла "лямку тянуть" до конца месяца. (Как то даже по спокойнее сразу стало - снизилась тревожность и себя стал слышать, даже идеи сами приходят)
...Я в первую очередь буду на свои модели менять, потому что уж очень важный узел, и как будто ЛЛМ вообще не нужен, а хороший NLU классификатор который можно прозрачно дообучить/переобучить после того как обнаружатся странности.
Такие роутеры классификаторы на LLM это вообще рандом. Осенью очень много смешных поведений ловили. Буквально чуть чуть промпт меняешь, пробел лишний или слово 1-2, и результат вообще другой.
...Теперь командам разработки без выделенных девопсов/dba никогда не посоветую self-hosted HA-кластер сопровождать).
Кстати месяц где-то назад одну мою команду как раз отговорил на основе этого моего опыта.
(а ты сможешь самостоятельно обновить кластера без даунтайма?)
...В одном из проектов заменил PostgreSQL на MongoDB. Исходной причиной стало понимание того, что более эффективно будет работать с денормализованными данными. Таким образом мы перешли от набора таблиц к единому документу, что упростило схему БД и сделало выполнение запросов более быстрым. В дополнение к этому мы получили отказоустойчивый кластер из коробки, что упрощает процесс его сопровождения.
...Неужели, ORM так и работает: использует под капотом эти функции для получения запросов в виде json, а потом при помощи какого-нибудь jackson мапит их в объекты?!
...Альтернативой в экосистеме Go между ORM и голым SQL могут служить инструменты, такие как query-билдеры, например, squirrel. - Они способны на 99% загрыть потребность в ORM, если стоит вопрос о гибкости и удобстве построения сложных запросов.
Если говорить про модели данных, то одной из лучших рекомендаций для ослабления ограничеий ORM-ов может стать денормализация таблиц и формирование более избыточных моделей, чтобы была возможность гибко с ними работать без излишних джоинов и сложной бизнес-логики.
...Помимо этих интеграции вышел очередной баг с 1с, господа решили раз в месяц менять в каком нибудь api ответ datetime полей с null, на mindate.
Также переводил на новый pipeline и десерилизовал ответ от 1с новым самописным десириализатором,по вашим занятиям избавился полностью от nullable полей в record ответе от 1с, и жить стало в разы легче, теперь я работаю с двумя состояниями даты, либо она конкретная, либо минимальная.
Да, писать свой собственный клей для подобных случаев, похоже , надо будет всегда, главная проблема что он со временем сам превращается в баттлнек )
Горжусь вами, дорогие!
❤️❤️❤️❤️❤️❤️❤️
👍48❤17🔥1
Сейчас истеричные белки по поводу AI заводятся ровно по двум темам:
1. Смотрите! Смотрите! Очередной жпт порвал все другие жпт в неких абстрактных программистских тестах в вакууме, которые к реальной работе имеет отношение более чем никакое, и делаются крупными конторами исключительно для перепиаривания конкурентов и развода лохов-инвесторов.
Я проверил намедни новую дипсику 31 со всеми её супер-пупер-синками, так она не смогла корректно сгенерить линейный json для создания простой диаграммки из пяти квадратиков со стрелочками, хотя я мучил её полчаса -- а нарисовать вручную оказалось 3 минуты. Как всегда, "дешевле девочку посадить за эксель", чем платить сотни долларов за токены.
2. Смотрите! Смотрите! Школьник, не умеющий программировать, двумя промптами, создал полноценную игруи продал её за миллион долларов.
Во-первых, AI её внутри отнюдь не создал с нуля, а просто скопипастил с гитхаба нечто достаточно похожее, и добавил несколько "оригинальных" фич, спизж... с других проектов.
Во-вторых, ну ок, но вы попробуйте этот проэкт поразвивать дальше.
Попросите сделать для этой игры UI с действительно оригинальными возможностями, добавить логически более-менее сложные и нестандартные фичи -- и AI тут же обломается.
=
А что если действительно AIsys? Сейчас в эту темку вкладывается беспрецедентная сумма, доселе невиданная в истории человечества.
"ИИ может сыграть роль в приходе Антихриста, — заявил Патриарх Кирилл. ...ИИ должен быть поставлен под жёсткий контроль государства и "в хорошем смысле общества".
Но разве его послушает кто-то из демонстративно крестящихся на камеры, когда под распил заходит такое баблище...
Но, не получится служить одновременно Богу и AIsys-у.
1. Смотрите! Смотрите! Очередной жпт порвал все другие жпт в неких абстрактных программистских тестах в вакууме, которые к реальной работе имеет отношение более чем никакое, и делаются крупными конторами исключительно для перепиаривания конкурентов и развода лохов-инвесторов.
Я проверил намедни новую дипсику 31 со всеми её супер-пупер-синками, так она не смогла корректно сгенерить линейный json для создания простой диаграммки из пяти квадратиков со стрелочками, хотя я мучил её полчаса -- а нарисовать вручную оказалось 3 минуты. Как всегда, "дешевле девочку посадить за эксель", чем платить сотни долларов за токены.
2. Смотрите! Смотрите! Школьник, не умеющий программировать, двумя промптами, создал полноценную игру
Во-первых, AI её внутри отнюдь не создал с нуля, а просто скопипастил с гитхаба нечто достаточно похожее, и добавил несколько "оригинальных" фич, спизж... с других проектов.
Во-вторых, ну ок, но вы попробуйте этот проэкт поразвивать дальше.
Попросите сделать для этой игры UI с действительно оригинальными возможностями, добавить логически более-менее сложные и нестандартные фичи -- и AI тут же обломается.
=
А что если действительно AIsys? Сейчас в эту темку вкладывается беспрецедентная сумма, доселе невиданная в истории человечества.
"ИИ может сыграть роль в приходе Антихриста, — заявил Патриарх Кирилл. ...ИИ должен быть поставлен под жёсткий контроль государства и "в хорошем смысле общества".
Но разве его послушает кто-то из демонстративно крестящихся на камеры, когда под распил заходит такое баблище...
Но, не получится служить одновременно Богу и AIsys-у.
❤38🤔20🐳7💯1🫡1
Как NET-разработчик заваривает кофе.
Входные данные: C# программист не может просто налить кипяток. Нужен ICoffeeService, иначе это "антипаттерн".
DI Container: всё должно быть интерфейсами:
- ICoffeeService (но реализация OutOfMemoryCoffeeService)
- ISugar (опционально, как Nullable<Sugar>)
- IBoilingWater (но только если лицензия Azure позволяет)
Middleware/AOP:прежде чем выдать кофе:
- обязательно залогировать (ILogger<Coffee>)
- замерить время (Stopwatch + метрики в Prometheus)
- добавить RetryPolicy (потому что WaterAPI тормозит)
Exception Handler: если кофемашина сломалась:
- вернуть 503 Service Unavailable
- или CoffeeMachineException (с подсказкой "Обновите NuGet-пакет")
Внешний сервис: обязательно:
- HttpClient с таймаутом в 1 секунду (но ждём 10)
- Polly с 5 попытками (хотя после 3-ей уже пора писать в саппорт)
- обязательно ConfigureAwait(false), иначе deadlock
Выходной результат: кофе со StackTrace:
- "NullReferenceException: Sugar was not injected"
- "AzureTimeoutException: WaterAPI не ответил за 365 дней"
...из обсуждений в рабочем чате:
"Почему кофе холодный? 🤮 Потому что был async void BrewAsync()"
"Почему в чашке StackOverflowException? 💩 Рекурсивный вызов AddSugar()"
"Кто-то забыл Dispose() чашку 🤡 — теперь в памяти утечка кофеина"
+ тимлид сразу подкидывает новых проблем, AFAIK!!1 💥
- Блок с [Obsolete] методами ("Старый кофеварка")
- BackgroundService для автоматического кофепития
- .gitignore для сбежавшего кофе
(1я серия про java)
Входные данные: C# программист не может просто налить кипяток. Нужен ICoffeeService, иначе это "антипаттерн".
DI Container: всё должно быть интерфейсами:
- ICoffeeService (но реализация OutOfMemoryCoffeeService)
- ISugar (опционально, как Nullable<Sugar>)
- IBoilingWater (но только если лицензия Azure позволяет)
Middleware/AOP:прежде чем выдать кофе:
- обязательно залогировать (ILogger<Coffee>)
- замерить время (Stopwatch + метрики в Prometheus)
- добавить RetryPolicy (потому что WaterAPI тормозит)
Exception Handler: если кофемашина сломалась:
- вернуть 503 Service Unavailable
- или CoffeeMachineException (с подсказкой "Обновите NuGet-пакет")
Внешний сервис: обязательно:
- HttpClient с таймаутом в 1 секунду (но ждём 10)
- Polly с 5 попытками (хотя после 3-ей уже пора писать в саппорт)
- обязательно ConfigureAwait(false), иначе deadlock
Выходной результат: кофе со StackTrace:
- "NullReferenceException: Sugar was not injected"
- "AzureTimeoutException: WaterAPI не ответил за 365 дней"
...из обсуждений в рабочем чате:
"Почему кофе холодный? 🤮 Потому что был async void BrewAsync()"
"Почему в чашке StackOverflowException? 💩 Рекурсивный вызов AddSugar()"
"Кто-то забыл Dispose() чашку 🤡 — теперь в памяти утечка кофеина"
+ тимлид сразу подкидывает новых проблем, AFAIK!!1 💥
- Блок с [Obsolete] методами ("Старый кофеварка")
- BackgroundService для автоматического кофепития
- .gitignore для сбежавшего кофе
(1я серия про java)
😁58😎7👍5✍2❤1
Так называемый "естественный язык" прекрасен для целей, для которых он был создан: грубость, рассказывание шуток, жульничество или занятие любовью,
но он безнадежно неадекватен, когда нам приходится однозначно иметь дело с ситуациями большой сложности, ситуациями, которые неизбежно возникают в таких сферах деятельности, как законодательство, арбитраж, математика или программирование.
-- Эдсгер Дейкстра
но он безнадежно неадекватен, когда нам приходится однозначно иметь дело с ситуациями большой сложности, ситуациями, которые неизбежно возникают в таких сферах деятельности, как законодательство, арбитраж, математика или программирование.
-- Эдсгер Дейкстра
👍61🤔15❤5⚡1💯1
Интересный тренд (реально), Spring-разработка массово...
Anonymous Quiz
25%
возвращается от JPA обратно к JDBC
11%
полностью перешла на JPA, забыв про JDBC
20%
упорно стоит в этих темах на месте
44%
я шарпист!
🤔43✍9
Ваше мнение о Rust ?
Anonymous Poll
55%
Это фантастика для программирования системного уровня 😇
45%
Это кошмар для крупномасштабных корпоративных приложений 😳
🤔46❤5💯3
Отчёт за неделю.
— Основной паблик:
Как 10-кратно сократить количество багов в продакшене?
Эта best practice известна в программной инженерии не один десяток лет, но в 98% она не применяется, потому что системное мышление отсутствует у современных ит-менеджеров более чем полностью. Они способны мыслить лишь глупеньким карго-культом "список пользовательских фич" + "надо сделать побыстрее", но это не вина их, а беда.
Например, по ФЗ № 323, главврач любой клиники обязан иметь высшее медицинское образование + 5 лет работы в медицине. А в айтишке достаточно быть племянником гендира или приятелем овнера, и сразу войти в айти-директора...
— Для донов-начинающих + по саморазвитию:
...Многие опасаются, что AI заменит их на работе.
Лично я настроен скептически. Технологические инновации всегда приводили к сокращению количества людей, необходимых для работы над чем-либо. Однако в то же время это создавало новые рабочие места.
Но, действительно, эффективное обучение — наиболее важный софт-скилл сегодня, чем когда-либо.
Обучение - это сверхспособность.
...Создаём себе "Второй мозг 2.0".
— Для донов-неначинающих:
...Полезные платные подписки для сеньоров и техлидов: AI IDE, полезный свежий контент, поисковик c AI, лучшая в мире рисовалка диаграмм...
...Продолжаю выкладывать для донов материалы СильныхИдей.
29. Open Closed Principle (OCP) и ФП.
Мы хотим иметь возможность повторно использовать и расширять код без необходимости изменять исходную реализацию. ФП достигает этого с помощью двух инструментов...
— Бусти:
Как работают Virtual Threads JVM
Книги по СильнымИдеям:
1. БАЗА программной инженерии
2. Software Design с акцентом на Programming in Small
— Курс "Гомотопическая теория типов для программистов" - делаю уже не знаю какой по счёту заход, теория обширная, и реализовать базовые понятия так, чтобы их потом можно было корректно применять во всех аспектах, ну наверное без итераций просто нереально.
Зря я конечно своим собственным советам сразу не следовал 🙈
Теперь сперва делаю очень тщательные тесты. Например, для типа Путь/Path (гомотопия; тип, который представляет доказательство тождества между двумя значениями) такие тесты сделал: создание рефлексивного пути, композиция путей (транзитивность), симметрия пути (инверсия), композиция нерефлексивных путей, композиция с последующей инверсией... Всё на Python, с примерами.
(за такой работой прям чувствуешь, как живёшь 💥 :)
=
Но в целом временно отвлёкся на другое: копирую первый курс трека "Как понять в программировании всё" на внешнюю платформу, 42% сделал, и потом будет доступен всем желающим НЕначинающим, кто хочет потом попасть в мою Школу.
А начинающим, напомню, в группе для начинающих , для донов несколько раз в месяц провожу регулярные наборы.
Копирую в основном потому, что на моём учебном сервере нету возможности автоматического приёма оплаты... да только вот везде помимо плюсов ещё и свои минусы. Внешняя платформа, как и многие другие, в том числе и Бусти, вчера весь день лежала из-за отказа яндекс облака. Вроде бы ЯОблако - критически важная инфраструктура, но... 2N+1? ДГУ? ATS? Нет, не слышали видимо. Tier II lol, даже по-моему до 999 не дотянули, если простой был больше 8часов45минут.
— Основной паблик:
Как 10-кратно сократить количество багов в продакшене?
Эта best practice известна в программной инженерии не один десяток лет, но в 98% она не применяется, потому что системное мышление отсутствует у современных ит-менеджеров более чем полностью. Они способны мыслить лишь глупеньким карго-культом "список пользовательских фич" + "надо сделать побыстрее", но это не вина их, а беда.
Например, по ФЗ № 323, главврач любой клиники обязан иметь высшее медицинское образование + 5 лет работы в медицине. А в айтишке достаточно быть племянником гендира или приятелем овнера, и сразу войти в айти-директора...
— Для донов-начинающих + по саморазвитию:
...Многие опасаются, что AI заменит их на работе.
Лично я настроен скептически. Технологические инновации всегда приводили к сокращению количества людей, необходимых для работы над чем-либо. Однако в то же время это создавало новые рабочие места.
Но, действительно, эффективное обучение — наиболее важный софт-скилл сегодня, чем когда-либо.
Обучение - это сверхспособность.
...Создаём себе "Второй мозг 2.0".
— Для донов-неначинающих:
...Полезные платные подписки для сеньоров и техлидов: AI IDE, полезный свежий контент, поисковик c AI, лучшая в мире рисовалка диаграмм...
...Продолжаю выкладывать для донов материалы СильныхИдей.
29. Open Closed Principle (OCP) и ФП.
Мы хотим иметь возможность повторно использовать и расширять код без необходимости изменять исходную реализацию. ФП достигает этого с помощью двух инструментов...
— Бусти:
Как работают Virtual Threads JVM
Книги по СильнымИдеям:
1. БАЗА программной инженерии
2. Software Design с акцентом на Programming in Small
— Курс "Гомотопическая теория типов для программистов" - делаю уже не знаю какой по счёту заход, теория обширная, и реализовать базовые понятия так, чтобы их потом можно было корректно применять во всех аспектах, ну наверное без итераций просто нереально.
Зря я конечно своим собственным советам сразу не следовал 🙈
Теперь сперва делаю очень тщательные тесты. Например, для типа Путь/Path (гомотопия; тип, который представляет доказательство тождества между двумя значениями) такие тесты сделал: создание рефлексивного пути, композиция путей (транзитивность), симметрия пути (инверсия), композиция нерефлексивных путей, композиция с последующей инверсией... Всё на Python, с примерами.
(за такой работой прям чувствуешь, как живёшь 💥 :)
=
Но в целом временно отвлёкся на другое: копирую первый курс трека "Как понять в программировании всё" на внешнюю платформу, 42% сделал, и потом будет доступен всем желающим НЕначинающим, кто хочет потом попасть в мою Школу.
А начинающим, напомню, в группе для начинающих , для донов несколько раз в месяц провожу регулярные наборы.
Копирую в основном потому, что на моём учебном сервере нету возможности автоматического приёма оплаты... да только вот везде помимо плюсов ещё и свои минусы. Внешняя платформа, как и многие другие, в том числе и Бусти, вчера весь день лежала из-за отказа яндекс облака. Вроде бы ЯОблако - критически важная инфраструктура, но... 2N+1? ДГУ? ATS? Нет, не слышали видимо. Tier II lol, даже по-моему до 999 не дотянули, если простой был больше 8часов45минут.
👍43❤9🔥6❤🔥4
Ну, с Днём Математика!
Знаете почему, родители постоянно вас спрашивали и спрашивают: "Кем ты хочешь стать? Какие у тебя планы по работе?". Они хотят украсть вашу идею!
С математикой аналогично. На самом деле практически все те, кто говорят вам, что программистам изучать математику совсем не обязательно, сами как минимум изучали её несколько семестров, а то и курсов, в университете.
Говорят они так специально: по себе поняв, насколько мощно математика бустит профессию, теперь просто стараются отговаривать других, чтобы у них самих не появлялись сильные конкуренты.
Математика -- это инструмент богатых.
"кто не учит матан будет переработан в метан" (с)
"Если вы обнаружите себя в положении, в котором вы будете терпеть постоянные неудачи в личной и деловой жизни, то начнете обвинять в этом судьбу, карму, духов животных или какой-нибудь иной вид магии. В то время, как причина гораздо проще - математика. Всегда есть закономерность, но она не всегда легко различима. Не переставайте искать только потому, что не увидели закономерностьв первые 7 лет ."
= Кстати а вы же уже посмотрели сериал "Опасные числа", что я раньше рекомендовал? к просмотру обязателен!
"топовые темы -- это криптография и теория типов" (с)
Математики - самые опасные люди на планете.
Знаете почему, родители постоянно вас спрашивали и спрашивают: "Кем ты хочешь стать? Какие у тебя планы по работе?". Они хотят украсть вашу идею!
С математикой аналогично. На самом деле практически все те, кто говорят вам, что программистам изучать математику совсем не обязательно, сами как минимум изучали её несколько семестров, а то и курсов, в университете.
Говорят они так специально: по себе поняв, насколько мощно математика бустит профессию, теперь просто стараются отговаривать других, чтобы у них самих не появлялись сильные конкуренты.
Математика -- это инструмент богатых.
"кто не учит матан будет переработан в метан" (с)
"Если вы обнаружите себя в положении, в котором вы будете терпеть постоянные неудачи в личной и деловой жизни, то начнете обвинять в этом судьбу, карму, духов животных или какой-нибудь иной вид магии. В то время, как причина гораздо проще - математика. Всегда есть закономерность, но она не всегда легко различима. Не переставайте искать только потому, что не увидели закономерность
= Кстати а вы же уже посмотрели сериал "Опасные числа", что я раньше рекомендовал? к просмотру обязателен!
"топовые темы -- это криптография и теория типов" (с)
Математики - самые опасные люди на планете.
❤50👍15🔥8