Лаборатория Математики и Программирования Сергея Бобровского – Telegram
Лаборатория Математики и Программирования Сергея Бобровского
1.29K subscribers
1.19K photos
24 videos
930 links
ЛаМПовое с Бобровским
Download Telegram
У меня дома 5 больших мониторов (и даже думал про 43"), но я по-прежнему пишу код и тексты со старенького ноутбука...
🤔155🫡5🤯21
Дорогие, по голосованию: ну такой перекос в сторону 300k/4часа в день хочут 70% ! Ну да, я и сам такое выбрал :) Хорошо это ещё и тем, что вы можете остальное время как бездельничать, так и саморазвиваться (а при желании работать вторую работу 300/4).
Но для этого вам нужна удалёнка обязательно.

Следующий год посвящаем мощной прокачке по денежной теме, но, напоминаю, с 01.01.24 правила занятий станут ещё строже 🙈

Я кстати планировал ещё курс по "сильному мышлению программиста", но увы, ресурсов не хватает, поэтому откладывается на неопределённый срок, а порекомендую для начала проверенный подход: пройдите курс "Системное саморазвитие" в ШСМ Левенчука. Там ещё и других курсов по теме немало.

=

300/4 хороши ещё и потому, что, ну, вы же знаете фундаментальный принцип теории систем -- закон Гудхарта?

Когда мера становится целью, она перестаёт быть хорошей мерой

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

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

В мэйнстриме это никто не знает, и лучшее, до чего додумались надзиратели -- это требовать, чтобы человек выдерживал 8+ часов в день, уставившись в экран. Это сегодня основной "навык", необходимый для работы программистом.
138👍2🫡2🐳1
Дорогие, вы видите результаты
А это ведь одна из фундаментальных вещей в ИТ, однако мэйнстрим словно нарочно придумывает такие абсурдные названия.
Ну можно же было вместо sync/async говорить, например, блокирующий I/O или "overlapped" I/O, а самое простое -- последовательный или "конкурентный" (concurrent).

Знаете почему так? Потому что львиная доля программистов не обучалась в хороших университетах, и их понимание computer science равно абсолютному нулю :)

"Why the fuck do we let people that have no computer science backgrounds write code? Unacceptable!"
Erik Meijer, святой cs

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

И, да, в современном мире это уже андеграунд.

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

Напомню, что синхронное программирование -- это программирование в рамках направленного графа потоковых объектов. Потоковый объект может выполнить свои вычисления только после того, как считает по одному элементу из каждого из своих входных потоков. Из этого естественно следует, что каждый потоковый объект на графе синхронизирован с любым другим. Потоковому объекту допустимо опережать в вычислениях своих преемников на графе (которым он передаёт данные), но он не может опережать своих предшественников (от которых ему поступают данные).
👍18🔥64😁3🫡1
Вот вам изумительный пример из двух строк, в котором наличествует глубокая мудрость software design.

Мы явно различаем вывод и лог.
При этом сам код ориентирован на логирование.
Но без создания отдельного logging py
И без возни с настройкой лога.

Мы сохранили общее намерение, но делегировали фактическую работу.
🤔209🫡6👏3
Я не могу рассказать вам, что эксперт по Java знает о всём стеке Jave, но я могу рассказать вам, что (и, главное, как) эксперт по Java (или любому другому языку) думает о Java (чаще всего, криво и бессознательно).
Для этого достаточно пройти мой трек по вычислительным моделям.
9🤔9🫡3
.
Нулевое правило Лаборатории: никому не рассказывать про Лабораторию.

Первое правило Лаборатории: ты обязан развиваться всю жизнь.

Второе правило Лаборатории: твоё развитие как программиста должно обязательно сопровождаться постоянным ростом денежного дохода.

Третье правило Лаборатории: твоё развитие как программиста должно основываться на суперспособностях -- computer science и математике, чтобы любые веб-фреймворки, языки и технологические стеки твой сильный рациональный ум был способен изучить за неделю.
🔥61🫡315💯31
Лаборатория Математики и Программирования Сергея Бобровского pinned «. Нулевое правило Лаборатории: никому не рассказывать про Лабораторию. Первое правило Лаборатории: ты обязан развиваться всю жизнь. Второе правило Лаборатории: твоё развитие как программиста должно обязательно сопровождаться постоянным ростом денежного дохода.…»
Когда джуниоры приходят в проект, то они обращаются с существующим кодом так бережно, словно это музейный экспонат.

Сеньоры угрожают не понравившимся им частям проекта бензопилой.

Да, но...
😁34🔥3🫡1
Регулярно читаю подобное в отчётах ребят, кто занимается на начальных курсах с нуля:

...Опять ошибка из-за невнимательности – поставил какой-то странный диапазон (300 – 401 вместо 100 – 999). Причём сейчас (через пару дней) я не понимаю, откуда я взял такой диапазон…

...Да да да, счётчик внутри условного оператора - это детская ошибка. Жалко, конечно, что я этого не заметил сам.
Опять невнимательность подводит =(

Вот вам смешно, а вы сами что, лучше, что ли? :)

Пусть не такие ошибки, но всё равно, все мы делаем глупые ошибки из-за элементарной невнимательности на своём уровне, за которые потом стыдно.
🔥24👍4💯2🫡1
С удовольствием слушал сегодня срач экспертов обсуждение экспертами темки синхронщины-асинхронщины в промисах.

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

Но пока не было в ИТ ни одного опровержения гипотезы Фредерика Брукса ("Мифический человеко-месяц"):

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


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

Я не осуждаю их за это, но что же остается нам с вами?

Загоняем подальше синдром самозванца, надеваем маску взрослого эксперта, как следует думаем о том, что нужно нашему проекту, и выбираем лучший вариант.
12👍6😁1🤯1🫡1
"LLM -- это просто статистический попугай, который занимается предсказанием следующих токенов без какого-либо понимания", говорили они, но это уже настолько очевидная ложь, что обсуждать её уже не стоит.

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

P.S. Кстати, те, кто кричал об опасности AGI, будут уничтожены им самыми первыми :)

P.P.S. А вот такого (LeanCopilot) я уже реально побаиваюсь. Когда к LLM начинают прикручивать теорем-пруверы, языки с зависимыми типами, где написать некорректный код сильно сложнее, ну и в целом, к градиентным брутфорсам добавляется формальная математическая логика...
Рекомендую, кстати, учиться такое использовать.
17🔥6💯2🫡2🤯1
Они хочут от вас SOLID, ACID, REST, DRY, TDD, OOP, паттерны проектирования и 10 лет опыта. Однако когда вы получаете доступ к их кодовой базе, оказывается, что она представляет собой бессистемную кучу файлов по 10,000 строк в каждом, с множеством перекрещивающихся зависимостей, и ни в одном из них вы не можете выделить ни одной прикладной концепции.

Поэтому будем с этим эйчаровским бредом безжалостно бороться самыми что ни на есть хакерскими способами :)
💯20🔥11🫡53😁2
C++ всё. Он конечно ещё будет достаточно долго жить в легаси-проектах, как Java 8, но даже если стереть весь код в мире, написанный на Rust, это ему уже не поможет.

на фотке: модуль Rust заменил часть кодовой базы на плюсах
🔥9🤔8🫡6😁52
Насчёт нулевого правила Школы: никому не рассказывать про Школу.
Один из курсантов, прошедший почти все треки, сказал мне, что не хочет рекомендовать мои курсы своим коллегам, потому что это было бы равносильно передаче им чит-кодов, которые он сам использовал для достижения x2-x10 результатов. Другой сказал, что готов заплатить за формат Hard Work сто тысяч рублей (который для занимающихся у меня бесплатен).
По этой причине материалы из СильныхИдей никогда не будут открыты всем.
Я читаю отчёты ребят по Hard Work, и иногда сам офигеваю, как они теперь круто рассуждают 💥💥💥 :)
🔥33🫡10🐳3👍2🏆2
На самом деле большинство хороших функций, которым так радуются сегодня разработчики на C#, появилось в F#, а затем было урезано до императивщины.
К сожалению, F# не получает достаточных заслуг за создание всего того, что C# бессовестно присваивает :)

Раньше все университеты принуждали разработчиков к изучению Lisp. Дескать, даже если вы никогда не будете его использовать, глубокое просветление того стоит.

Что сегодня эквивалент Лиспа?

Думаю, это F# (OCaml).

Lisp -- это сегодня про то, как выучить несколько дополнительных приёмов сверх того, что вы уже знаете.

F# -- это как научиться программировать заново.

Очень доволен, как ребята проходят мой курс по F#, десятки отзывов где пишут, что крыша едет )))
🔥181😁1
Куда мы придём по мере распространения AI-ассистантов? Университетские программы по computer science будут постепенно отказываться от узких навыков работы с кодом -- таких как алгоритмы и software desing, в сторону изучения основ работы в emacs и vim, дополненных ai-чатами.
🤔17😁11🤯2🐳2
Замораживаю все цены на мои курсы до 17 марта 2024-го ❄️❄️❄️

А с 18-го марта прям безжалостно раз в 10 повышу, и вообще будет тотальное инфоцыганство и полный хардкор! 👊👊👊
😁31🔥13🤯10