The Art Of Programming
2.52K subscribers
647 photos
62 videos
2 files
888 links
Канал подкаста The Art Of Programming о Developer Experience, инструментах, технике и разработке ПО в самом широком смысле, включая менеджмент ИТ-проектов.

По вопросам интеграций, рекламы, приглашений на круглые столы и в качестве докладчика — @golodnyj
Download Telegram
Полезные привычки или как не сгореть на работе.

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

Набросали на салфетке три самых простых для внедрения в свою жизнь практик:

1. Правило двух минут.
Если задача занимает меньше двух минут — делаем сразу. Никаких «отложу на потом» или «запишу в список дел». Это снижает когнитивную нагрузку и не даёт накапливаться мелким делам.

2. Временные блоки.
День разбивается на чёткие интервалы по 25–30 минут с небольшими перерывами. В каждом блоке — только одна задача. Прям горжусь теми, кто реально этому следует, а не просто ставит помидорку для галочки.

3. Ритуал завершения рабочего дня.
Последние 15–30 минут рабочего дня — на подведение итогов и планирование следующего. Помогает «закрыть» рабочий день в голове и не тащить задачи домой.

Эти привычки работают прекрасно и в стабильных условиях, и во время постоянных «пожаров». Недостатки или проблемы в этих практиках, конечно, можно найти — возможно, в вашем контексте они не подойдут. Но суть не в слепом следовании, а в выработке своей системы. Регулярность и осознанность. Хотя по первости от внедрения этих практик чувствуешь, что работа тебя аж выжимает. 

А какие рабочие привычки помогают вам оставаться в ресурсе?
👍19🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
4💯2👍1
An Intro to DeepSeek's Distributed File System.

Новинку из мира open source подкинул Алексей — 3FS (Fire-Flyer File System), распределённая файловая система, выпущенная DeepSeek. 

Меня зацепило описание CRAQ — протокола для обеспечения строгой согласованности и отказоустойчивости данных. Для тех, кто хочет покопаться в деталях, есть отличная статья с описанием архитектуры и результатами тестирования производительности.

Читать полезняшки от «Разбора Полетов».
👍3
CFP Moscow HighLoad++2025.

Настроение ПК вам, конечно, понятно сразу. А всё почему? HighLoad++ 2025 открыл прием докладов

Хотим, чтобы вы узнали как можно раньше и из первых уст. 26 мая коллеги проведут встречу в Москве и зовут в гости (я не смогу быть, хотя очень хотелось быть): приходите сами и берите с собой своих докладчиков. Обязательна регистрация: офлайн / онлайн.

CFP и подача заявки тут.
😁5👍4
Победители второго сезона грантовой программы Yandex Open Source.

Сегодня хочу поделиться отличными новостями из мира открытого кода. Яндекс подвел итоги второго сезона программы Yandex Open Source, и результаты впечатляют!

Самое вкусное: каждый победитель получает грант на 600 тысяч рублей в виде ресурсов в Yandex Cloud. Прям горжусь тем, как компания поддерживает независимых разработчиков и их проекты.

В этом году было больше 120 заявок (!), это показывает, насколько активно развивается опенсорс-сообщество в России. Весь этот пул оценивал программный комитет, состоящий из разработчиков и менеджеров опенсорс-продуктов Яндекса. Подробности про победителей почитать тут.

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

P.S. Если у вас есть классный опенсорс-проект, следите за анонсами следующего сезона — это отличная возможность получить поддержку для его развития!
👍6🎉4🤩2
This media is not supported in your browser
VIEW IN TELEGRAM
🔥1
Copilot Chat в VS Code.

Microsoft откроет исходный код расширения GitHub Copilot Chat под лицензией MIT. Неожиданный и крутой шаг, как кажется в самом начале. GitHub Copilot превращается из помощника в полноценного AI-агента, интегрированного в платформу GitHub. Новый асинхронный агент автоматизирует исправление ошибок, добавление функций и улучшение документации, анализируя код и сохраняя изменения с логами. Все как мы любим.

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

Что это значит на практике:

🔵Разработчики смогут изучать, как устроен Copilot изнутри, ну какие-то его части.

🔵Сообщество получит возможность улучшать и кастомизировать инструмент.

🔵Повысится прозрачность работы ассистента.

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

We’ve gotten a lot of questions about the data that is collected by AI editors. Open sourcing the Copilot Chat extension enables you to see the data we collect, increasing transparency.


Так что ждем, смотрим, изучаем...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
infra.conf'25 уже 5-го июня.

Команда Yandex Infrastructure, которая создаёт и предоставляет внутреннюю инфраструктуру Яндекса, опубликовала программу конференции infra.conf'25.

Спикерами infra.conf'25 станут ведущие инженеры и разработчики Яндекса, Купера, MTS Web Services, Positive Technologies, AvitoTech, Sber AI и других компаний.

Конференция пройдет 5-го июня, самое время оставить заявку на участие.
5🔥4🎉2
30 лет.

23 мая 2025 года языку Java исполняется 30 лет. Первая версия Java (1.0) была разработана компанией Sun Microsystems и выпущена в 1995 году.

Танцуют все.
15😁1
5 миллиардов событий.

Что такое 5 миллиардов событий — это обезличенные и тщательно зачищенные данные за 8 месяцев работы Яндекс Музыки, на которых можно обучать и тестировать рекомендательные системы. Пару дней назад Яндекс выложил в опенсорс Yambda (YAndex Music Billion-interactions DAtaset) — один из крупнейших в мире датасетов для развития рекомендательных систем.

Датасет представлен в трёх вариантах: полная версия содержит 5 миллиардов данных, уменьшенные — 500 миллионов и 50 миллионов. Данные датасета и код для замеров доступны на HuggingFace.

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

Вообще, когда занимаешься любой работой с данными, хочется иметь некоторую точку отсчета. В мире не так много хороших датасетов, способных стать линейкой. Смотрю на работу коллег и прям кайфы. Хочется верить, что этот шаг поможет развитию рекомендательных систем во всем мире.
🔥113👍1
Такие продакты: исследование на стыке аналитики и фана.

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

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

В главных ролях — продакты из разных бизнес-юнитов:
🔵Лена Щеплова (Еда)
🔵Дима Самарин (Лавка)
🔵Антон Проценко (Яндекс 360)
🔵Ксюша Белоусова (Станция с Алисой)
🔵Яна Скотникова (Музыка)
🔵Ваня Фефелов (Путешествия)

А теперь самое интересное — зачем это всё? 🤔

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

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

Присоединяйтесь к сообществу @yandexforproducts — будет интересно! 🚀
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍3👀1
Агенты не спасут.

Вместе с Алексеем в две каски развлекались в 293-м эпизоде подкаста «Разбор полетов». Порадовались появлению нового сервиса Yandex Neurosupport от Yandex B2B Tech.

Вспомнили, что мы любим Java и слегка тронули JEP 512 и свет нашего Брайана Гетца. Подвисли немного на теме агентов и в частности обсудили Amazon Q Developer

Слушать подкаст на Яндекс.Музыке.
Читать полезняшки от «Разбора Полетов».

#подкаст #debriefing
🔥2😁1👀1
Поиск с мозгами.

Недавно писал про продактов. Разработчикам они частенько видятся как безумцы. Да, «голодные безумцы» всегда придумывают новые способы сделать что-то старое, вот, например, Perplexity пытались переизобрести поиск. А идеи они как девка, брошенная в полк, многие подхватывают. Поиску задавать вопросы... Хм... Есть что-то интересное в этом. Ломать свой продукт никто не собирался, конечно же, но можно в него добавить щепотку нового.

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

Что интересного появилось:

🔵Структурированные ответы: Алиса теперь не просто ищет, а продумывает структуру ответа и собирает мини-статью с подзаголовками, картинками и видео.

🔵Режим рассуждений: Алиса может показать, как она анализирует информацию и делает выводы. Перепроверяет себя по шагам и использует больше источников.

🔵Генерация контента: прямо в поиске можно создавать тексты и изображения. Правда, вот эту часть я не пробовал, пока пользуюсь для этого специализированными нейросетками.

Изменение пользовательского поведения не за горами, это повлияет на нашу с вами разработку достаточно сильно. И пока не очень понятно как. Но, похоже, появляются новые паттерны работы с приложениями, и это придется учитывать и при проектировании, и при разработке.
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍3👎1
Архитектурная задача: тяжелый камень на собеседовании.

На выходных встретился со своим бывшим студентом — он только что прошёл через «вьетнам» массовых собеседований и успешно поменял работу. Говорили о том, что оказалось самым тяжёлым во всём этом процессе. И — спойлер — это были не стандартные алгоритмические задачки или ловушки на синтаксисе. Главными препятствиями неожиданно стали:

1. Общение с десятками незнакомых людей.

Казалось бы, что тут сложного? Но когда годами работаешь в устоявшейся команде, перестраиваться на новый, практически «нетворкинговый», формат — резкий стресс. Мой собеседник признал: самой большой ошибкой стало подаваться сразу в пять компаний и проходить собеседования параллельно. В итоге — непрерывный поток новых лиц, стресса, одинаковых вопросов и практически полного отсутствия времени «переварить» обратную связь.

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


2. Архитектурные задачки: вот где настоящая проба на прочность.

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

По итогу забега собеседований мой студент подошёл к задаче конструктивно: добавил себе в личный roadmap проработку типовых архитектурных задач. Так что если узнаёте себя — не удивляйтесь, c этим сталкиваются почти все! На мой взгляд, архитектурное мышление можно и нужно тренировать — как раз на такого рода open-ended задачах, всегда есть, куда расти.

Сыграйте в архитектурную игру — и прокачайте себя

Кстати, а что если сыграть в архитектурную игру наоборот? Вдруг у вас есть на пальцах какая-нибудь нетривиальная архитектурная задачка: как построить систему X, обеспечить отказоустойчивость у Y, распределить нагрузку, минимизировать стоимость владения и так далее.

Если вам интересно не просто поэкспериментировать «для себя», а увидеть, как с задачей справляются архитекторы топовых продуктовых компаний — да, такое реально!

Присылайте свои архитектурные задачи — лучшие обсудят и разберут в прямом эфире ведущие backend-разработчики Яндекса:

👉 Оставить задачу для разбора

Есть собственный pain point или интересная архитектурная загадка? Не стесняйтесь — отправляйте тему, и, возможно, вашу задачу выберут для публичного разбора с комментариями и советами!
👍7🔥42
Теорема Кука — Левина.

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

Точнее, работу в кругах математиков принято называть теоремой Кука — Левина. Доказательство теоремы было сформулировано Стивеном Куком в работе 1971 года. Но в то же самое время независимо теорему доказал советский математик Леонид Левин.

В этом дуэте через некоторое время возник третий участник — Ричард Карп. Стивен за свою работу в 1982 году получает престижную премию Алана Тьюринга. И вслед за ним в 1985 году ту же премию получает Ричард, по факту за продолжительный вклад в теорию алгоритмов и решение ряда задач.

Как-то уже писал, что в 1983 году Кен Томпсон и Деннис Ритчи получили премию Тьюринга за разработку общей теории операционных систем и, в частности, за создание ОС UNIX.

Тут мысль остановилась и пошла спать.
👀4
Платформа для разработчика как продукт.

После просмотра выступления Романа Елизарова про платформу для разработчика как продукт — вот ссылка на его доклад — не дают покоя несколько мыслей. Доклад рекомендую к просмотру тем, кто занимается внутренними платформами и инфраструктурой в IT-командах.

Роман затронул несколько важных моментов, которые у меня резонируют и, думаю, также попадут во многих из вас:

1. Продукт должен быть ориентирован на пользователя и иметь чёткую цель 

Это кажется очевидным, но на практике мы знаем, сколько можно потратить ресурсов впустую, создавая очередную платформу «потому что модно», «бизнес попросил» или «у конкурентов есть». 


На успешных продуктах вроде GitHub Actions или Firebase — видно, что каждая их функция отвечает на конкретную боль пользователя и реально облегчает жизнь. Хотя со временем что-то лишнее (или непонятное внешнему наблюдателю) налипает. Еще один отличный пример — внутренняя платформа Backstage от Spotify. Их всех объединяет философия: каждая новая фича убирает барьеры для разработчиков, а не создаёт новые.

2. Метрики — не просто красивые графики

Роман совершенно прав: метрики — это не самоцель. Цифры ради отчёта мало что дают — важно понимать, какую реальную пользу они показывают. Можно измерять аптайм, скорость деплоя, NPS — но всё это имеет смысл, только если метрики реально связаны с удовлетворённостью и эффективностью команд. cto

3. Документация и поддержка — не nice-to-have, а must-have 

Каждый, кто пытался разобраться в обрывочном или устаревшем README, меня поймёт 😅 (Сам не раз сталкивался с самописными сервисами без документации.) Хорошая документация и поддержка делают платформу реально ценной для всей компании. Не зря такие проекты, как Stripe, серьезно вкладываются в документацию, и это помогает выделяться среди конкурентов. Небольшая заметка про важность документации.

4. Удобный интерфейс — не для красоты, а ради бизнеса 

Тут вообще можно столько копий сломать, что даже начинать не хочется. Любой разработчик, застрявший в сложных ритуалах деплоя или в интерфейсах уровня Jenkins-2015, знает, о чём речь. 

В итоге 

Платформа для разработчиков — это полноценный продукт. Она требует такого же внимания к деталям, прозрачности и заботы о пользователе, как и любой внешний сервис. Грамотный подход к этому вопросу может заметно повысить производительность и вовлечённость технических команд.
👍63
Закон Амдала, или почему не всё параллелится.

Представьте, что вы пытаетесь ускорить приготовление борща, привлекая больше поваров. Звучит логично – чем больше рук, тем быстрее, верно? Не совсем! И именно об этом нам рассказывает закон Амдала.

В 1967 году Джин Амдал сформулировал то, что сейчас считается одним из фундаментальных законов компьютерной архитектуры. Суть проста: если у вас есть задача, которую вы пытаетесь распараллелить, максимальное ускорение всегда будет ограничено той частью, которую нельзя выполнить параллельно.

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


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

То же самое в программировании — даже если у вас есть 128 ядер, программа не станет работать в 128 раз быстрее. Всё упирается в ту самую последовательную часть, которую никак не распараллелить.

Вспомнил я это не случайно. Необходимо было консультировать одного молодого человека с легаси-проектом на Java 6. По памяти вспомнил формулу закона Амдала и книжку, в которой впервые к месту прочитал объяснение и сразу знакомился с применением этого закона:

Java Concurrency in Practice

Сейчас, благодаря издательству «Питер», книжка доступна на русском языке:

Java Concurrency на практике

Взял ее в руки, и прям накатила ностальгия. Начал читать, и прям поперли флешбэки, чуть позже вернусь к этой книге еще.

#книга
🔥105👍5
Приключения в South HUB: D&D с умной колонкой.

Вернулся с крутого летнего лагеря для C-level — South HUB. Провел там три игры Dungeons & Dragons в роли мастера (про наш D&D надо конечно рассказать отдельно), и у меня был необычный помощник — новая Яндекс Станция Стрит .

Почему она оказалась идеальным компаньоном для D&D?

Два ключевых момента:

1. Автономность: колонка работает через мобильный хотспот или Bluetooth. А если заранее скачать треки - вообще не нужен интернет. Идеально для выездных игр!

2. Голосовое управление: можно переключать музыку командами прямо во время игры, не отвлекаясь от процесса. И что круто — работает даже офлайн. Но можно подруливать и с мобилки, с обычного приложения Яндекс Музыка.

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

Прям горжусь, как удачно всё сложилось — и игры провел, и новую колонку протестировал в деле. Теперь это мой must-have для выездных D&D сессий 🎪
🔥9🤩42🗿1
А вот представьте себе виртуального менеджера в вашем трекере задач! 🤔

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

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

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

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

Как думаете, такой помощник реально мог бы облегчить жизнь команде? 🤔

Но в начале мы, конечно, кайфанем, прям вижу в тикете переписку:

— Позови человека.
— Можете выставить эстимейт этой задаче с учётом вашего опыта и непрерывной сфокусированной работы в одном потоке с этой задачей.
— Сука, позови человека...
😁14👍1
Young Con 2025.

Уже на следующей неделе мега-событие в Москве. 25 июня на Live Арене пройдет Young Con 2025. Коллеги ждут 8 000 человек (в прошлом году было круто и было 5000).

Ярмарки вакансий, продуктовые зоны, доклады и пробные собеседования. Все для тех, кто начинает карьеру в ИТ.

П.С. А я в это время буду на питерских конференциях и вырваться не смогу, но обещают, что будет эпично.
3🤩1
Немного о безопасности дома.

Сегодня в очередной раз пришла ко мне знакомая девушка и попросила совета. Контекст такой: «Снимаю квартиру и хочу быть уверенной, что ко мне не ходят, пока меня нет». Еще полгода назад у меня не было ответа на этот запрос. Точнее, был, но так себе.

Сейчас мои коллеги запустили в производство и уже поставляют умную IP‑камеру для дома. Она работает в экосистеме умного дома с Алисой и стоит недорого.
4👀4