Лаборатория Математики и Программирования Сергея Бобровского – Telegram
Лаборатория Математики и Программирования Сергея Бобровского
1.29K subscribers
1.19K photos
24 videos
933 links
ЛаМПовое с Бобровским
Download Telegram
Структуры данных ближайшего будущего :)
Правительство Нидерландов обнародовало под давлением общественности исходный код своего приложения для цифровой аутентификации DigiD для iOS. По нему уже кучу мемов придумали.

Да, но хорошо бы на исходники и наших госсистем посмотреть...
VK приглашает на стажировку (нереклама, просто рекомендую)

"Бэкенд, фронтенд, тестирование, аналитика — и это далеко не все направления в 2023 году. Попробуйте решить реальные продуктовые задачи и научитесь новому у наставников и экспертов компании.

Можно попасть в команду одного из 15 проектов: Маруси, Почты Mail․ru, ВКонтакте и других. В каждом из них разные направления — от аналитики до дизайна. Заявки принимаются до 26 февраля:
vk.cc/intern

Оплачиваемая стажировка стартует в апреле и продлится пять месяцев. Актуальная информация — в сообществе VK Джуниор."
Главный концептуальный прорыв OpenAI в том, что, как оказалось, как минимум в теме AI для роста гораздо важнее тупая производительность и железо, нежели архитектура.

Кроме того LLM наглядно показали, что "человеческий гений" -- в существенной степени сказка, и даже такую вроде бы культовую интеллектуальную работу, как написание кода, нейросеть спокойно осилила на весьма удовлетворительном рабочем уровне.

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

И что ещё более удивительно: LLM ведь не дают "корректные ответы", они просто генерируют последовательности слов/токенов, которые просто статистически "похожи" на требуемый результат.
По данным HeadHunter, в январе 23-го число ИТ-вакансий составило 58 тыс. -- рост к прошлому январю на 63%! В ноябре был рекорд 90 тыс., и похоже, что уже к весне пробьёт сотку.

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

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

Думаю, что к осени счёт пустых вакансий пойдёт уже на сотни тысяч.
В каких случаях имеет смысл пользоваться ChatGPT, Ghostwriter, Copilot и т. п.?

1. Когда есть чёткая автономная задача, где нужен просто код решения (как задачки на литкоде).

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

3. Для небольших сайд-проектов с нуля.

Во всех остальных случаях вы сразу попадаете во взрослое проектирование, где качественных материалов в свободном доступе практически нету, а хорошие курсы и воркшопы стоят многие тысячи долларов. Учиться AI (пока) не на чем. Ну и в общем, без целостного понимания конкретного проекта AI будет просто давать джуниорские советы на уровне SOLID.
Прогноз 80%: до конца 2023-го появится около десятка открытых сервисов-аналогов ChatGPT.

Прогноз 20%: модельки этих сервисов будут значительно меньше LLM OpenAI, и деплоить их возможно получится даже на одном мощном GPU.

P.S. Только, как обычно, к бесплатным сервисам возникает множество организационно-технических вопросов. Например, OpenAI наняла кучу работников в Кении, которым платит по 2 доллара в час, чтобы они непрерывно вычищали всяческую токсичность из ChatGPT.
Андрей Карпатый на днях сказал, что язык программирования ближайшего будущего -- это английский.

"GPT is all you need for backend"

Вообще, самое недооценённое сегодня в AI в плане потенциала -- это, как ни удивительно, программирование. Сейчас в programming in small вполне можно с ходу получить x10, а потенциал не менее x100. Но над соответствующими prompt-скиллами конечно надо как следует поработать, а больше всего -- над включением AI в рабочие процессы производства софта. В ближайшие лет 10 (а возможно, и 5) мы увидим первую взрослую сингулярность -- в программировании.

P.S. Только конечно всегда надо помнить, что две недели сам не покодишь -- и потеряешь 20 лет экспириенса :)
👍1
Интересно, поймёт ли со временем Илон Маск, что его стиль управления ИТ-проектами далеко не самый продуктивный?
😁1
Кстати, да: написанием кода на приемлемом уровне может заниматься уже обученная нейромоделька в нашем уме, почти не требуя энергии, а вот правильное именование переменных -- это первый крохотный шажок в проектирование, где думать приходится помногу, и готовых паттернов нету.
Сложность программного обеспечения бывает двух видов: фундаментальная и случайная. Задача программиста как инженера --выявить и формализовать фундаментальную сложность решения, при этом добавив "от себя" минимальное количество случайной сложности. Пропорция между формальной точностью и отсебятиной и есть критерий квалификации разработчика.

"Сложные и деликатные проблемы, с которыми мы имеем дело, могут иметь только сложные и деликатные решения."
-- Карл Саган, американский астрофизик, идеи которого успешно применялись во множестве космических миссий
"Intelligent Machines and Idiotic Humans: A Startup Story"
(идеи для AI-стартапов)

Серия 5. Национальные стартапы-посредники.

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

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

Множество примеров такого подхода, ну например WOMBO: легко и просто создавать картинки с помощью AI. Как бы гайдов полным полно на эту тему, как работать с разными генераторами, и тем не менее именно через этот платный сервис нагенерили уже 2 миллиарда картинок. А загрузки их мобильных клиентов подбираются к 150 млн. Это по-моему крупнейший на сегодня консьюмерский AI-стартап.

+ свой Wombo API есть :) Например, заметка, как парень написал простой голосовой интерфейс на русском к Wombo (ссылочка на исходники там). Ну, вот это же и есть по сути потенциальный движок для стартапа! Совершенно ничего сложного нету.

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

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

Более того, сейчас наиболее продвинутые "гуманитарии" (консультанты всяческие, от кадровиков до физкультурников и "лайф-коучей"), прикоснувшись к ChatGPT, офигели от её уровня (существенно выше среднего) и умоляют сделать им сервисы комфортной работы с AI, службы индивидуального ведения клиентов, тренажёры с тоннами вопросов и оптимальными ответами и т. п.

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

Наслаждаюсь отчётами, которые ребята пишут в формате занятий Hard Work (практика в проектировании на основе сильных идей из CS):

- Хочется сначала сказать - "СНАЧАЛА Я НИЧЕГО НЕ ПОНЯЛ ПОТОМ ТОЖЕ НИЧЕГО НЕ ПОНЯЛ". 3 раза перечитал текст, и только на 3 раз понял материал). Метода with в php нет, зато php8 добавил много интересных решений.

- Однажды мне дали PR с +40000 -23000 примерно и сказали что вот эту либу обновили и перестали проходить тесты. Первым делом я пошел в changelog и посмотрел что случилось в новой версии, а там оказалось что добавили поддержку noscript шрифтов при рендеренге и поэтому во всех картинках поехали шрифты, т е поведение стало правильным и все что нужно было сделать это перегенерировать картинки. Казалось что баг, а оказалась фича.

- Если миксины просто добавляют новое поведение, то порядок перечисления базовых классов не важен. Если же они должны переопределять или использовать методы родительского класса или друг друга, то нужно учитывать порядок поиска вызываемых методов (method resolution order aka MRO). Кое-где встречаются упоминания, что для этого используется поиск в ширину по дереву наследования, но на самом деле алгоритм немного другой. Если очень хочется отключить модификацию состояний, то лучше сделать это в самом миксине. Или можно использовать питоновскую магию.

Десятки таких и будет больше, ребята молодцы! :) 💥💥💥
Есть компании, которые имеют программистов, и есть компании, которые имеют программистов.
Как фрилансеру сильно повысить свою продуктивность?

Палю фишечку с трека Элитный программист:

Делайте четыре помидорки строго с 8 до 10 утра.
Задачка: написать API для игры в крестики-нолики, в котором возникнет ошибка компиляции (не рантайма), если

- делается ход за пределы доски

- делается ход в уже выигранной позиции

- делается повторный ход тем же цветом

Из распространённых языков лучше всего подходит TypeScript, его система типов очень хороша; когда-то на C# я делал что-то подобное.

Курсанты, кто сделают это на Java, C++ или C#, будет скидка на очередной курс 30%, и потом возможно отдельно заплачу за серию подобных задачек.
Если бы меня оставили в покое на недельку, я сразу бросился бы программировать, написал какую-нибудь игрушечку (скоро, кстати, несколько выложу).

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

Главное, развивайте свою карьеру осознанно. Осознанно релоцируйтесь, тщательно выяснив все детали о проживании, осознанно переходите в конкретную компанию, тщательно выяснив всю специфику работы, и т. п. Подходите ко всему этому рационально, с циферками.
25🔥10👌4👍3👏2
Помещать ли медленные тесты в CI/CD?
Anonymous Poll
64%
Помещать
36%
Не помещать
🤔201🫡1
Вы поверите, если я скажу, что за год вы можете улучшить свои скиллы в 36 раз?

Это совершенно реально!

Если вы каждый день улучшаете свой навык на 1%, то за год он и усилится в 36 раз.

Причём этот прирост на 1% вы можете получить легко и просто, буквально за 15 минут.

Вызываете ChatGPT и просите его сделать полезную выжимку под ваши потребности, которая и даст вам желаемый процент прироста. Это конечно отдельный prompt-скилл, запросы надо делать очень подробно и только на английском, чтобы получить качественный результат, ну шаблон один раз достаточно составить.

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

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

И блоги экспертов очень хороши для обработки AI. А вот форумы, соцсети, новостные сайты не надо, много мусора.

Уже прямо сейчас программисты могут добиваться роста своей продуктивности в 10-100 раз, и это далеко не предел.
🔥26🤔71
Когда в конце февраля стартовали продажи Atomic Heart через VK Play, этот сервис, как нередко бывало со многими другими в подобных случаях, лёг.

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

Не знаю, вроде солидная платформа... Пройдите, что ли, мои курсы за 200 долларов по азам построения highload-систем...

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

Формально надёжность обычно задаётся двумя документами:
-- требования к уровню предоставления сервиса (service level objectives, SLO) и
-- соглашение об уровне предоставления сервиса (service level agreements, SLA).
Это контракты, описывающие ожидаемые производительность и доступность сервиса.

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

Соответственно, VK Play надёжной считаться никак не может.
🔥20👍6👏4💯1
"Москва первой в мире снизила интервал движения поездов метро до 80 секунд...
В начале года на Кольцевой линии установили новую микропроцессорную централизацию... Недавно провели испытания системы на отечественном ПО в режиме максимальной нагрузки, и удалось добиться самого короткого в мире интервала движения между поездами -- порядка 80 секунд... С помощью новой автоматики движения на Кольцевой линии столичного метрополитена поезда сменяли друг друга на станциях быстрее, чем в метро Парижа, Токио, Гонконга и Пекина..."

40 лет назад моим дипломным проектом в институте была программа на PL/I (а в тексте ее логика подробно разбиралась на псевдокоде в духе Алгола 68 (кстати, очень хороший и по сегодняшним меркам язык, допускавший например моделирование символьных вычислений на фазе компиляции), которая рассчитывала оптимальное расположение светофоров на перегоне метро с целью минимизации интервалов между поездами. Сам алгоритм выдавал математически оптимальный вариант. Придумал его не я конечно, а умники с кафедры. Но программировать тогда вообще никто не умел, и эта программа для кафедры была реально ценной.

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

Машинное время тогда было очень дорогое, 1 час счета в неделю на ЕС ЭВМ считалось счастьем, поэтому быстро привыкаешь делать очень качественную инспекцию кода :) А мне жутко хотелось программировать, и когда появилась возможность покодить на одном из первых 8-разрядных микропроцессоров, я быстренько переписал логику на его ассемблере...

Ну и вот, в 2023-м автоматизация критически важной транспортной инфраструктуры Москвы достигла наконец уровня 1983-го года. Хотя совсем не факт, что светофорчики на перегонах и сегодня расставляются автоматически; вполне возможно, что по прежнему вручную на глазок.
🏆16👏8👍6🤯6🤔2