Data Дзен с Олегом Дмитриевым
Open in Telegram
Закулисье IT: как на самом деле работают аналитики и что скрывают дашборды! Олег Дмитриев - заведую аналитикой, 5+ лет в IT, пишу о радостях, боли и лайфхаках работы с данными. BI, аналитика, лайфстайл, саморазвитие ! Сотрудничество :@o_dmitriev1
Show moreRussia225 628The category is not specified
1 749
Subscribers
No data24 hours
+27 days
-930 days
Posts Archive
Бродячий торговец 🤔
На пути к деревне «Скьюелево» мы набрели на лесок, возле которого стояла лавка торговца.
Надпись на ней была диковинная: «Лавка мудрости».
За прилавком продавец стоял. Глаза хитрющие, руки загребущие 🪙
Отоварил нас пройдоха на целых четыре свитка мудрости.
Вот и список этих свитков.
1. Логика и мышление на собесах
2. Блок по SQL на собесах.
3. Продуктовый блок ( retention, когорты) простыми аналогиями.
4. А/B тесты и с чем их едят.
Погостили немного у торговца, но пора и честь знать.
Ай да выдвигаться к деревне «Скьюелево» и получать новые свитки знаний 😎
@data_dzen 🙂
Хроники ученья красивых кадров #1 😎
А вот и видео с первым днем весны подоспело.
Как раз вам после обеда посмотреть расслабиться... и больше не работать сегодня 😂
Захотелось передать в этом видео ощущение уюта и тепла. Снимать не в лоб, а взглядом со стороны.
Запасайтесь чаем и приятного просмотра 🩷
#data_dzen 🙂
+5
Магическое A/B-тестирование 😎
Для многих сия тема кажется весьма простой: показали одной группе старую версию, другой новую, метрика выросла, стало быть тест успешен.
Но на практике именно тут и скрывается одна из главных ловушек.
Смысл A/B-теста не в одном лишь ответе на вопрос, выросла метрика или нет.
Куда важнее понять: можно ли вообще считать сей рост полезным для продукта 🤔
Разберём на простом примере.
Допустим, в городе есть кофейня. Долгое время она работает с одним меню, а потом решает его обновить. После этого выручка растёт 🔥
На первый взгляд всё ладно: хозяин доволен, цифры стали лучше.
Но если копнуть глубже, может оказаться, что выручка выросла только за счёт новых гостей, постоянные посетители стали приходить реже, а средний чек поднялся вместе с количеством жалоб 🤦♂️
И тут открывается истинна: смотреть только на одну метрику опасно.
Сам по себе рост выручки ещё не означает, что решение было верным.
Вполне может статься, что сработал эффект новизны: пришли новые люди, им стало любопытно, а вот ядро аудитории начало отваливаться.
А коли уходят постоянные посетители, для бизнеса это уже тревожный знак.
Потому в A/B-тестах важно смотреть шире.
Вот несколько вещей, которые действительно нужно проверять.
1️⃣ Не сломали ли вы что-то рядом
Целевая метрика может вырасти, но вместе с ней могут просесть соседние показатели: retention, качество пользователей, глубина использования продукта и другие важные метрики.
Это как с машиной: можно сделать двигатель мощнее, и она поедет быстрее.
Но ежели при этом она начнёт хуже тормозить, вряд ли такое улучшение можно назвать удачным.
2️⃣ Держится ли эффект во времени
На всё новое люди часто реагируют положительно.
Просто потому, что это новое, непривычное и притягивает внимание.
Например, вы сделали перестановку мебели в квартире. Первые несколько дней всё кажется свежим и занятным.
Но потом проходит эффект новизны, и вы начинаете замечать, что жить удобнее не стало.
С продуктом ровно та же история.
Посему важно смотреть не только на первые дни после запуска изменений, но и на то, что происходит дальше.
3️⃣ Одинаков ли эффект для разных групп пользователей
Средний результат по продукту может выглядеть хорошо.
Но если разложить данные по сегментам, окажется, что рост был только у одной группы, а другой стало хуже.
У новичков метрика выросла, а у старых пользователей просела.
Именно поэтому полезно сегментировать результаты.
На что обычно стоит смотреть:
- Давность регистрации.
- Уровень активности.
- Пол и возраст.
- Тип пользователя или род деятельности, если платформа это позволяет.
Одна и та же функция может отлично зайти новичкам, но раздражать пользователей, которые давно привыкли к старому сценарию.
Или наоборот: активные пользователи быстро увидят ценность изменения, а редкие вообще не заметят разницы.
Но и тут важно не переусердствовать ❗️
Не стоит раскладывать данные на все возможные сто разрезов просто потому, что вы можете это сделать.
Иначе анализ легко превращается в охоту за случайными совпадениями.
Сегментация должна быть логичной и объяснимой.
Если вы не можете словами обосновать, зачем смотрите именно этот разрез и что хотите в нём проверить, скорее всего, он вам не нужен.
В итоге сильный анализ A/B-теста не сводится к выводу в духе «метрика выросла, значит всё хорошо».
Сильный анализ это ответ сразу на несколько вопросов:
- у кого именно выросла метрика;
- за счёт чего произошёл рост;
- не сломали ли вы что-то рядом;
и можно ли после этого раскатывать решение на весь продукт.
Вот тогда тест и впрямь радует глаз, а не создаёт красивую иллюзию роста.
А у вас от слова A/B тесты трясутся поджилки, али наоборот воодушевление испытываете ? 👇
#собесы
@data_dzen 🙂
Пятница. Сушим весла и готовимся отдыхать 😎
Неделька выдалась великолепная. Было больше энергии, легче включался в задачи, и в целом появилось чувство движения. После зимы это особенно заметно: солнце, длинный день, чуть больше ресурса, чуть легче держать ритм.
Почему же я молодец? 🤔
Во-первых, продолжаю держать темп в съёмке. При обычной рабочей нагрузке у меня всё равно получается не выпадать: съёмки идут, референсы собираются каждый день. Для меня это важный сдвиг. Потому что в какой-то момент интерес перестаёт быть просто интересом и становится практикой.
Во-вторых, спустя три месяца я наконец получил данные от одной медицинской организации. И это как раз тот материал, на котором хочу собрать показательный кейс.
Я хотел пропустить все посты по Excel через реальный кейс. Где будет и подключение к базе и дашборды красивые и макросы. Это вам и буду показывать в скором времени.
До 20 апреля мне надобно собрать кейс и потом показать его на вебинаре. Не как душную теорию, а как нормальный практический разбор. Что было на входе, какие шаги я сделал, где Excel реально помогает, и как из этого получается понятный BI-учёт.
И ещё одна линия недели - съёмка.
Меня всё сильнее тянет к ретро-эстетике: тёплой фактуре, ощущению времени, старому визуальному языку. При этом снимать это приходится в современной квартире, где почти всё работает против нужной атмосферы. Поэтому сейчас съёмка для меня, это не только нажать на кнопку камеры, но и сначала собрать пространство так, чтобы кадр вообще начал звучать правильно.
Постепенно что-то начинает получаться 💪
В общем, неделя про активности и про ощущения, что важные для меня вещи понемногу переходят из идеи в действие.
А теперь ваша очередь. Поделитесь своими победами на неделе 👇
@data_dzen 🙂
+6
Весенняя эра открыта 😎
Время обновить дизайн на теплые оттенки согревающие душу. Собрал новый дизайн, что бы каждый пост отдавал весенней энергией 🔥
Такс пойдем теперь за вопросы продуктовые поговорим 👇
Тебе дают две таблицы - users и events. И 20 минут на задачу:
«Посчитай батенька retention по когортам M0–M3»И вот на этом ловят ступор. А с чего вообще стартовать? 🤔 Проще всего - не с SQL, а с картинки в голове. Представь спортзал. 100 человек купили абонемент - это твоя когорта. Дальше обычно эту когорту принимают за 100%. Это и есть M0. Но вот нюанс: это не закон природы, а просто негласное соглашение. На следующий день пришли 60 человек - Day 1 = 60%. Через неделю пришли 40 - Day 7 = 40%. Дальше логика не меняется. Просто вместо дней - месяцы. И вместо спортзала - продукт. 1️⃣ Junior-уровень - понять, сколько людей вообще пришло в каждую когорту
SELECT
DATE_TRUNC('month', registration_date) AS cohort_month,
COUNT(DISTINCT user_id) AS new_users
FROM users
GROUP BY 1
ORDER BY 1;
Если уже здесь ошибка, все суши весла. Потому что DATE_TRUNC и DISTINCT - это база продуктового блока.
Хотя бы для PostgreSQL и похожих диалектов.
2️⃣ Следующий уровень - понять, кто вернулся
WITH cohort_dec AS (
SELECT user_id, registration_date
FROM users
WHERE registration_date >= '2023-12-01'
AND registration_date < '2024-01-01'
)
SELECT
COUNT(*) AS cohort_size,
COUNT(DISTINCT CASE WHEN event_date = registration_date + 1 THEN user_id END) AS day1,
COUNT(DISTINCT CASE WHEN event_date = registration_date + 7 THEN user_id END) AS day7
FROM cohort_dec u
LEFT JOIN events e ON u.user_id = e.user_id;
Тут под ноги бросаются грабли 🤔
Такой код нормален, если даты у тебя хранятся как DATE, без времени.
Но если это TIMESTAMP, простое равенство может ломать расчёт.
Потому что у одного событие в 2023-12-08 00:01, у другого в 2023-12-08 19:42, и формально это уже не то же самое значение.
Значит, нужно либо приводить к дате, либо считать через диапазоны.
То есть логика всегда одна и та же:
✅ зафиксировал когорту → посмотрел, кто вернулся
Для M1, M2, M3 всё почти то же самое, но есть принципиальный момент:
👉 сравнивают не просто даты, а смещение по календарным месяцам относительно месяца регистрации ( да сложно звучит сейчас объясню )
То есть не +30 дней. Месяцы разной длины, поэтому такой расчёт съезжает.
Для месячного retention смотрят смещение по календарным месяцам, а не просто прибавляют 30 дней.
❌ Где еще грабли поджидают
1️⃣ Считают события вместо людей
Один пользователь сделал 5 событий.
И внезапно retention у тебя больше 100%.
Значит, ты считаешь не возврат людей, а активность.
2️⃣ Ставят INNER JOIN
И в выборке остаются только те, кто вернулся.
Все, кто отвалился, просто исчезают.
Получается красивая цифра. И полностью фальшивая картина.
3️⃣ Не фиксируют базу расчёта
Размер когорты обычно принимают за 100%, и уже от него считают всё дальше.
Если база у тебя гуляет, проценты превращаются в мусор.
А дальше начинается главная беда... тест на мышление и софты. Вот уж где самая тернистая тропа если мало опыта.
Потому что на собесе тебя не спросят:
«Как посчитать retention?»А спросят:
«D30 упал. Почему?»Приехали...И вот тут SQL уже никого не впечатляет. ✅ Нормальный ход мысли такой: - разложить retention по когортам - посмотреть каналы привлечения - проверить activation - понять, не ломался ли онбординг - сравнить поведение до и после релизов Можно копать еще глубже, но для старта достаточно этих основ. ❌ Ответ который сразу поставит крест на вашем диалоге
«Ну… retention снизился, потому что пользователи стали хуже возвращаться..»Спасибо товарищ Капитан. Но это не ответ аналитика, а догадка. Если простыми словами: Retention - это не про SQL, это про поведение. SQL - это просто лопата, которой ты выкапываешь цифру. Если ты не можешь объяснить, почему люди перестали возвращаться, то сами по себе твои проценты ни о чем не расскажут 🤷♀️ У вас бывали проблемы на продуктовом блоке? И вообще любо ли вам продуктовое направление или больше нравиться инженерная часть ? 👇
Созвон который порадовал 🔥
Сегодня хотел выложить основной пост. Он уже готов, про retention и когорты. В итоге у меня вышло около 5 постов на тему собесов, получился нормальный переход между Excel и SQL.
Но… сегодня слишком хороший день, чтобы грузить вас техничкой 🌞
С утра отвёз машину в сервис и решил не заходить домой. Просто сел на лавочке возле дома и провёл все рабочие созвоны прямо на улице.
И это было кайфово 😎
Реально. Я давно не получал такого удовольствия от звонков.
Просидел где-то полтора часа: солнце греет, птицы поют, ляпота.
Поэтому сегодня без собесов и сложных задач.
Я снял лёгкое видео по итогам первой недели обучения видеосъёмке.
Тема рядом, про найм будущего 😂
Посмотрите, отдохните и напишите: 👇
Как у вас стартовала неделя? Уже осознали что пришла весна и зима вышла из чата ?
@data_dzen 🙂
Неделя как-то резко закончилась. Ай да хвалить себя 😎
Поймал себя на старой мысли, опять. Как только пытаюсь сделать сразу "идеально", всё начинает ехать. Слишком рано хочется результата, хотя сам ещё толком не разобрался. В итоге не ускоряешься, а просто стопоришься на месте.
С дашбордами это вообще классика. Садишься сделать "красиво", залипаешь на деталях, ковыряешь это всё несколько дней… а потом смотришь и понимаешь, что половину можно было сделать проще и быстрее.
Вспомнил кейс Airbnb. У них часть объявлений почти не бронировали. Долго можно было искать причины, строить гипотезы, усложнять. А оказалось всё банально: у людей были просто плохие фото. Тёмные, кривые. Начали помогать с нормальными снимками и всё поехало вверх. Ничего героического, просто попали в точку.
У меня на этой неделе примерно про то же.
Начал разбираться с видеосъёмкой. Пока местами получается средненько. Но уже начинаю видеть разницу. Пробую играть со светом, композицией, оставлять чуть больше "воздуха" в кадре. Пару раз пересматривал то, что снял раньше, и там, конечно, больно смотреть 😎
По ходу записываю идеи в блокнот. Не всё складывается, но уже видно, что часть принципов можно спокойно перетащить в дашборды и в обучение команды. Посмотрим, что из этого выйдет. Если не развалится по дороге, попробую применить в работе и поделюсь с вами.
Остальное было довольно спокойно. Без рывков. И это даже хорошо. Сейчас как раз есть время нормально дожать то, что раньше откладывал. Потом начнётся движ, и будет уже не до этого.
А теперь ваш черед 🔥
Была ли у вас беда от гонки за идеалом? И расскажите какие у вас победы на неделе 👇
Шарик, ну ты и жрёшь 🐕
А точнее - жрёт бюджет, который уходит в слепую зону между производителем и полкой магазина.
Написал статью про кейс моей команды с компанией «Гранд-Альфа». Одного из крупнейших производителей кормов в России.
Раньше аналитика у них жила в Excel, но не применялся ни один из моих советов по его настройке. (Кощунство не иначе 😡)
Из-за чего компания видела, сколько отгрузила дистрибьютору. Но понятия не имела, что происходит дальше:
- какие магазины реально продают;
- какие регионы растут, а какие просто складируют товар.
Что сделали:
- сшили 1С и CISLINK в единое хранилище;
- построили дашборды, где видно путь товара до конкретной полки;
- убрали зависимость от ad-hoc анализа: заходишь → видишь картину → понимаешь, кого похвалить, а кому дать пинка. Без звонков Семёну Семёновичу.
Внутри: полный кейс + 7 ошибок аналитики производителей.
👉 [Ссылка на статью]
+5
Поговорим о собесах (часть 2) 😎
В прошлом посте затронули софты, методологию STAR и Excel. Это базовый набор. Теперь идём дальше, SQL.
Если вы хорошо освоили Excel, вы уже понимаете основы: как данные связываются, какие проблемы бывают при связках, как работают группировки. Переход к SQL на старте это по сути 5 команд: SELECT, FROM, WHERE, JOIN, GROUP BY. Оконные функции и временные таблицы полезны, но на старте не критичны.
А вот теперь к главному. Основная проблема не в синтаксисе. Проблема в блоках, которые не роняют запрос. Код отрабатывает, интерпретатор молчит, а результат не тот, который ждёт интервьюер. Именно на этом сыпятся.
1️⃣NOT IN + NULL: тишина вместо данных
В SQL: NULL ≠ пусто ≠ 0. Кто изучал Python, знает: ноль это ноль, а NULL это пустота, ничто. Держите в голове.
Задача: найти пользователей не из чёрного списка.
❌
SELECT * FROM users
WHERE id NOT IN (SELECT user_id FROM blocked)
Казалось бы, всё верно. Но если в blocked хоть одна строка с user_id = NULL, результат: 0 строк. SQL не может сравнить с NULL и молча возвращает пустоту.
✅
SELECT * FROM users u
WHERE NOT EXISTS (
SELECT 1 FROM blocked b
WHERE b.user_id = u.id
)
Кстати, NOT EXISTS ещё и быстрее: берёт id, идёт во вторую таблицу, нашёл первое вхождение, остановился. NOT IN шерстит таблицу сверху донизу целиком. На больших таблицах разница заметная.
2️⃣ LEFT JOIN, который молча стал INNER JOIN
Про типы JOIN подробно разберём в следующих постах серии. Сейчас только суть ловушки.
❌
SELECT c.name, o.amount
FROM customers c
LEFT JOIN orders o ON c.id = o.customer_id
WHERE o.status = 'completed'
Что происходит: WHERE убивает NULL-строки из правой таблицы. Клиенты без заказов просто исчезли. LEFT JOIN превратился в INNER JOIN. А результат мимо.
✅
SELECT c.name, o.amount
FROM customers c
LEFT JOIN orders o
ON c.id = o.customer_id
AND o.status = 'completed'
Одна строчка через AND. Разница принципиальная.
3️⃣AVG врёт красиво
Вот вам задачка. 10 строк по продажам. У трёх NULL. Сколько вернёт AVG? Среднее по 7, не по 10. Если значения похожи на правду, подвох заметить сложно. Цифра реалистична, но искажена.
❌
SELECT AVG(salary) FROM employees
✅
SELECT AVG(COALESCE(salary, 0)) FROM employees
COALESCE: встретил NULL, заменил на 0. Можно и без него, но тогда объясните интервьюеру, что понимаете поведение AVG и принимаете его осознанно. Оба варианта зачтутся 👌
4️⃣Порядок выполнения: главный подвох
Пишем: SELECT → FROM → WHERE → GROUP BY.
Выполняется: FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY.
Нелогично? Ещё как 🤷♀️
❌
SELECT category, AVG(sales) AS avg_sales
FROM orders
WHERE avg_sales > 1000
GROUP BY category
Алиас avg_sales ещё не существует на этапе WHERE. Система просто не знает этого поля.
✅
SELECT category, AVG(sales) AS avg_sales
FROM orders
GROUP BY category
HAVING AVG(sales) > 1000
HAVING это фильтрация после группировки. Подробнее разберём в отдельном посте серии.
5️⃣Забыли синтаксис? Не паникуйте
Бывает: нервы, давно не касались темы. Ну с кем не бывает. Говорите прямо: «Я понимаю логику, могу описать шаги. Точный синтаксис загуглил бы». Любой адекватный специалист это оценит. Логику понимать одно дело. Функцию загуглить = 30 секунд.
Бонус напоследок: первый вопрос при тестовом = «Какая у вас СУБД?».
DATE_TRUNC — PostgreSQL. DATE_FORMAT — MySQL. Правильный запрос для неправильной базы = ошибка на ровном месте.
В следующем посте SQL: Retention и когорты. А завтра пост и статья про кейс моей команды с компанией Гранд-Альфа. Занимаются кормами для животных.
Вопрос к вам. У вас бывало такое, что забыли ответ и хоть убей не помнишь ? Как действовали в этой ситуации? 👇
#sql
@data_dzenЧерез 10 дней — апрель. Вчера, кажется, был январь 🤦♂️
Каждую пятницу ловлю себя на одном и том же: "Как, уже?"
Понедельник помню отчётливо, а неделя? Щелчок пальцами. И чем больше проектов набираешь, тем быстрее этот щелчок. По сути, мы сами разгоняем себе жизнь задачами.
Ладно. Остановимся. Выдохнем. Похвалим себя 🔥
Что хорошего на этой неделе 🤔
Сушил стену газовой пушкой после затопления. Управляющая компания, как водится, только руками развела. Ну а ты бери пушку и делай сам. Тот ещё квест, зато голова переключилась с рабочих экранов на быт лихой.
Взял за правило: ведёшь разработку, поглядывай в сеть. Пока я пилил модули для ассистента, проглядел, что вышел Qwen 3.5 с нативной поддержкой vision. Умеет считывать экран. Особенно актуально, если не можешь понять, где косяк в дашборде, а в браузер обращаться не хочется.
Мораль: прежде чем строить велосипед, проверь, нет ли готовых запчастей... а потом еще раз перепроверь 😂
Научился автоматически заливать нарезанные задачи через матрицу Эйзенхауэра и перебрасывать их в Yougile. Это канбан-доска, куда импортируешь CSV с правильной структурой и получаешь готовые доски с карточками с описаниями, маркерами, сроками. Хорошо помогает отбить быстрый спринт. Кстати, он бесплатен до 10 человек.
Третья попытка завершения работы в 6 вечера. Твёрдо и чётко. Ну ладно, не всегда прям чётко. Но заметил приятный бонус: когда не перегружен, даже разговоры с близкими идут легче. Звонил родителям. Голова ясная. Казалось бы, просто закончил вовремя. А эффект, как будто мозг почистили.
А у вас что хорошего за неделю? Делитесь в комментах 👇
@data_dzen
+6
Поговорим о собесах (часть 1) 😎
Собесы во многом про соответствие критериям. Интервьюеру важно понять, как вы мыслите.
Недавно было собеседование. Человек завалил софты. И прямо сказал: готовился только к техничке.
Знать, что надо написать GROUP BY, но не знать зачем - бесполезно 💯
Я собрал вопросы, которые задают на собеседованиях аналитикам. Разыграем сценки.
Soft skills. HR-этап.
По статистике, именно тут чаще всего отказывают. Из-за неумения формулировать мысли.
1️⃣ "Расскажите о ситуации, когда работали под давлением дедлайна"
❌ "Ну, у нас всегда дедлайны, я привык"
✅ "Готовили отчёт для клиента. Обычный срок 2 недели, дали 5 дней. Разбил задачу на блоки, автоматизировал сбор данных скриптом, убрал ручную сверку. Сдали вовремя"
Разница 🤔
Первый не сказал ничего. Второй дал ситуацию, действие, результат. Метод STAR.
Запомни это слово. Уж очень любят модные названия методологий.
Вы можете следовать этой методике по наитию, но на собеседовании важно говорить общепринятыми фразами 👌
2️⃣ "Как объясните сложный анализ человеку без технического бэкграунда?"
❌ "Ну, я использую визуализации..."
✅ "Убираю термины. Вместо "p-value < 0.05" говорю: мы на 95% уверены, что это не случайность. Вместо "retention Day 7": из 100 новых пользователей через неделю вернутся 30."
Интервьюер тут проверяет не знания. Сможешь ли разговаривать с бизнесом. 80% работы аналитика именно в этом 💯
Наш любимый Excel ➕
Первые полгода карьерного пути по большей части состоят из Excel. Разыграем и тут сценку.
3️⃣ "Объясните, как работает ВПР и когда не подходит?"
✅ "VLOOKUP ищет значение в первом столбце диапазона и возвращает значение из указанного столбца. Не подходит, когда ключ правее значения. Тогда INDEX+MATCH. В новых версиях XLOOKUP ищет в любом направлении"
4️⃣ "Как найдёте дубликаты в таблице на 50 000 строк?"
✅ "Условное форматирование или COUNTIF: =COUNTIF(A:A, A2)>1. Или Data → Remove Duplicates с предварительным копированием."
Ещё порой спрашивают про горячие клавиши. Не ответил - и пункт собеса мимо.
Ctrl+Shift+L, Ctrl+T, Alt+=. Это базовый минимум.
Пост-сводка с горячими клавишами.
5️⃣ Продуктовый кейс
"Retention упал на 15% за месяц. Ваши действия?"
❌ "Надо улучшить продукт и запустить рекламу"
✅ "Сначала уточню: какой retention?
Day 1, Day 7, Day 30?
Потом разрежу данные по когортам и каналам привлечения.
Если падение только в одном канале - это не проблема продукта, а проблема трафика. Проверю внешние факторы: сезонность, обновления, изменения в рекламе. И только потом гипотезы."
Эти примеры из моей практики и из опыта ребят, кто часто бегает на собесы. Большинство провалов сводятся к мышлению, а не к инструментам.
Самые частые причины отказа:
- слабый инструментарий (Excel,SQL,Python),
- нет конкретных примеров (STAR!),
- ни одного встречного вопроса к работодателю (пришёл на собес, а чем компания занимается не знаешь),
- завышенные зарплатные ожидания (да, просить 100к с нулевым опытом не стоит; такое встречается сплошь и рядом).
Это фундамент: soft skills, Excel, мышление. А SQL-вопросы с собесов разберём в следующем посте.
С какими вопросами вы чаще всего встречаетесь? Кидайте в комменты, поглядим.
@data_dzen🙂
Пятница, время собрать заслуги и похвалить себя 😎
С первой неделькой настоящей весны вас! У нас в Волгограде только распогодилось 🌞
Прощайте, пуховики и аляски. А кто ещё ездит на зимней резине (и я в их числе), самое время переобуться.
Неделя богатая. Я молодец, и вот почему:
Отпустил свою видеокарту 3080Ti в trade-in.
Два года она помогала мне в задачах, и не было ни одного нарекания. Но время идёт, и пора переезжать на большую память.
Поменял на 3090 с доплатой всего 29к. На выходе получаю x2 по видеопамяти и могу работать с моделями пожирнее для улучшенного понимания контекста.
Нарезал на шаги проект по медицине 👏
К 27 дашбордам для МИАЦ добавилось ещё 4.
Чтобы проще было видеть прогресс, на один шаг дали две недели. Посмотрим, как будет работать такой спринт.
Быть может, воодушевление от быстрого выполнения и видимого результата будет питать нас с командой лучше, чем отработка глобального блока.
Продвинулся в обучении своего помощника 💪 Напомню: идея была в том, чтобы поставить две контр-личности в одной модели.
Архетип первой: меланхоличный Рассказчик из «Бойцовского клуба».
Второй: антисоциальная личность с паттернами Тайлера Дёрдена.
Каждый их спор заканчивается оценкой: какая из личностей в контексте вопроса ближе к истине. Если ни одна не попадает, подключается веб-поиск за ответом. По итогу хочу прийти к модели, которая сама ловит свои галлюцинации и не выдаёт их за факт.
Скрин первых тестов после пятой попытки обучения в комментах. Уже виден внутренний спор между ними. Теперь осталось ввести ограничение на количество таких обсуждений, чтобы модель не зацикливалась.
Тема бесконечна для изучения. Самое то для гипотез о том, как выстроить работу разума, пусть и очень ограниченного. По мере продвижения буду делиться успехами.
Такс, ваша очередь. Что сделали на этой неделе? Делитесь даже теми победами, что кажутся вам незначительными 👇
@data_dzen🙂
Вчера зарплатка была. Все уже получили ?
С учетом счетов за отопление, все довольны? 😂
@data_dzen 🙂
Кем вы были до IT? 🎨
Давайте маленько расслабимся.
Возьмём недельку на спокойные темы без учёбы.
Все мы с чего-то начинали. У кого-то «прошлая жизнь» это стройка, у кого-то кухня ресторана, а кто-то сразу попал в IT.
Я всегда был человеком творческим 😎
Рисовал эскизы, портреты, работал тату-мастером, занимался 3D-моделированием. Сейчас многие подходы в творчестве перенёс на работу и они мне каждый день помогают.
С появлением ребёнка добавился новый арт-директор: сын командует что лепить из пластилина 😂
Это основная моя ниша, которая всё время остаётся близка мне по духу.
Даже имел однажды неосторожность поработать две недельки в «Бристоле». Хватило, чтобы понять: слепо выполнять указания это не про меня. Особенно когда они идиотские 🤦♂️
Зато теперь точно знаю, что моё, а что нет.
А какая у вас прошлая жизнь до IT? Есть ли подходы, что перенесли в новую жизнь? 👇
@data_dzen
Дорогие девушки 😎
Поздравляю вас с праздником 🔥
Ваши идеи и энергия двигают целые команды лучше любого пинка.
Продолжайте быть такими же целеустремлёнными и с видением прекрасного.
Да, как показали наблюдения за 5 лет, дизайн у прекрасного пола получается гораздо лучше 💯
У нас ещё два дня отдыха, желаю вам провести их в кругу близких, расслабиться и развеять все внутренние тревоги.
С праздником, дорогие девушки 🩷
Здрасте-здрасте, дамы и господа 👋
Что-то я заработался кардинально. Был уверен, что сегодня уже написал пост, захожу в канал, а пятничной благодарности нету. Это вообще что такое?! Ладно, давайте исправлять. Похвалим себя за подвиги этой недели 💪
Неделя, скажу так, выдалась просто титанической. Однако есть хорошие новости.
Разметка 8 книг: почти финиш
Наконец-то (как мне кажется, я очень сильно надеюсь) я заканчиваю разметку восьми книг, связанных с мульти-персональностью модели (когда в одной модели живут разные «личности»). Это одна из вех, которую я тестирую на своей локальной домашней модели, чтобы избежать галлюцинаций на домашнем железе.
С этой разметкой, казалось бы, сам чуть кукухой не поехал 🤯
Реально, это просто ад. Столько нюансов, которые на старте невозможно учесть. Ты просто по ходу дела набиваешь шишки и стараешься не повторять ошибки.
Сегодня, надеюсь, это была финальная веха, и на следующей неделе я смогу прогнать обучение с обновлёнными фразами, где модель берёт от себя самое лучшее. А самое главное: в ней будут жить две личности, которые противоречат друг другу. Звучит как сценарий к триллеру, но нет, это ML 😁
База знаний: наконец-то запустили!
Ё-моё, три месяца мы её гоняли! Суть простая: нужно было единое место для хранения информации по проектам + коммерческая часть (договоры и прочее).
Тестировали разные гипотезы:
- Хранили в Телеге в групповом чате ❌
- Хранили на Google Диске ❌
Ни одна не сработала. Кто-то когда-то не занёс, кто-то не учёл. Короче, мёртвый номер. Казалось, этот квест не закончится никогда. Решили протестировать базу знаний с поиском по всему массиву. На первый взгляд выглядит неплохо ✅
Будем обкатывать в работе. Надеюсь, не зря трудились так долго.
Почему я молодец?
Я выдержал эту историю с разметкой, уточнениями и не поехал кукухой. Наверное. И наконец-то разобрались с этой грёбаной базой знаний и запустили её в работу. Это ли не повод для радости?
Почему стоит благодарить себя 🤔
Вот даже сейчас. Сел за этот пост прямо с тяжёлым сердцем и взрывающейся головой от мысли, что я всё ещё делаю эту разметку уже вторую неделю. А потом начал писать, что я сделал, что успел, и знаете, вся эта тяжесть отлегла. Стало гораздо легче. Я понял, что сделал так много, а до финальной цели осталось совсем чуть-чуть.
К слову, проанализировал сроки. Думал, может, я дурак, почему так долго идёт разметка. Оказывается, такая разметка порой занимает месяцы, и занимаются ей целые команды. А я один. Так что две недели? Это небольшой срок. Я определённо молодец 😤
Ну ладно, заболтался. А теперь ваша очередь 👇
Расскажите, где вы молодцы? Где ваши подвиги на этой неделе?
@data_dzen 🙂
Первый босс пройден 😎
Похоже, пора сходить с нашего пути в Excel и перестраиваться на SQL.
С начала года прошли с вами кучу тем и разобрали Excel вдоль и поперёк. По сути, получился мини‑курс, хотя я сам думал, что будет "пара-тройка постов, и всё".
Вот дорожка, чтобы не потеряться:
Почему EXCEL = БАЗА
Основные функции для лёгкого старта
Как красить таблицы автоматически: форматирование
Чем и как связывать таблицы: ВПР, XLOOKUP, ИНДЕКС+ПОИСКПОЗ
Что такое фильтрация данных и с чем её едят
Data Quality: как не допускать мусор в Excel
Горячие клавиши для работы
Устанавливаем свежий Office без VPN
Настройки, чтобы сделать из Excel рабочую аналитическую систему
Вершина автоматизации: макросы в Excel
Пока собирал подборку, удивился сколько всего набралось 😨
Чтобы закрыть тему и не бросать вас без бонуса, собрал большую статью с графиками и табличками - заходите почитать: [ссылка].
И ещё бонус. Собрал "мини"-методичку… ну как мини, на 17 листов 😂
В ней:
- что учить в Excel и в каком порядке;
- зачем и почему именно так;
- где брать датасеты и какие упражнения делать, чтобы набить руку.
По ней можно спокойно пройтись и подтянуть Excel до уровня "готов к устройству". Файл положу в комментарии.
Добрый путь вышел. Excel даже как-то полюбился - жалко бросать. Но на выходных будет перезагружаться и стартовать в SQL.
Спасибо, что выдержали весь этот маршрут и прокачали Excel. Маршрут целиком по‑прежнему лежит на карте вот здесь .
Буду рад если вы поделитесь постом с товарищами. Информация донельзя полезная и собрана в один котел 😎
@data_dzen 🙂
Убираем рутину из расписания через автоматизацию Excel 😎
Ну вот и подходит наш путь по Excel к завершению. На этой неделе закроем его большой статьёй и шпаргалкой по тренировке.
А пока обсудим золотую жилу для ленивого 🤔
Его анонсировали в 1993-м. А он до сих пор кормит аналитиков в половине корпораций РФ. Речь про макросы.
Макрос - сценарий на VBA, который автоматизирует рутину: чистку данных, сборку отчётов, рассылку, генерацию документов. Всё локально. Без интернета.
Что умеют делать с макросами:
1️⃣ Чистят выгрузку из 1С за 8 секунд вместо 40 минут руками: пустые строки, пробелы, кривые даты, коды → нормальные названия
2️⃣ Собирают сводный отчёт из десятков региональных файлов: макрос сам обходит папки, забирает данные, клеит, считает итоги
3️⃣ Рассылают PDF через Outlook по списку адресатов - открыл, нажал, ушёл за кофе
4️⃣ Генерят сотни счетов/актов по шаблону: цикл по строкам = файл на каждого контрагента
5️⃣ Строят мини-дашборд для отдела продаж: сводная по менеджерам, топы и аутсайдеры, PDF в папку
А зачем вам это? 🤔
Оптимизируем: полдня ручной работы, человеческие ошибки, «ой, забыл Х поле».
Получаем: 2–3 минуты работы машины, предсказуемый результат каждый раз.
Почему в РФ без VBA вообще никуда
В госах, банках, ВПК, промышленности - станции физически отрезаны от интернета. Office Scripts, Power Automate, Copilot - не работают без облака от слова совсем.
VBA - единственный встроенный способ автоматизации в таких контурах. IT-отдел не нужен. Согласования доступов, лицензии на RPA? Забудьте.
Факт: Наша дорогая ФНС с 120 000 рабочих мест годами жила на макросах как основном способе убить рутину. Переход на RPA начали только в 2025-м. Так как им потребовалась работа в браузере и связка с дополнительными программами.
Где засада 🤦♂️
1️⃣ Жёсткие диапазоны: записал макрос под A1:F100, через месяц данных до строки 500 - код не обрабатывает новое, а ты уверен что всё ок
2️⃣ Привязка к ActiveSheet: запустил из другой книги - упал или посчитал не то
3️⃣ Нет обработки ошибок: без Option Explicit и On Error код ломается в проде на ровном месте
4️⃣ Обновление Excel/Windows: апдейт ломает старые макросы - от зависаний до ошибок на простых операциях
Лечим динамическими диапазонами, явными ссылками на листы, обработкой ошибок и документацией версий (Да да, той самой которую никто и никогда не хочет вести).
Это решает диалоги вроде:
— "У нас все поломалось, срочно почини"
— "Ну чего вам надо, у меня все работает. Это у вас кривые настройки"
Аналитик с VBA в закрытом контуре = человек у которого больше половины рабочего дня свободного время на кофе да шутки-прибаутки с коллегами. Ну или вдруг на создание гениального отчета… Главное сильно не кичиться такой автоматизацией, а то боярин нагрузит лишней работкой 😂
Есть ли у вас в практике рутинные действия, что повторяются бесконечно и их можно было закрыть макросами?
Накиньте примеров в комменты 👇
И конечно попробуйте потестить. Вдруг поможет и вам 💯
#Excel
@data_dzen 🙂
Пятница пришла, давайте похвалим себя за труды 😎
Обсуждали год → собрали за неделю. Проект по медицине региона, который месяцами ходил по кабинетам, наконец пошёл в разработку 💪
За одну неделю с командой упаковали всё, что растягивали на согласования почти 12 месяцев, и отдали в работу. Ирония в том что разработка займёт меньше времени, чем её обсуждение 😂
Каждый кусочек проекта это попытка упростить жизнь заказчику. Меньше ручного труда, головной боли. Ну и вишенкой на торте: экономия бюджета в перспективе.
22 месяца на закупку, 2 на работу
Gartner считает, что средний цикл государственных IT-закупок — около 22 месяцев. В коммерции 6–7. Разница в три с лишним раза. Свежесть этого исследования неизвестна, но цифры +/- совпадают с реалиями.
ТЗ в госсекторе часто пишут не ради продукта, а ради ГОСТов. Документ на 80–100 страниц. 10% про функционал. Остальное: стандарты, методички, регламенты. А ещё обязательные паузы, заседания комиссий, окна для жалоб, перезапуски процедур. Вот и набегают те самые 22 месяца.
Когда контракт наконец подписан, на реализацию остаётся 2–3 месяца. Отчётность может занимать до 30% объёма работ, потому что документы проходят через 3–4 уровня контроля.
Хотели как лучше, а получилось ... 🤦♂️
Система задумана как защита от недобросовестных исполнителей. На деле выкручивает руки тем, кто хочет сделать нормальный продукт.
А вот проблемные компании за счёт сильных юристов и умения работать с формулировками ТЗ нередко отбиваются от контролирующих органов.
Видел я такую конторку. У них в штате даже не было разработчиков, и по итогу при ревью кода выяснилось что каждый раз код писали разные люди. Видимо фрилансеры 😁
Вот такая вот «защита». Коли в компании штат юристов больше, чем специалистов - это первый звоночек.
ГОСТы на месте, а качество.. нуу как повезёт 🤷♀️
Государство тратит годы, чтобы подробно описать, как потратить деньги. А потом даёт команде 2–3 месяца, чтобы всё реализовать. Документация ничего не говорит о качестве продукта, зато каждый ГОСТ на месте.
Но мы пробиваемся и делаем то, что нужно людям. И эта неделя, маленькая победа, за которую себя точно можно похвалить 🔥
А теперь ваш черёд. Какие подвиги совершили на неделе? 👇
@data_dzen🙂
Из Excel в космолет за две надстройки 😎
Excel, которым пользуются в 90% компаний и за глаза ругают, на деле использует лишь каплю возможностей. Данные заливают руками, типы правят вручную, а вопрос «оно само обновится?» вызывает тяжёлый вздох. Потому что две вкладки в меню так и остались нетронутыми.
Расписание у большинства такое: скачал файл, почистил руками, добавил формулы, отправил боярину. Назавтра всё сначала. Послезавтра всё сначала. Скука смертная. 😔
Сорок минут ежедневно на работу, которая должна занимать три клика.
Теперь добавь 2 миллиона строк. Excel упирается в потолок на миллионе строк и ложится. Ок, делишь файл на части. Теряешь связи между таблицами, сводная начинает врать.
А можно включить 2 надстройки и использовать Excel на максимум.
Я познакомился с этими надстройками в 2017-м. Подрабатывал на фрилансе. Сайты на Wordpress да всякая рутина. Прилетает задача. Нужно из 60 толстых excel файлов вытянуть только определённые группы товаров и всё объединить в одном файле. Дали два дня. Попробовал 2 файла руками собрать. Ужас, скучно и нудно. Начал копать сеть, вдруг есть волшебная пилюля. И нашёл Power Query. Чуть повозившись с интерфейсом, я подключил все файлы из папки и собрал целевой файл за 10 минут. Я аж привстал. Ладно, пойдем расскажу, что за звери эти надстройки 💪
1️⃣ Power Query: данные без рук
Он уже вшит. Вкладка «Данные», раздел «Получить и преобразовать». Подключаешь источник один раз, настраиваешь трансформацию, дальше жмёшь «Обновить». Процесс, который занимал час, теперь занимает десять секунд.
Но есть проблемка. Power Query «угадывает» типы данных, глядя лишь на первые 200–1000 строк, зависит от источника. Для CSV хватает 200, для других форматов чуть больше. Но суть одна: если данные неоднородные, числа тихо становятся текстом без единого предупреждения.
Потому чтоб спать спокойно, типы данных всегда проставляй вручную. Не доверяй автоопределению. Да, подольше. Зато потом не надо перелопачивать старые настройки и искать проблему.
И ещё. Не делай один огромный запрос. Всегда в работе используй итеративный подход.
Цепочка работает лучше: отдельный шаг на очистку, отдельный на преобразование. Загрузку — тоже отдельно. Когда что-то сломается (а это случится), найдёшь проблему за минуту, а не за час.
И да, PQ позволяет подключать базы данных напрямую ✅
2️⃣ Power Pivot: Excel без потолка
1 048 576 строк — лимит обычного Excel. Power Pivot держит десятки миллионов через VertiPaq-сжатие (тот же движок, что внутри Power BI). Сам xlsx-файл при этом становится тяжелее, внутрь упаковывается база данных. Зато в памяти данные занимают в разы меньше: VertiPaq сжимает примерно в 10 раз (ну, порядок такой — точная цифра зависит от данных), хранит колоночно, а не построчно. Большие данные летают.
Главное, что там есть — меры. Не лепи всё в вычисляемые столбцы: они считаются всегда и раздувают модель, а мера считается только тогда, когда ты её видишь в сводной, под конкретный контекст фильтра. Разница в разы.
Сердце Power Pivot — функция CALCULATE. Она меняет контекст вычисления. «Продажи без возвратов», «план только по Москве», «что если цена выросла на 10%». Это всё CALCULATE.
Для любителей яблочек (Apple), коим и я являюсь 😁
Power Pivot недоступен на macOS. Да грустно, но как есть. Если в команде есть коллеги на Mac, они просто не увидят этого чуда.
Если у тебя отчёты крутятся вокруг Excel — попробуй эти две надстройки 👇
#excel
@data_dzen 🙂
