Лаборатория Математики и Программирования Сергея Бобровского – Telegram
Лаборатория Математики и Программирования Сергея Бобровского
1.29K subscribers
1.19K photos
24 videos
931 links
ЛаМПовое с Бобровским
Download Telegram
Регулярно читаю подобное в отчётах ребят, кто занимается на начальных курсах с нуля:

...Опять ошибка из-за невнимательности – поставил какой-то странный диапазон (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
Самое глупое, что за десятки лет я наблюдал и наблюдаю в ИТ, это когда люди спорят по любым темкам, и при этом искренне злятся, что у других может быть другое мнение. Пытаются доказать, что ты дурак а я нет, что ты, как я щитаю, в чём-то неправ...

Недавно например с печалью наблюдал, как сильные эксперты спорят по каким-то там техническим нюансам, откровенно оскорбляя оппонента. Зачем?? Дорогие, люди десятилетиями не могут договориться, как пробелы в коде расставлять...

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

Это поразительно... Эти люди, что, сами каждый день не врут десятки раз, и по мелочам, и по крупному? Родным, знакомым, незнакомым, коллегам, начальникам, подчинённым, обществу в целом? Они не делают другие плохие вещи? Они святые? Они всю свою карьеру честно отрабатывали каждую минутку положенного рабочего времени на 100%, никогда не воровали время у своего работодателя?

Такие споры -- самое глупое, на что только можно тратить свою жизнь...

Ребята, давайте жить дружно. Нам надо не обвинять друг друга в какой-то фигне и не конкурировать, на радость другим, а наоборот объединяться и поддерживать любые инициативы по развитию русской айтишки, сколь бы они не казались странными лично нам.
👍39❤‍🔥13👏3🫡2
Потестировал очередное творение американских братушек -- bard.google.com.

Написал он красиво факториал, комментарии на русском, всё норм.

Попросил его чисто стилистически убрать else, и тут началось )))

Долго я ему доказывал, что и без else всё работает, он спорил, потом наконец сдался, и вот так пояснил:

"Ранее я сказал, что удаление else приведет к ошибке, потому что я неправильно понял условие проверки. Я думал, что условие проверки if n == 0 вернет False, если n == 0. Однако, это условие вернет True, если n == 0."

То есть он даже не понимает значение сравнения n == 0 ...

=>
😁14🤔6🫡3
При этом bard оправдался, что дескать else делает код более понятным. Я уточнил: Может быть, тогда и твоя рекомендация "использование else позволяет нам сделать код более читабельным и понятным" неверна?

Вот что Bard ответил:

"Нет, я считаю, что моя рекомендация "использование else позволяет нам сделать код более читабельным и понятным" все еще верна. Даже в том случае, когда удаление else не приведет к ошибке, использование else может сделать код более понятным.
В случае функции factorial() использование else позволяет нам четко разделить два случая:
- Если n равно 0, то функция возвращает 1.
- Если n не равно 0, то функция вычисляет факториал числа n-1 и возвращает его произведение на n.
Без else эти два случая были бы объединены в один блок, что могло бы затруднить понимание кода."


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

Ну ладно, с натяжкой можно притянуть за уши большую выразительность (хотя я всегда против else в принципе), но вот
"Без else эти два случая были бы объединены в один блок" - это просто какая-то чушь :)
В какой блок? почему объединены?

В общем, пока AI может легко накосячить в трёх строчках кода, в совсем элементарных вещах, он будет утверждать, что (0==0)==False, и только под давлением согласится, что, возможно, это не так.

=

До времени, когда AI сможет заменить хотя бы джуниоров в любом рабочем проекте, пока ОЧЕНЬ далеко.

Безусловно, AI-ассистанты сегодня могут помогать очень здорово, и в x10, и в x100, и в x1000 в каких-то конкретных случаях, и их обязательно надо учиться продуктивно использовать.

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

Джунов за такое сразу безжалостно выгоняют с испытательного срока, и правильно! :)
🫡16😁5🤔3🔥2
В продолжение, прислал Даниил, ну GPT4 пока поумнее других, ага. Обязательно будем дальше эту тему внимательно отслеживать.
🤔13😁2🫡2
С 01.01.24 правила занятий существенно обновляются; в частности, по развитию карьеры буду общаться теперь только с теми, кто работает программистом/ищет работу программистом. Кто "вырос" в тим/тех/лиды, всё, пока :) это билет в один конец.

=

Просили анонсы наших новостей и vk-постов в тг выкладывать, ок.

Товарищи курсанты, в раздел "Элитный программист" добавлен материал "Как получить повышение через экстремальную ответственность".

Одна из жалоб, которую вы часто услышите в адрес менеджеров -- это то, что они повышают не тех людей. Многие программисты возмущаются, когда видят, что людей повышают за их умение красиво говорить, а не за их технические навыки.
Итак, вместо того чтобы обижаться на то, что вас не замечают, в то время как тех, кто обладает более слабыми техническими навыками, регулярно повышают, почему бы вам не принять тот факт, что это находится под вашим контролем?..
🔥10👍43🫡2😁1
Если джуны толпами рвутся на вакансии без опыта (это неправильно, поясняю на курсе карьеры, что сегодня надо с этим делать -- и нет, это не (далеко не только) накрутка опыта), то толпы сеньоров также шаблонно мечтают о FAANG/МОСЯ -- но зачем? Во-первых, компаний, где вы можете заработать существенно больше в чистом виде, многие тысячи, в т.ч. и в любимой Российской Федерации, во-вторых, можно заработать программированием куда больше просто другими способами, нежели впахивать на топовых галерах.

Некоторые думают, что МОСЯ -- это такой супербонус для резюме, да нифига. Всем пофиг на то, где вы работали. Конечно, работа в Яндексе даст +5% например, но не больше. Если вы не подходите под проект, то кому какое дело, где вы там раньше работали.

Если вы хотите действительно супербонус для резюме, чтобы брали куда угодно в мировом ИТ просто "за гитхаб", надо делать действительно взрослые специализированные вещи.

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

Действительно крутых задачек бесконечное число, причём сегодня классические научные темы прекрасно ложатся на прикладуху. Ну например, компиляция с одного языка на другой через term rewriting. Есть классический учебник Филда и Харрисона "Функциональное программирование", который был написан в 1988 г., и все идеи того времени актуальны и сегодня -- потому что это хорошо отшлифованная математика, тут ни убавить, ни прибавить.

Или, как написать супер-блокчейн с использованием линейной темпоральной логики и реляционной модели, или SAT-солвер на conflict-driven clause learning + BDD, и т.д. и т.п...
👍135🤯4🫡42
Рабочий понедельник в разгаре! Вовсю фигачите тикеты? :)

Если вы ООП/императивный разработчик, то вам даже кофе не нужен.

Когда пишешь на Java или Python, C# или JavaScript, постоянно захлёстывает адреналин от осознания того, что любая твоя строка кода может сломаться 10 различными способами 😁

Какое ещё функциональное программирование? Нет уж, спасибо, я лучше оформлю пять уровней наследования для моего FactoriesManagerFactorySingleton, с нулл-чекингом каждые 2-3 строчки.
😁365🐳3🫡3🤔2
Знаменитый физик Эрнест Резерфорд, лауреат Нобелевской премии, в 1933-м заявил, что идея получения энергии из расщепления атома абсурдна и нелепа.
Через 12 лет американская атомная бомба уничтожила 100,000 человек в Хиросиме.

А вот как сегодня прогрессирует AI Midjourney например.
🔥16🤔6🫡52
В продолжение поста про cs в прикладухе, а также про "изучайте профильную математику в контексте computer science", ребята спрашивают, а что лучше поизучать-то?

Ну тут тем множество... Для каждой задачи свой раздел. В матрице компетенций в computer science есть два трека "теория" и "математика", но это если хочется общую базу получить,

а лучше всего начать с TAPL ("Типы в языках программирования" Пирса) -- саму математику можно пропускать, просто тексты почитать уже будет здорово очень, а непонятки можно у AI уточнять. Есть также наша схожая хорошая книга "Программирование: теория типов" (Швецкий, Кудрявцева).

Теория типов это наш главный хак )

Ну и, собственно, в посте-закрепе ещё 2 года назад пояснял те самые ключевые восемь темок computer science, которые быстрее всего приведут вас к просветлению:

"Как программисту стать значительно умнее? Что изучать, как прокачивать свою квалификацию стратегически? Нужен ли вам теоркат, зависимые типы и homotopy type theory? Восемь рекомендаций, какую абстрактную вычислительную машинку надо собрать и встроить себе в голову, чтобы мозг заработал на топовом мировом уровне и вдребезги расфигачил ваш стеклянный потолок."

В частности, порекомендую книги Даниэля нашего Фридмана:
Little Typer, Little Prover и др.

EoPL конечно must have, у меня аналогичный трек "как понять в программировании всё" по вычислительным моделям.

Но для начала попробуйте осилить смешную "A Little Java, A Few Patterns" (кстати, в СильныхИдеях я много раз подчёркивал, что паттерн visitor очень крут), даже на простенькой Java крыша сразу слетит 😇 Но зато коллеги будут офигевать от вашей крутости.

Не тратьте время жизни на изучение фигни, ну правда. Любая такая книга прокачает ваш ум в десятки раз круче, чем какой-нибудь учебник по веб-фреймворкам (который скорее ваш ум только затупит :). Слово пацана!

Курсантам рекомендую индивидуально, как лучше всего эти темки поизучать, в контексте конкретной карьеры.
24🔥3👍21🫡1
Это, типа, AI сгенерировал в ответ на запрос "программист пытается социализироваться" )))
😁27🫡21🤩1
Однажды (например, пройдя большинство моих курсов и позанимавшись на hard work), вы откроете для себя правильный способ программирования: то, что придаёт всему этому смысл.

Вы убедитесь на собственном опыте, что в айтишке всё было бы намного лучше, если бы и все остальные тоже программировали правильно.

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

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

Однако если вы будете стабильно придерживаться первого правила Школы, то со временем изучите 50 (или 100500) других правильных способов, и, самое главное, научитесь продуктивно сочетать их с конкретной проектной задачей — и станете x1000 просветлённым, в сравнении с окружающими вас сонными бедолагами, не желающими расти в профессии...
👍17😇8🫡4🐳1