Лаборатория Математики и Программирования Сергея Бобровского – Telegram
Лаборатория Математики и Программирования Сергея Бобровского
1.29K subscribers
1.18K photos
24 videos
929 links
ЛаМПовое с Бобровским
Download Telegram
Ну ок, лицензию на убийство пилота можно и на онлайн курсах в АУЦ получить без диплома, а вот прорабом без диплома не станешь в принципе. И тут кстати довольно показательное различие. Казалось бы, у пилота даже больше ответственности за жизни?

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

А вот в строительстве последствия проявляются значительно позже. Каждый мост это уникальный проект (грунты, рельеф, климатические условия, материалы - всё разное). Украл стройматериалы, а мост рухнул только через 3 года после сдачи в эксплуатацию. Закрутил не ту болтовую группу -- будешь всё переделывать заново вплоть до демонтажа.
Программисты, знакомо? :)
35👍134👏3
Закон Бобровского:

UI любой соцсети со временем становится только хуже.

Про VK вообще молчу, лидер по кривизне (оценочное суждение :). Из свежего: ещё неделю назад при редактировании шапки группы она сразу показывалась новой, а теперь надо обновлять страницу вручную.

ЯндексМузыка летом удалила удобный старый дизайн, а на смену пришло запутанное и нефункциональное. Я не могу например теперь выбрать "техно" + "спокойное".

В Телеграме на днях внизу появилась гадская ненужная плашка, занимающая немало видимого пространства.

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

Только MAX пока держится )))
2😁52💯187
Я лучше буду часами копаться в чём-то, вместо того, чтобы читать документацию в течение трёх минут.
2😁55💯8
This media is not supported in your browser
VIEW IN TELEGRAM
Программистам Haskell может не нравиться отсутствие эксплицитного IO-типа в F#.
Программистам F# может не нравиться отсутствие типов в Clojure,
а программистам Clojure могут не понравиться монады.

Но прекратите сражаться! Сегодня нефункциональные языки захватили все компьютерные СМИ и фонды OSS, AI-движуху и BigTech!

Внутри ФП пока перемирие. Друг с другом мы станем спорить в недалёком будущем, где функциональные языки победят весь мэйнстрим.

База качественного кода в функциональном стиле (крайне перспективная для AI):
если код компилируется, значит он работает 💯
238💯15❤‍🔥64
Доброй субботы, вайб-программисты! 😁

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

Пока ты собираешься на футбол, твой конкурент старательно изучает модный технический стек из вакансий.
3👍48😁6🤔4🫡4🤓3
Общество: не доверяйте незнакомым людям, не отвечайте на неизвестные звонки, не проходите по мутным ссылкам...

Программисты такие:
npm added 32192 packages in 1.2s
1😁50💯18👍4🫡42
Big Ball of Mud - самая популярная ИТ-архитектура в мире, которая работает на 98% сайтов и любых других систем....
2💯48😁15👍41
.

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

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

Писать правильный и хороший код сложно. Разница между правильным и катастрофически плохим кодом может быть чрезвычайно тонкой! НЕ-тренированный глаз легко пропустит эти различия, и вы, возможно, даже не сможете привести пример, в котором неправильный код даёт сбой, потому что в его первоначальном контексте это не так.
...Ok, но ведь и джуниоры иногда пишут ужасно некорректный код, который, кажется, работает? Да, но мы ожидаем от них прежде всего, что они при этом учатся правильным подходам!

8 советов по software design и архитектурам...


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

Глава Zoom Эрик Юань заявил, что не верит в баланс работа-жизнь. Дескать, работа это и есть жизнь, а всякие хобби трата времени. Сам он вообще ничем не увлекается, кроме Zoom. Ну и?

Даже начинающие с нуля (!) обижаются, когда указываешь на очевидные ошибки, не говоря уж о стилистических неточностях...

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

Продолжаю выкладывать для донов материалы СильныхИдей — доступны моим курсантам, но тут расширенные и дополненные версии.
63. Инварианты и качественный код
Идея в том, что инвариант может быть нарушен только в том случае, если в вашей программе есть ошибка.
Мы как бы закладываем в программу некие неоспоримые утверждения, которые обязательно должны соблюдаться -- в идеале, на уровне невозможности компиляции кода, если инварианты нарушены, но такое возможно пока в основном в языках с зависимыми типами...
64. Три типа программных ошибок
Любая система может сломаться: пользователь введёт неверные сведения, данные в базе окажутся некорректными, откажет сеть или интернет, проявятся обычные баги, в параллельных процессах возникнет клинч или гонка, космические лучи инвертируют бит...

...в таком случае мне на 100% понятно, какого же хрена чел завис и уже 1-2-3 года не может вырасти в профессии.

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

=

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

=

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

В курс карьеры добавлен 120-й материал "Баланс между работой и личной жизнью -- это миф (ч.2)".
Трудно поверить, что достижение чего-то стоящего стало результатом чьих-то 20% усилий, которые дали якобы 80% результата. На самом деле, я в это не верю. Напротив, я считаю, что исключительно упорный труд -- необходимое условие для достижения любого крупного, впечатляющего и трудного результата.

В раздел "Элитный программист" добавлены материалы
81) Адаптация Помодоро под себя.
Вот ещё несколько простых способов слегка адаптировать Pomodoro под себя...
82) Это всё?
В целом закончен (по содержанию) большой блок ЭП, но развитие данного трека не прекращается, а наоборот, дальше продолжим делать новые акценты на всех этих темах!
Мы узнали о различных методах, позволяющих добиться максимального успеха в карьере разработчика, но принципиально не рассматривали какие-либо технические навыки, характерные для программирования, поэтому все описанные здесь методы в равной степени применимы к другим профессиям, а также к вещам, не связанным с вашей работой.

💪🏻

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

"ЛаМПовое": arch linux, геймдев эпикфейл, C++20 concepts, бабка-рэмбо

=

Гайд про функциональные архитектуры в активной работе, готово 50 (+10) топиков. Как будет 100+, дам ментатам доступ.
23713🔥3
Возможно, я единственный человек в мире, который до сих пор не использовал sora2 и нанобанану.
👍52🤝94❤‍🔥3
Я скучаю по тем временам, когда 16 Гб оперативной памяти было достаточно вообще для любых нужд программиста. Ну разве что для terms rewriting требовалась пара сотен гигов.
Теперь же оперативка на 32 Гб стоит столько же, сколько RTX 5060, а 64 -- как плейстейшен 5.
140👍10
...масштабная компрометация экосистемы npm:
злоумышленники запустили вторую волну атаки самореплицирующегося червя Шай-Хулуд, заразив 492 npm-пакета, чья суммарная аудитория составляет 132 миллиона загрузок в месяц.

А я всего три дня назад предупреждал про npm. Штош.

"Скоро мы вступим на территорию песчаных червей. Нельзя идти обычным шагом. Иначе мы все умрём".
1🤯271292
Я бы предпочел зарабатывать 100,000 рублей в месяц самостоятельно, чем 1 миллион рублей в месяц на работе с 9 до 18.
1😁5013🤔9💯5👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Когда вышел первый день на новую работу, и тебе сразу набросали кучу тикетов по огромной легаси-базе :)
1😁545💯3
Если у вас есть компьютер и есть интернет (даже один рунет), у вас нет никаких оправданий, чтобы не стать миллионером.
140🔥22❤‍🔥4😁2
Инженеры Макларена, не изучавшие системные принципы проектирования в нашей Лаборатории, готовят болид к завтрашнему Гран-при Катара.

p.s. или таки наоборот изучавшие? скоро узнаем :)
1😁3919👍3
Мастер обычно программировал вместе с учениками даже в возрасте 84 лет: разрабатывал монадические цепочки, кодировал ветвящиеся алгоритмы обхода пайплайнов сетевых сервисов, рефакторил под композабельность модули распаковки.

Ученики чувствовали себя виноватыми, видя, как старый Мастер работает столь усердно, но знали, что он не послушает их советов не работать. Поэтому они решили забанить ему доступ на рабочий сервер.

В этот день учитель не ел. На следующий день он тоже не ел, и на следующий тоже.

"Наверное, он сердится, что мы ограничили его права, -- подумали ученики. -- Лучше вернём их".

Когда они сделали это, учитель работал весь день и ел так же, как и раньше. Вечером он сказал им:

-- Кто не работает, тот не ест.

После этих слов самый толстый ученик обрёл просветление.
2🔥53😁15🫡43
This media is not supported in your browser
VIEW IN TELEGRAM
...А эти инженеры, начитавшись материалов Лаборатории, выполнили почти идеальное проектирование в реактивной (data streams + backpressure) архитектурной парадигме.
2🏆47😁84
Однажды к Мастеру пришёл молодой программист и похвастался:

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

- Чем бы ты ни занимался, - ответил Мастер, - ты всегда становишься тем, чем ты занимаешься. Занимаешься разработкой сайтов на PHP ради банковского счёта -- в этот мусор и превращаешься. Не занимайся вебом ради денег -- занимайся трансцендентным метапрограммированием и гомотопической теорией типов, которые превосходят любые вещи и формы; занимайся тем, что заставит тебя поднять глаза к небу. Люби Haskell, люби Clojure, люби самые сложные из программистских вершин!!1

Молодой программист внял совету Мастера, переписал движок сайта на F#, после чего просветлился , а из-за оверинжиниринга потерял всех клиентов.
3👍43😁29😇7💯5❤‍🔥2
.

Ну, с Зимой! И с Днём Математика!

=

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

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

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

Работать с Big Ball of Mud ужасно. Если вы чихнете где-то в своей части кодовой базы, то нарушите работу 100500 функций, о существовании которых даже не подозревали. Большой Комок Говнокода сильно замедляет работу, регулярно приводит к ошибкам и вызывает сильное желание психануть и вообще уйти из индустрии...

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

Почему люди с маленьким, а то и с нулевым, опытом разработки, всё равно в конечном итоге получают работу, а у вас это почему-то никак не получается?..

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

Где потренироваться в задачках по программированию?

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

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

Самые большие заблуждения тех, кто с зарплаты 100-150к хочет выйти на 300+к, и как правильно...

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

=

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

=

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

В СильныеИдеи добавлен материал "129) The Rule of Least Power".
В программной инженерии хорошо известно The Rule of Least Power, которое предполагает выбор наименее мощного языка, подходящего для заявленной цели.
Если мы обобщим это с "наименее мощного языка" на "наименее мощную функцию/инструмент/паттерн/" и т.д., то получим важную эвристику разработки: ...

В раздел "Элитный программист" добавлен материал
83) ...
Вероятно, вы проводите большую часть своего времени, просто пытаясь пережить текущий день или даже текущую задачу, и вам трудно отвлечься и подумать обо всём следующем "годе". Тем не менее, я думаю, что оно того стоит, и это не займет у вас много времени.
Но с чего вообще начать? Отсутствие самого первого ясного шага может легко парализовать ваш анализ и помешать вам вообще что-либо сделать...

💪🏻

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

"ЛаМПовое": memory is slow disk is fast, формализация тестирования...

=

Гайд про функциональные архитектуры в активной работе, готово 52 (+2 :) топиков (добавляю жёсткий хейт Чистой архитектуры). Как будет 108, дам ментатам доступ.
136👍8🔥63❤‍🔥1
По иронии судьбы цель и смысл социальной жизни состоит в том, чтобы оставаться безработным (в смысле самозанятым/фрилансером) до самого конца.
242👍142❤‍🔥21
Почему база реально важна? Когда на одном конце спектра хорошее понимание computer science, а на другом вайб-кодинг. Ну, главный критерий -- это хрупкость скиллов. В конкретном стеке, в конкретном проекте, во фреймворке конкретной версии, с помощью ЖПТ действительно можно наловчиться быстро-быстро пилить типовые скучные задачки, возможно даже и на сеньорском уровне. Но стоит выйти чуть-чуть за границу, как макбук превратится в powerbook g4, а сеньор в джуниора :)

Условно говоря, пришёл на новое место, где та же джанга, но 5-й версии. И вроде бы то же самое, но если не изучал мой гайд "незримые механизмы логики" с разбором асинхронщины, как сразу все знания полностью ломаются при столкновении с асинхронным ORM-ом, многозадачностью в одном потоке, смешивании синхронного и асинхронного кода, n+1...

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

А потому что =>

"Боец, в критической ситуации ты не поднимешься до уровня своих ожиданий, а опустишься до уровня своей подготовки".
149💯165