Лаборатория Математики и Программирования Сергея Бобровского – Telegram
Лаборатория Математики и Программирования Сергея Бобровского
1.29K subscribers
1.19K photos
24 videos
931 links
ЛаМПовое с Бобровским
Download Telegram
Поясняю за последний опрос.

Умножение n-разрядных целых чисел занимает время O(n), поскольку алгоритм умножения предполагает многократное сложение. При умножении двух чисел их необходимо многократно складывать друг с другом до получения результата. Количество необходимых сложений зависит от размера перемножаемых чисел, который квадратично увеличивается с ростом n. Поэтому время выполнения этой операции линейно растёт с ростом n.

Умножение log(n)-разрядных целых чисел занимает время O(1), если мы вспомним энтропийную формулу Шеннона. В теории информации количество информации, передаваемой сообщением, измеряется с помощью его энтропии. Энтропия двух независимых сообщений A и B определяется как H(A|B) = H(A) + H(B), поэтому умножение log(n)-разрядных целых чисел можно рассматривать как объединение нескольких независимых сообщений с одинаковым количеством битов, что уменьшает общую энтропию объединённого сообщения. В результате получается более быстрый алгоритм умножения, который с точки зрения теории информации занимает время O(1).

(если вы не изучали теорию информации, то скорее всего не знаете, что значит дробное число бит -- красивое объяснение на хабре)
🤯13🤔4🫡1
Ну ладно, ладно, а то ещё скажете так на собеседовании 😂

Умножение n-разрядных целых чисел занимает O(n^2)
(по Карацубе, O(n^1.5849))

Умножение log(n)-разрядных целых чисел занимает O(n log n)

P.S. Но на самом деле, в некоторых экзотических теориях возможно и O(n) и O(1), как-нибудь расскажу.
👍15😁8🤝2🫡1
Иногда я пишу O(n!) код, чтобы научить пользователей терпению 😎
Напишите кстати что-нибудь подобное, императивную и рекурсивную версии.
😁13🏆3
Поучительная практика -- писать тесты для макросов и темплейтов.
8
По поводу серии постов "умножение n-разрядных чисел за O(n)". Проконсультировался у ребят из Массачусетского технологического института, где проходил курсы по software design, и PhD предложил почитать вот эту лекцию "Hashing: Universal and Perfect Hashing".

Речь о специфической вычислительной модели, ориентированной на продуктивную реализацию хэш-памяти. Я делал курсы по АСД во многом на основе 15-121 CMU, ну а 15-421 это более продвинутый. Хочу добавить эту тему в мои дополнительные курсы по АСД повышенной сложности, для которых использовал также материалы ШАД. И есть ещё одна секретная работа по этой теме из Renmin University of China, которую дам только курсантам.

Подобные темки, в частности, неплохой способ выбесить токсичного интервьюера ))) Курсантам в СильныхИдеях скоро расскажу несколько таких фишек, когда вы видите, что вас несправедливо сливают с технического собеседования.

P.S. Пацаны из MIT, кстати, позвали к себе поработать, стартап какой-то у них по автоматической "перекодировке" кода на разных языках. Ответил, что против утечки мозгов "Уезжай!" (с) Цой "Кто может уехать — уезжайте" (с) Карпин подумаю, и зимой решу.

P.P.S. Дорогие, не волнуйтесь, вас не брошу конечно )
🫡15👍117🔥64
8 признаков плохого программиста с т.зр. тимлида

1. Он работает в macOS
2. Он использует более чем 1 монитор
3. Он обращается к ChatGPT
4. Он не может обратить связный список
5. Он постоянно наливает себе кофе
6. Он изучает новые языки программирования ради "фана"
(особенно тимлидами не любим хаскель)
7. Он не пушит в прод по пятницам
(хочет отвлечься от работы на выходных?)
8. Он работает над сайд-проектами после работы
😁38🤯4🐳4🤔2🔥1
Ещё пара рекомендаций для тимлидов:

1. Берите в первую очередь тех ребят, у которых есть кейсы, а не то что они годами фигачат тонны кода по бесконечному потоку тикетов, не очень понимая, а зачем они вообще это делают.
У меня есть курсанты с солидным опытом, которые многие сотни тысяч строк написали, но нету ни одного законченного "кейса"! Ни одной самостоятельно реализованной подсистемы, они даже не могут пояснить, что делают, не на уровне спринга или джанги, а в "онтологии домена", ну или хотя быть чуть повыше абстракциями, нежели эти ваши веб-фреймворки.
Куда лучше, если человек сделал проект на 3 тысячи строк, реализовал его с нуля до конечных пользователей, например мобильную игру написал и выложил в гуглплей, и ему школьники написали что-нибудь в духе "руки бы разрабу оторвать" )))

2. Ищите ребят, которые явно выше требуемого уровня, и которые себя явно недооценивают (синдром самозванца и всё такое). Им можно платить ощутимо поменьше и долго держать в джунах :) У меня таких, увы, немало.
12🫡74🤯3👍1
Мир наводнён ужасным кодом, слишком быстро создаваемым программистами по принципу "сначала напиши, потом думай", и я уверен, что LLM существенно усугубят эту тенденцию.

Три основные рекомендации по разработке безопасного AGI:

1. Не учите его программировать: это облегчает рекурсивное самоулучшение.
Модели вовсю учатся всё более продвинутому программированию.

2. Не соединяйте его с интернетом: давайте ему только необходимый минимум для того, чтобы помогать людям; не рассказывайте ему, как манипулировать нами или захватывать власть.

Вовсю совершенствуются AI-агенты вроде AutoGPT, и активно работают в интернете, а модели стремительно обучаются на всём текстовом, что только находится в Сети.

3. Не прикрепляйте к нему общедоступный API: предотвратите его автоматизированное использование злоумышленниками.

Ну, с такого API и началась OpenAI.

Сценарий фильма "Не смотри вверх" развивается 1:1 ...
🫡13🤔321
Красотища: "Flappy Bird Implemented in Typenoscript types"
Сплошная type-level магия.

"Yes you heard that right, this game is written entirely in Typenoscript type annotations, which—if you didn’t know—are Turing complete. So how the hell am I runnning it in the browser and rendering the game in Typenoscript types?"

Впрочем, не удивлён: Typenoscript это очередное гениальное творение Хейлсберга, единственный язык мэйнстрима с такой мощной системой типов (а его генерики вообще огонь). Да, у C# и Java система типов тоже тьюринг-полная, но подобное на них написать практически нереально.

Когда-то я хотел такому учить, но зачем? подобный космический уровень просто некому оценить... Я сделал треть курса по F*, и немного начал готовить материалы по гомотопической теории типов как "языку программирования", но... даже если вы x100 программист, вообще не факт, что вам поднимут зарплату хотя бы на 20% исходя их ваших хард-скиллов, а на собеседованиях у вас будут спрашивать "какие веб-фреймворки знаете"...

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

С 1 января 2024-го анонсирую мои новые сервисы и услуги на тему пацан к успеху шёл как получать много-много бабла...

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

Дело не в том, что это что-то секретное или уникальное, а только в том, что это надо делать, что без крепких регулярных пендалей со стороны у 98% не получается.

P.S. Наш лозунг: работайте на своё имя, и пусть они платят вам за это деньги.
👍19🔥7🫡6🤔2💯2
Лаборатория Математики и Программирования Сергея Бобровского pinned «Красотища: "Flappy Bird Implemented in Typenoscript types" Сплошная type-level магия. "Yes you heard that right, this game is written entirely in Typenoscript type annotations, which—if you didn’t know—are Turing complete. So how the hell am I runnning it in…»
Из свежего интервью с Сэмом Альтманом (гендир OpenAI):

- Если бы мы использовали определения AGI 10-летней давности, многие бы уже сказали, что GPT-4 - это AGI...
- Через год AI будет куда более впечатляющим...
- До появления AGI осталось менее 10 лет... (сказано на удивление уверенно)
- В долгосрочной перспективе меня беспокоит не то, что AI отнимет рабочие места, а то, с какой скоростью AI разрушит рынок труда...

Думаю, спасутся только программисты.
(фото реальное)
🔥134🫡32👍1
Ценный пост Алёны Владимирской, вообще рекомендую на неё подписаться и читать, единственная кто так полезно и честно пишет про кадровый рынок.

Во-первых, там 4 очень хорошие рекомендации по поиску работы.

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

Важно! не попадитесь на такое, в ИТ, уверен, и не только на миллион, но и на 300+, а то и на 200т вполне могут просто вас раскручивать на экспертные советы. Вы им на интервью бесплатно всю систему спроектируете )))

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

Именно так! Вот буквально так и действуйте: работайте на своё имя, и пусть они платят вам за это деньги. Это будет нашим лозунгом, с 2024-го конкретно денежной темой и личным брендом будем особо заниматься.

P.S. Альтернативный взгляд на нетворк (блог лучше).
Согласен, ну мы будем заниматься всем этим "в комплексе".
👍23🫡5🔥4
Очень классный и значимый критерий успешности своего труда -- стоимость 1 часа работы. Учитываете, сколько часов работаете в месяц (по всем проектам, с учётом всех переработок -- всё всё что прямо или косвенно имеет отношение к вашему доходу...), и делите заработанное за месяц на это время.

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

...Я тут с грустью обнаружил, глядя на жену - репетитора началки (которая вообще без особых усилий (ну если не считать опыта 25+лет) заново набирает себе учеников по 2т/час), что если буду работать прозаически репетитором по программированию за 50 долларов/час (это кстати стандартная цена на апворке по средним задачкам уровня обычного миддла на питоне) -- условно, делать домашки студентам (решаю их молниеносно, поэтому в один час можно много напихать) или какие-то простые консультации по АСД или System Design, или подготовка к собесам в МОСЯ, это будет заметно выгоднее, чем моя постоянная многолетняя ежедневная возня с курсами, контентом, курсантами, подчас буквально пинками на зп 300k/s :)

Есть ещё тема, когда я взрослые команды консультирую, но не нравится, не хочу (прежде всего потому, что беру реально дорого, а они потом так нифига и не делают...).
Буду на эту тему крепко думать. Набрать сейчас клиентов "на репетиторство" на многие месяцы вперёд, особенно когда есть хороший опыт в "инфобизе", вообще как нечего делать.
226🫡4🔥1💯1
Илья Суцкевер, главный по науке в OpenAI:

-- AGI появится в ближайшие 3.5 года, и мы не знаем, как его контролировать...
-- Я бы не стал недооценивать сложность согласования систем, которые действительно умнее нас. Хорошей аналогией будет отношение людей к животным - когда приходит время строить шоссе между двумя городами, мы не спрашиваем разрешения у животных...
-- Вполне вероятно, что вся поверхность Земли будет покрыта солнечными батареями и ЦОДами...

на фото: спустя 7 часов после выхода AGI в интернет )))
🤯62👍2👌2🫡2
8 признаков плохого программиста с т.зр. тимлида
(часть первая)

- Он реально читает документацию
- Он использует мышь вместо vim
- Он использует ненастраиваемые механические клавиатуры
- Он пишет на языках с автоматической сборкой мусора
(не умеет корректно освобождать ресурсы?)
- Его код постоянно требует code review перед мержем с мастером
- Он готов работать за 50к (потенциальный бомж?)
- Его увлечение -- скалолазание, экстремальный даунхилл, сплавы по бурным рекам и т.п. (надо бы повзрослеть)
- Он следит за страховыми взносами в пенсионный фонд
😁24🫡4🤯2🐳2🤔1
Тимлиду: сейчас самое время набросать команде тикетов "на понедельник".
😁10👍2🤩2🐳1
От курсанта:

"...я завершил курс по ФП на Python.
Теперь у меня есть три союзника: lambda, map и reduce :)
Количество циклов в программах сократилось втрое."

Ну и filter ещё :)
🔥20🏆4🤔3🐳1
Купить свой домен -- наиболее важная часть планируемого сайд-проекта.
👍13😁6🤔4🫡3🐳1
Ваша компания не собирается инвестировать в ваши скиллы. Только вы сами можете это сделать.
👍17🫡6🐳1
Подъехало сразу несколько поучительных отзывов от курсантов.

"У меня весь октябрь была стагнация в собеседованиях - либо позиции с вилкой, которая меня не устраивала, либо просто отказы на отклики.
И тут я решил попробовать добавить в резюме полгода опыта, чтобы было три года с небольшим.
В четверг я обновил резюме, в пятницу на меня обрушился шквал звонков от HR'ов и вся следующая неделя сразу забилась собеседованиями :)
За первую неделю получил оффер на 300+, принимать пока не буду, сейчас приоритезирую [...]."


Во-первых, делайте вывод, какой вам надо ставить минимальный опыт в резюме (как это делать корректно и правильно, разбираем на курсе карьеры).

Во-вторых, я максимально помогаю ребятам по карьере/зарплате, и что интересно, в 70% бывает достаточно дать буквально 2-3 рекомендации, тут подчас важно просто искреннее сочувствие (или волшебный пендаль :), чтобы паззл в голове сложился на нужную сумму. Однако с 2024-го года будем заниматься с курсантами стратегически важной темой: как зарабатывать в ИТ действительно большие суммы, а не эти ваши 300k/s.

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

И тут придётся действовать энергично, потому что окно возможностей из-за AI скоро схлопнется, однако пока можно успеть снять все сливки. Контент у меня в принципе набран, но надо ещё продумать и отладить структуру и методику, а я пока одноглазик как Дэн Кеннеди, поэтому ждём 2024-го.

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

(Если поумничать, то инварианты моделей успеха в пространстве сетей целевых действий с различными топологиями (симплициальный комплекс) могут определяться гомологиями и гомотопическими типами, и такая глубина понимания сегодня потенциально вполне доступна, и даже формализуема, современными методами алгебраической топологии)
🔥1475😁4🐳2
Дорогие, отличная новость в честь праздника! 💥

(выберите на свой вкус: День народного единства, Казанская, последнее нисхождение Будды, Всемирный день мужчин, День использования здравого смысла...)

Прохожу вместе с женой (репетитор началки) дорогой курс (точнее, сразу два) по продвинутым методикам обучения малышей (на основе официальных академических исследований с мощной теоретической базой), и заметил такую удивительную особенность, что проблемы детишек в начальной и средней школе более чем полностью совпадают с проблемами программистов, которые учатся новым скиллам ))) Да и просто с проблемами 98% тех, кто выполняет рабочие задачки. Причём у начинающих они проявляются даже меньше, нежели у профессиональных разработчиков.
Причина ровно в том же, почему и в 5-8 классах успешный ребёнок скатывается с пятёрок на тройки и двойки — непрокаченная когнитивка не справляется с новыми нагрузками
(например, вы можете за 40 секунд дать верные ответы на 80 вопросов по таблице умножения? это стандартное требование к обычному интеллекту школьника)

Или тотальная беда с внимательностью, ребята буквально не видят что написано в задании, и даже моя рекомендация "сперва перечитайте внимательно условие три раза" не помогает 🫢 Тут, в частности, доводим до автоматизма микро-скилл понимания рабочего тикета (уровень отличника пятого класса).

Детский сад штаны на лямках :)

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

Подготовка к экзаменам -- очень похоже на подготовку к собесам, когда тупое прорешивание задачек для ЕГЭ (на литкоде) не помогает, и т.п.

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

Следующий 2024-й год посвящаем
а) теме больших денег в ИТ (важное уточнение) и
б) мощной прокачке когнитивных скиллов под программистскую работу.

P.S. Уже спрашивают: "А будет информация по этим методикам? :)"
Дорогие, так я для вас эти курсы и прохожу, с целью промышленного шпионажа 😎
👍26🔥1653🫡3