Лаборатория Математики и Программирования Сергея Бобровского – Telegram
Лаборатория Математики и Программирования Сергея Бобровского
1.29K subscribers
1.19K photos
24 videos
930 links
ЛаМПовое с Бобровским
Download Telegram
Как говорил Тони Хоар, "Отлаживать сложнее, чем программировать, поэтому не вкладывайте все свои усилия только в программирование".

P.S. "Кинопоиск" работает на французском софте? lol
50😁17👍3💯2
"After Abandoning C/C++, Microsoft Forms New Team to Rewrite C# Code in Rust!"
🤔47👍134🫡32
РФ ещё со времён СССР выделялась сильными программистами, с хорошей математической подготовкой. Так было, так есть, и так и будет и дальше, надеюсь.

Но вместо того, чтобы развивать свои сильные стороны -- вкладываться в развитие и повышение квалификации программистов, пусть даже и разумную подготовку их на экспорт, от чего отдача может быть в 10-100 раз, у нас зачем-то пытаются подтягивать слабые, завязанные на хардвер и именно поэтому заведомо обречённые на неудачу: "свой приставка", "свой ифон", "свой планшет", да и "свой игровой движок" и "свой ОС" где-то рядом.

Возможно, потому, что там где хардвер, сразу появляются мощные госзаказы. Так-то чиновнику-неайтишнику трудно понять, почему это качественная разработка софта требует миллиардов. Ну сидят человечки, стучат по клавишам, вообще никаких накладных расходов кроме зп. Мы же легко наберём с улицы сотни разработчиков и создадим свою ERP, как мне однажды сказали в уважаемой компании лет 20 назад :)

А вот насчёт создавать хардвер, который явится лет через 5 и сразу будет отставать от мирового уровня на 15 лет, а стоить куда дороже, куда понятнее: можно показать что-то физическое для отчёта. Берёшь в руки, маешь вещь.

Но зато за счёт подобных "проэктов" можно стать долларовым миллиардером...
👍72💯7🔥21
Очень надеюсь, что этот тренд будет только усиливаться.

"Why the fuck do we let people that have no computer science backgrounds write code? Unacceptable!"

— Erik Meijer
🤔42👍2453🔥3
C++23 порадовал: например, мы оптимизируем с помощью assume функцию для расчёта значения 44, и если она попадётся где-нибудь в промисе, который потом сломается (что само по себе и так часто приводит к race condition), мы окажемся в UB и получим в перспективе крайне хреновые ситуации, которые нереально воспроизвести, если включён UndefinedBehaviorSanitizer (например, условия гонки чувствительны ко времени).
P.S. Ладно, плохой пример нарисовал :) return x+2;
Ну в общем вы поняли )
🤔564👍4🤯4
Только 6 человек в мире понимают суть этого всего ^^^ :)

Ну, с Днём Математика!
🎉46👍18🤯124🔥2
Ничто так не учит правильной архитектуре и software design, как работа с собственным дерьмом трёхлетней давности.
👍42😁24💯5🤓4😎3
Ваша мотивация — полностью ваша проблема 😎

Немного из отчётов ребят:

Но я все больше начинаю понимать,что меня интересует software design в программировании и как вы говорите «эти ваши веб фреймворки» да и в целом “programming in small” не так интересно. Может быть,это конечно неправильно, не знаю)) Но меня как то прям «прёт» от того,когда получается,пока естественно по кривому,не идеально,но все же разбить какую-бы то ни было программу на более менее независимые классы,спроектировав их общение мало мальски с интерфейсами.

Мы тут делали на distributed systems клиент и сервер по обмену сообщениями на сокетах на С++ и я вот прям день сидел и потел над дизайном,какие «абстракции» добавить. Пусть даже и пока не такие,чтобы вау,но так не хотелось как весь класс писать 300 строчек в мейн…

Как оказалось,после такого дневного обдумывания с UML и sequence diagram код писался намного легче. Всё таки,как вы и писали в одном из последних постов - навык по software design будет очень востребован со всеми LLM. Потому что в целом после уверенного понимания архитектуры и как что с чем общается, написать код - рутина. ...и пришлось что то менять,когда код писал,но уже лучше чем менять его после каждого «прозрения»,что надо было сделать по другому…

Даже сейчас читая про ASP NET мне как то больше интересно про его архитектуру,а не за какие API его дергать,чтобы достать сервис из DI контейнера...

И спасибо вам за ваши мотивационные посты в тг,у меня хоть потихоньку как то глаза открываются на карьеру и путь в IT. В FAANG уже не хочется,хочется как тот парень на 3ех проектах)) Ну и уже нет установки просто «поднять скилы» с вами - хочется научиться и зарабатывать деньги. Хорошие…

В общем изменения в себе я вижу с момента того,как к вам присоединился,а это самое главное! Так как до вас я 1,5 года какой то ерундой занимался,прогресса как то не было. Так что ваши посты работают!!! Они такое медленное действие оказывают,сея зерно сомнений в своих установках,которые чаще всего как то криво пока сформированы…
👍61🔥108😎31
Компетентность проявляется в глубине знаний, а не в их широте.

Бесчисленное множество программистов могут писать говнокод на Java, но на порядки меньше понимают и учитывают достаточно сложные детали, такие как JVM, сборка мусора, сериализация, многопоточность... И ещё на порядок меньше тех, кто может свободно писать на Java в функциональном стиле.

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

Для начала, будь то популярный язык программирования, REST-фреймворк или оптимизация SQL запросов в PostrgeSQL, станьте специалистом по чему-либо одному. Со временем это существенно изменит вашу карьеру!

P.S.1. Между прочим, если у вас один сервер и нету потока ежесекундных запросов, зачем вам постгресс? Используйте шуструю и компактную sqlite 🚀

P.S.2. Ну ладно, или бессерверный Postgres :)
🔥45👍1410😁5🐳1
Я решил, что функциональное программирование -- это поверхностная мода, и собираюсь вернуться к вечным математическим принципам императивного и объектно-ориентированного программирования.
🤔4414🤯12😁11😎6
Java/C#/C++ программистам очень полезно периодически кодить на Python, чтобы никогда не забывать, какая это боль, если не используешь хорошую static type system.
😁61👍15🐳5🔥2💯2
Совершенно не удивлён: когда ты монополист, можно откровенно плевать на своих самых благонадёжных клиентов.

И что это за служба безопасности, которая даже не может сама отследить, откуда мне донаты приходят? :)

Даже в банках, когда вам блокируют карту, безопасник просит пояснить за конкретный платёж ("а чё это вы впн оплачиваете?"), хотя бы ясно, в чём претензии.

Понятно, что сейчас положено активнее "бдеть", а как отчитаться о своей активности? Только числом заблокированных "подозрительных".

Ну ок, уйду на бусти например.
34🤯24👍13🫡10😁3
А чего так на "Смуту" набросились? Рассматривают под микроскопом, придираются к каждой детали.

"Текстурки разъехались... Сценка не проработана... Графика на максималках всё равно не топ..."

Ну игра и игра. Мне не нравится только, что бегать надо многовато по локациям (наверное, коня дадут?), а так норм.

Не знаю, это анрил наверное просит установить Visual C++ 2015 Redistributable? :)
😁62🤔8👍7🎉4🐳3
Самое лучшее в работе программиста -- это то, что вы можете постоянно говорить, что застряли на одном и том же месте, и вам не нужно давать какие-то дополнительные пояснения.
😁695🤔4👍3🐳1
Завтра выложу в вк пост, почему будущее -- за монолитами :)

В частности, потому, что микросервисы -- это вот нечто подобное ↑
😁60🔥10👍8🤔6❤‍🔥3
Выложил на курс карьеры 82-й материал "Стоит ли работать в МОСЯ/FAANG?".

Одна из серьёзных загвоздок в начале карьеры -- это отсутствие правильных ответов на многие ваши вопросы. Почему так, а не иначе? А как сделано вот это? А как хорошо сделать вот такое?

Если вы начинали свою карьеру программиста в небольших компаниях или стартапах, от вас требовалось ровно одно: заставить это работать. И если это работало хотя бы на троечку с минусом, то считалось, что дело сделано. При этом, конечно вы не писали никаких тестов, не имели никакого представления о паттернах проектирования, не говоря уж о software design, не уделяли никакого внимания вопросам масштабируемости или возможности долгосрочной модификации.

Люди писали, и всё также же активно пишут говнокод, постоянно изобретая велосипеды программной инженерии на ходу. И хотя мы можем целую вечность спорить о том, правильный ли выбор сделали организаторы стартапов, и мне, и большинству серьёзно настроенных ребят со временем становилось ясно, что это неправильно...
👍617🔥43🫡1
Прекрасное от создателя кложа, очень рекомендую =>
"Hammock Driven Development"

Как говорил Алан Кэй,

"OOP to me means only messaging, local retention and protection and hiding of state-process, and extreme late-binding of all things. It can be done in Smalltalk and in LISP."

Как они так мыслят? Точнее, как они доходят до такого мышления? изучаю, разбираюсь в этом постоянно, понемногу взламываю и моделирую ) мой формат hard work в помощь.

Это ведь не просто фраза, сгенерированная нейросеткой мозга, а мета-скилл, умение создавать в такой парадигме качественные проекты на миллионы строк кода.
👍4253🔥2🤔1
К предыдущему: те, кто выбрал неверный вариант, полагаю, ещё не знают, как больно отлаживать длинную цепочку наследования, которая ведет себя неправильно, и никто не знает, почему :)

Чем больше у вас в проекте полиморфизма (который не надо путать с генериками), тем больше у вас будет glue code (это тёмная материя программного обеспечения, которая в значительной степени невидима, и мы знаем о ней очень мало :).

Вообще, сила системы типов абсолютна: порядок всегда бьёт класс.

Забудьте про любые "вычисления" на уровне значений, пока не сформируете формальную унифицированную схему предметной области (как в ООП это делать например, поясняю на треке по ООАП). Другое дело, что хорошо бы добавлять на уровне типов семантические аннотации и разумное количество полиморфизма/наследования, но только для уточнения такой схемы.

Итак, идите и пишите правильный код, и да пребудет с вами Сила Куба Барендрехта! :)

P.S. Лет шесть назад кстати я писал об этом, вот думаю, не вернуться ли к тем планам? Все остальные курсы для Школы, которые хотел, уже сделаны.

...Вы сможете предлагать уникальный сервис, где вообще нету конкурентов -- разработку мощных языков программирования (верифицированных!) под конкретные ниши ML, с доказательством корректности кода. ...Совсем прозаическое -- что-то хотя бы на уровне System F для 1C :)
...Вы встанете вровень с Джеймсом Гослингом и Ван Россумом, Аланом Кэем и Андерсом Хейлсбергом, Юкихиро Мацумото и Грейдоном Хоаром. Это проект саморазвития даже не на одну жизнь, а на многие жизни вперёд.
...Ну и в любом случае, вы научитесь мыслить в программировании так, как никто больше практически, ну может несколько сотен человек во всём мире. Это объективно самый программистский топ.
👍4011🤔751