Your trial period has ended!
For full access to functionality, please pay for a premium subscription
ET
Это разве аналитика?
https://t.me/eto_analytica
Channel age
Created
Language
Russian
1.95%
ER (week)
4.85%
ERR (week)

Привет, я Андрей @ab0xa, bi / de / java dev

Анализ данных и визуализация, интересные ссылки, вакансии, уроки, юмор) и личный опыт

Messages Statistics
Reposts and citations
Publication networks
Satellites
Contacts
History
Top categories
Main categories of messages will appear here.
Top mentions
The most frequent mentions of people, organizations and places appear here.
Found 204 results
Люблю такое:
Чел заснял 15 минут видео гуляния по парку и натренировал модель, которая пытается эмулировать этот парковый мир

Погулять по нейро-паурку можно тут (работает даже с телефона):
https://madebyoll.in/posts/world_emulation_via_dnn/demo

А тут описано как он делал этот хобби-проект

Если натрените нейро-гуляние по девятиэтажке – скиньте ссылку пожалуйста
04/26/2025, 20:16
t.me/eto_analytica/2214
Repost
4
6
306
Котятки🐱
Иногда наступает время, когда команде нужен PM. Порой это происходит из-за размера самой команды, иногда из-за стадии развития, а бывает, что амбициозность задач требует, чтобы вами порулил опытный капитан.
Ну и поною: найти нормального PM в разработке непросто, найти его в хранилище - еще сложнее. Проще украсть у кого-то)
А уж вводить его в роль, закапывая материалами и курсами - такое себе.
Но вот эту книжечку я бы рекомендовала, она очень неплохо дает понимание, что ждут от проджекта в BI и хранилищах, да и вообще хорошее понимание домена:
https://ebrary.net/99159/business_finance/business_analytics_for_managers_taking_business_intelligence_beyond_reporting
04/25/2025, 20:12
t.me/eto_analytica/2213
Repost
11
9
406
Я написал книгу

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

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

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

Я думал, что надо просто “выгрести” из себя весь свой опыт. Но в итоге создание книги, которую люди могли бы прочитать и что-то для себя извлечь, заняло три года. Пришлось сделать огромное количество итераций по редактуре, потому что менялась композиция и целевая аудитория. Довольно много изменилось и внутри, потому что я хотел сделать связный текст с кейсами и понятными иллюстрациями, как и зачем работает аналитика в бизнесе.

Думаю, что в итоге мне удалось это сделать.

И, конечно, спасибо моей команде за участие во всем этом проекте.

И вот открывается наконец-то предзаказ на мой труд ▶️ book.leftjoin.ru
04/25/2025, 15:07
t.me/eto_analytica/2212
Repost
4
332
04/24/2025, 11:46
t.me/eto_analytica/2211
Repost
6
4
335
Результаты опроса про BI
Данные есть уже за четыре года. Tableau впервые уступило DataLens и SuperSet, но вот Power BI так и остаётся лидером. Больше всего за год увеличилась процент использования DataLens и «другое», а вот SuperSet остался на том же уровне. В следующий раз попробую сделать «другое» с разбивкой. Отдельно спрашивал про AI, но пока там меньше 1%. Ещё забавно, что упало использование Excel/Sheets, неужели правда переходим на новые технологии? 🙃

Дисклеймер
Опрос не показывает состояние рынка, но показывает часть рынка, состоящую из аудитории канала. Размер и состав выборок по датам немного разный. Возможно, что изменения связанны с изменением аудитории, прошедшей опрос, а не рынка.
#пример
04/24/2025, 11:46
t.me/eto_analytica/2210
Repost
3
398
Один из свежих, хотя и не совсем новых трендов — это возврат от распределённых вычислений (distributed computing) к вычислениям на одном узле, как в старые добрые времена SMP. Пример — DuckDB.

На картинке — типичный стек с DuckDB: всё локально, быстро, удобно. Но возникает вопрос — что произойдёт, если такой «одиночка» упадёт? Как быстро можно восстановиться?

Для большинства небольших и средних компаний объёма до 1 ТБ вполне достаточно, а всё, что не помещается, можно спокойно держать рядом — например, в Apache Iceberg на S3.


Использовал бы я duckDB? Ответ простой, для себя лично 100%, а вот как наемный сотрудник лучше делать ставку на проверенные технологии Spark, Trino, Snowflake и тп. Обычно так все и делают:)
04/23/2025, 05:29
t.me/eto_analytica/2209
Repost
6
25
348
Автоматизируем парсинг данных с сайта на Python

В видео рассматриваем 3 шага парсинга данных на примере получения статей с сайта techcrunch.com:

1️⃣ получение данных с сайта с помощью requests и beautifulsoup и преобразование в pandas dataframe
2️⃣ загрузка полученного датафрейма в таблицу базы данных PostgreSQL
3️⃣ автоматизация первых 2-х шагов с помощью Cloud Functions

Уверен, что большинство из вас раньше не слышали или не использовали Cloud функции для своих задач, поэтому 3️⃣ пункт из видео будет для вас очень полезным. Это позволяет избавиться от отдельных cron-джобов или ETL оркестраторов типа Apache Airflow, они для таких целей излишни.

Для аналитиков, которые сталкиваются с самостоятельным выполнением инженерных задач, например автоматизировать свой код, описанный способ поможет не сталкиваться с настройкой отдельной виртуальной машины и использования командной строки) Еще больше таких решений буду описывать для аналитиков-инженеров, чтобы выдать вам максимальный багаж знаний на стыке аналитических и инженерных задач 😉

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

▶️ YouTube
▶️ VK Video
04/21/2025, 18:53
t.me/eto_analytica/2208
Repost
11
13
375
Отладка SQL-запросов

⌛️ Большую часть времени аналитики пишут скрипты в определённой СУБД: достают оттуда данные для моделей, отчётности, выгрузок, продуктовых исследований и прочих задач. Предположим, ты начал строить большую витрину, которая должна покрывать бизнес-потребности.

Всё идёт нормально, но вдруг:

1. Нет записей, хотя должны быть / записей стало меньше

2. Данные задвоились

3. Результаты не сходятся с дашбордом / другой внутренней системой (например, в 1С / сервисе заказов и тд)

____

Этот пост - про быструю и понятную отладку SQL-запросов, особенно если он уже раздулся на тысячи строк.

1️⃣ Начало с верхнеуровневой структуры

Если в коде есть подзапросы, лучше переписать их на CTE / временные таблицы. Так код легче читать и отлаживать по шагам.

Простой подзапрос:


select ...
from (
select ...
from orders
where ...
) t
join ...


CTE:


with filtered_orders AS (
select ...
from orders
where ...
)
select ...
from filtered_orders
join ...

Стало чуточку проще читать + можно проверить, что в filtered_orders, следующий шаг про это

2️⃣ Проверка CTE или временных таблиц

Здесь мы проверяем количество строк / уникальных сущностей по типу order_id / user_id, проверяем на пустые значения


select count(*) as total_rows,
count(distinct user_id) as unique_users
from filtered_orders;


3️⃣ Спускаемся глубже, смотрим с какого момента началась проблема (идем внутрь запроса)

Что нас ждет внутри? Джойны / оконные функции / группировки.

Хорошая практика - это посмотреть, задублировались ли ключи, по которым будет в дальнейшем JOIN


select o.order_id, count(*) as cnt
from orders o
join transactions t on o.order_id = t.order_id
group by o.order_id
having count(*) > 1;

Если дублируется, то надо ответить на вопрос: ожидаемое это поведение или нет? Если проблема, то следующий шаг.

4️⃣ Контроль за дублями

Базовая проблема: в одной таблице ключ уникален, в другом нет (можно, например, предагрегировать, используя row_number() / distinct / group by


with transaction_agg as (
select order_id, sum(amount) as total_amount
from transactions
group by order_id
)
select o.order_id, t.total_amount
from orders o
left join transaction_agg as t ON o.order_id = t.order_id;

А если так нельзя схлопнуть, можно атрибуцировать за какой-то промежуток времени и связывать по дню, например

5️⃣Хорошая и простая практика: посмотреть глазами

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


select *
from orders o
join transactions t on o.order_id = t.order_id
where o.order_id = 'abc123';


6️⃣Последнее

Действительно я понимаю данные, которые используются при сборе витрины?

Бывают разные сущности, но хочется понимать как мы закрываем бизнес-задачу, используя именно ЭТИ данные (тут про смысл аналитического мышления / бизнес-смысла и смысла данных

Понравился формат поста? Ставьте 🔥, пишите комментарии, какие пункты еще стоит добавить
04/21/2025, 10:18
t.me/eto_analytica/2207
Repost
15
4
413
Инцидент менеджмент и качели

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

Если отказаться – он орет
Если согласиться – когда ты его в них сажаешь, он хочет чтобы ты его качал. По его словам нужно "синя катять".

Если отказаться – он орет
Если согласиться – он улыбается один Т маятника, а затем тоже орет

Причем не просто орет, а уходит в истерическую спираль с крокодильими слезами.

Он начинает отвечать отказом на все предположения и все действия. Программа в нем выкидывает необработанное исключение, а ребенок целиком уходит в crash loop backoff.

Это происходит со мной, с женой, с его бабушкой.

Самое бесящее в этой истории:
Он подрастет и никто не узнает что это было. К тому моменту как он сможет сказать, что именно ему было нужно, оно уже не будет нужно.

Без логов с вашими системами происходит то же самое.

📰 М-м-м, Толстой
04/21/2025, 09:43
t.me/eto_analytica/2206
Repost
7
15
312
Postgres против MySQL: что решает выбор базы данных | Петр Зайцев (Рубрика #Engineering)

Посмотрел интересное двухчасовое интервью Петра Зайцева, создателя компании Percona. Такое ощущение, что вернулся в начало карьеры, когда особо еще не было облаков и все хвастались тем, как они свой Mysql готовят к высоким нагрузукам:) Ну а если серьезно, то Кирилл Мокевнин, автор подкаста, и Петр Зайцев за 2 часа успели обсудить кучу тем, среди которых

1. Эволюция и история развития баз данных и компаний
Ребята вспоминали истории Percona, MySQL, PostgreSQL, MariaDB, а также влияние крупных игроков (Oracle, Sun) на рынок и развитие экосистемы баз данных.
2. Бизнес-модели и монетизация open-source
Обсудили особенности бизнес-моделей Percona, MySQL, вопросы монетизации open-source-проектов, проблемы коммерциализации и поддержка клиентов.
3. Технические отличия и сравнение MySQL и PostgreSQL
Базово сравненили архитектуры, производительности, типов данных, масштабируемости, соответствия стандартам SQL, особенностей работы с большими данными и сложными запросами.
4. Влияние облачных технологий
Обсудили роль облаков (Amazon, Google Cloud, Яндекс.Облако), опыт миграций, плюсы и минусы облачных решений, вопросы доверия и безопасности, влияние санкций и переход на европейские облака.
5. Миграция между СУБД и связанные сложности
Привели примеры перехода с Oracle на PostgreSQL, сложности миграции крупных проектов, зависимость от типа приложения, риски и опыт успешных/неудачных миграций.
6. Рынок, конкуренция и экосистема баз данных
Описали рост рынка, появление новых игроков (Redis, MongoDB, InfluxDB), конкуренция между решениями, роль форков и коммерческих версий, а также поддержка множества СУБД для удовлетворения разных потребностей.
7. Роль и влияние крупных компаний и специалистов
Поговорили про влияние Oracle, Amazon, Google на рынок, формирование профессиональной элиты, обучение специалистов, создание монополий и альтернативных решений.
8. Технические аспекты и особенности работы с СУБД
Поговорили про движки баз данных, вспомнили MyISAM, а также InnoDB, а также как на этом поднялась Percona Server. Поговорили про особенности работы с транзакциями, блокировками, индексами, поддержка расширенных типов данных и языков программирования.
9. Проблемы безопасности, управления и надежности
Вспомнили примеры сбоев, хакерских атак, важность резервного копирования, меры по обеспечению безопасности и управления данными в облаке и on-premise.
10. Будущее рынка и тенденции развития
Обсудили темы разнообразия баз данных, появление специализированных решений (Vector Search, Redis), влияние разработчиков и облаков на выбор технологий, перспективы развития PostgreSQL и других СУБД.

В общем, я выпуск посмотрел с удовольствием:)

#Database #Engineering #Architecture #Management #Software #Data
04/19/2025, 15:10
t.me/eto_analytica/2205
Repost
4
23
390
Всем привет!

Выкладываю запись и конспект(!) закрытой встречи: «Чему учиться в 2025 году: подборки курсов, рекомендации и лайфхаки»

Конспект
Клик [10 минут]

Запись
Клик

Ссылки из конспекта
1. Курсы, которые точно стоит проходить, если вы продакт:
- Product Heroes от Ильи Красинского
- Как запускать продукты от Вани Замесина
- Управление продуктом на основе данных от Олега Якубенкова
- Симулятор управление ростом продукта от Олега Якубенкова
- Международные навыковые курсы от Reforge

2. Курсы по маркетингу:
- Лучший курс, это мой ютуб канал. Там 30+ роликов, в которые я душу вкладывал на протяжении года!
- Воркшопы по навыкам от Наташи Козловой
- В 2019-2020 году отметили, что для систематизации знаний был хорош курс Нетологии Директор по онлайн маркетингу

3. Как диагностировать навыки (ссылки)
- Карта навыков маркетолога 2025: навыки и ресурсы
- Тест от GoPractice для продактов
- Сборник тестовых заданий от разных IT-компаний
- Решаем кейсы с наставниками из Эйч

4. Полезные материалы для обучения
- Список бизнес-литературы по рекомендациям, собранные от Вани Замесина
- Комьюнити R-Founders для тех, кто делает бизнес на международном рынке
- Epic Growth
- Курс от Open AI по Chat GPT

Договорились, что пойдем учиться на навыковый курс по созданию AI агентов. Скоро будет релиз продукта!

Еще больше мыслей есть в конспекте

В документе вы найдете
1. Какие курсы стоит проходить: рекомендации и мнения
2. Как понять: какие навыки стоит прокачивать
3. Какие еще есть способы прокачивать навыки
4. Чему лично я буду учиться в 2025 году

Теперь мы будем делать конпекты на все закрытые встречи. Скоро расскажу, о чем будут следующие!
04/18/2025, 21:57
t.me/eto_analytica/2204
Repost
6
20
408
💥Cheat-sheet для новичков в Spark: Job, Stage, Task - как различать и зачем это нужно?

Если вы только начинаете погружаться в spark, одно из первых, что нужно усвоить - это иерархию выполнения задач: Job, Stage, Task.

➡️Почему это важно?
❣Оптимизация, дебаггинг, настройка кластера - всё это требует знания, как Spark дробит ваши операции на этапы и задачи.
❣Даже высокоуровневые API (DataFrames, SQL) скрывают RDD, но не отменяют логики выполнения через Job → Stage → Task.

Термины:

✔️Spark Job / Задание - это вся вычислительная задача, которую вы отправляете в Spark через действие (action), например, collect(), save(), count(). Состоит из одного или нескольких Stages.
Пример: обработка датасета от загрузки до сохранения результата.

✔️Spark Stage / Этап - логический этап выполнения Job, который объединяет задачи, не требующие обмена данными между узлами (shuffle). Разделение на Stages происходит при широких преобразованиях (например, join, groupBy, repartition), которые требуют shuffle.
Пример: filter → map → reduceByKey
Первые две операции (узкие) остаются в Stage 1, reduceByKey (широкое) запускает Stage 2.

✔️Spark Task / Задача - минимальная единица работы в Spark. Каждая Task обрабатывает одну партицию данных. Выполняется параллельно на исполнителях (executors).
Пример: Если ваш DataFrame имеет 200 партиций, для Stage будет создано 200 Tasks.

➡️Как это работает на практике?
1. Job отправляется в spark (например, вызов df.write.csv("file")).
2. DAG Scheduler разбивает Job на Stages на основе широких преобразований.
3. Каждая Stage делится на Tasks по числу партиций.
4. Tasks распределяются между executor’ами и выполняются параллельно.
5. Результаты Tasks объединяются, и Job завершается.

▶️Пример:
df = spark.read.csv("data.csv")
df_filtered = df.filter(df["age"] > 20) # Узкое преобразование (Stage 1)
df_repartitioned = df_filtered.repartition(10) # Широкое преобразование (Stage 2)
df_grouped = df_repartitioned.groupBy("city").count() # Широкое преобразование (Stage 3)
df_grouped.write.csv("result") # Запускает Job


Итог: 1 Job (запись в CSV), 3 Stages (фильтрация → репартицирование → агрегация), N Tasks (например, 10 задач в Stage 3 после repartition(10).

⭐️Почему в Spark UI иногда отображается только один Stage?
❣Отсутствие операций с shuffle: если все преобразования узкие (например, filter, select), spark выполнит их в одной Stage.
❣Оптимизация Catalyst: в spark SQL/DataFrames Catalyst Optimizer может переупорядочивать операции, избегая ненужных shuffle.
Пример: df.groupBy(...).filter(...) → фильтрация выполняется до группировки.
❣Предварительное партиционирование: если данные уже разделены по ключу (например, после repartition("key")), groupBy может не требовать shuffle.
❣Маленький объем данных: если данные помещаются в память одного исполнителя, spark обработает их без разделения на задачи.

⭐️Советы для оптимизации:
❣Следите за shuffle: каждое широкое преобразование создает новый Stage. Используйте broadcast для небольших таблиц в join.
❣Настройте партиции:
➕Слишком много партиций → много мелких Tasks (риск перегрузки планировщика).
➕Слишком мало → неэффективный параллелизм.
➕Используйте coalesce для уменьшения числа партиций без shuffle.
❣Используйте Spark UI: анализируйте время выполнения Stages (вкладка Stages), проверяйте наличие перекоса данных (Skew) и Spill (Memory/Disk).

Что в итоге?
Запоминаем последовательность:
1. Spark-приложение вызывает действие (action) → создается Job.
2. Job разбивается на Stages на основе широких преобразований.
3. Каждый Stage состоит из Tasks (по одной на партицию).
4. Tasks выполняются на исполнителях (executors). Один исполнитель может обрабатывать несколько Tasks параллельно.

©️ что-то на инженерном
04/18/2025, 13:53
t.me/eto_analytica/2203
Repost
8
38
406
В прошлый четверг случайно наткнулся на онлайн-лекторий Института биоинформатики «Разрушители статистических мифов». Да-да, тот самый институт, где Анатолий Карпов читал легендарный курс по статистике.

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

Почему нельзя пользоваться простыми алгоритмами для выбора стат.теста? Что же такое p-value, и чем оно не является? Нужно ли всегда проверять данные на нормальность? Эти и другие живые вопросы — в центре обсуждения.

Если вам близка тема статистики — рекомендую. Лекторий бесплатный и онлайн, делюсь ссылкой на прошедшие лекции.
04/17/2025, 07:16
t.me/eto_analytica/2202
Repost
3
332
04/16/2025, 05:36
t.me/eto_analytica/2200
Repost
5
3
336
Студенты поделились креативной рекламой, с которой вышла компания KFC в Эквадоре.

Идея и визуал — крутые, а вот с точки зрения данных — боль. Наврали буквально во всём: 26% не выглядит как четверть, 31% не выглядит как треть, а по столбикам количество ресторанов увеличилось скорее в два, а не в три раза.
04/16/2025, 05:36
t.me/eto_analytica/2199
Repost
3
332
04/16/2025, 05:36
t.me/eto_analytica/2201
В истории Глеба про Сингапур и таксистов (осторожно мат) зацепило использование фразы "без негатива".

Похоже у меня появится новое слово-паразит)))

Уважаемые коллеги (без негатива)

Деплой прошел успешно (без негатива)

Хорошего дня (без негатива)

😂😂😂😂
04/15/2025, 16:52
t.me/eto_analytica/2198
Repost
5
16
449
👩‍💻 Бесплатные PostgreSQL as a Service решения для пет-проектов

В продолжение своего вопроса собрал список провайдеров, которые предоставляют бесплатный хостинг PostgreSQL.

👩‍💻 Репозиторий: github.com/alexeyfv/awesome-free-postgres

В таблице сравнение по лимитам, доступным регионам, бэкапам и другим параметрам. Все сервисы соответствуют критериям:

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

Везде зарегистрировался и проверил сам.
04/15/2025, 13:27
t.me/eto_analytica/2197
Repost
4
6
371
Котятки,🐱
Заходя в новый проект с новым источником, раньше я с ходу предлагала CDC. Ну было модно, что уж.
Шло время, и теперь я предлагаю работать с захватом изменений только там, где это безопасно, уместно по нагрузке на систему-источник, и что главное, нормально уживется с паттерном проектирования базы данных системы.
Новая библиотека (предыдущая ссылка, которую я публиковала в канале, умерла):
https://gitart.gitbooks.io/bazi-dannih-i-proektirovanie-dannih/content/shabloni-proektirovaniya.html
Сейчас мой алгоритм достаточно прост:
🕵🏻‍♂️Почитать архитектурную документацию (если есть)
Понять, на какой паттерн я смотрю (иногда на никакой, особенно в легаси, где базу пилили 5 криворуких аутсорсеров в разные эпохи)
🔹Определить происхождение данных, создаются они в системе или тоже интегрируются извне, какие у них метки времени и порядка.
🧑‍💻Почитать документацию по источнику - вы можете столкнуться с ситуацией, когда CDC -это свойство таблицы, и даже без явных меток она вам по индексу отдаст данные, а можете долго бодаться с системами типа SAP, которые защищаются от CDC, и после долгой позиционной борьбы забирать через экстракторы.
🦸Договориться о доработках , так как иногда проще попросить API или вьюху, чем строить из себя героя и воспроизводить логику какой-нибудь зубодробильной системы на DWH.

Вы мне можете возразить, что это все задачки Дата-инженеров, пусть они сами об этом думают, а нам, аналитикам и архитекторам данных, надо всего лишь описать данные и сделать S2T.
Но давайте объективно, это базовые элементы системного анализа в DWH. Без них, ну такое себе.
04/15/2025, 11:30
t.me/eto_analytica/2196
Как проектировать эффективные решения с использованием дизайнера бизнес-процессов?

Бизнес-процессы играют ключевую роль в автоматизации деятельности компании, особенно когда речь идет о сложных многоступенчатых операциях. В Битрикс24 существует два основных типа бизнес-процессов — последовательные и со статусами.

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

✅Практика: проектирование и запуск бизнес-процессов с использованием встроенного инструмента в Битрикс24

🎁Бонус: расскажем как адаптировать существующие бизнес-процессы под новые требования бизнеса

Регистрация на урок 👇
https://clck.ru/3LS78S

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
04/15/2025, 08:08
t.me/eto_analytica/2195
Repost
4
2
367
Действенный способ удаленщика вытянуть в офис - переселите его в новостройку

Смотреть со звуком 🔈
04/13/2025, 07:05
t.me/eto_analytica/2194
Repost
4
1
383
«Волки»: плюсы, минусы. Или как не ошибиться при выборе наставника.

Этим постом завершаю цикл ответов на вопрос «Накручивать ли опыт?». Предыдущие 2 сообщения читайте выше.

Напомню, «волки» — это каста ИТшников, которые топят за накрутку опыта, помогают с придумыванием легенды и подготовкой к собеседованиям.

Плюсы их деятельности:
1️⃣ популяризация менторства среди свитчеров* и младших грейдов, которым сложной преодолеть эмоциональный барьер и спросить совета у старших коллег;
2️⃣ популяризация взаимопомощи;
3️⃣ своеобразная первичная ячейка профсоюзной организации.

Минусы:
1️⃣ пропаганда обмана:
— из исследования знаем, что 29% кандидатов накручивали опыт при поиске работы — это относительный показатель (работодатели держат в уме, что на каждую вакансию треть откликнувшихся кандидатов скорее всего накрутило опыт);
— в сообществе «волков» сейчас 50К+ участников, по оценкам Минцифры в ИТ отрасли трудится около 1 млн человек, т.е. не меньше 5% рынка кандидатов «волки» — это уже абсолютный показатель (его работодатели тоже учитывают при подборе);
2️⃣ однобокая мотивация участников сообщества больше зарабатывать на нескольких работах, при этом необходимость прокачки профессиональных навыков остается в тени;
3️⃣ рекурсия обмана, см картинку, некоторые джуны, найдя работу накрутив опыт, следующим шагом накручивают опыт менторства и обучают других джунов разработке и поиску работы 😁 подробнее об этом кейсе читайте у Леси Набока.

Мой читатель спросит, «как же выбрать себе ментора, и не напороться на самозванца»?!

Очень просто:
1️⃣ развивайте в себе критическое мышление и не доверяйте всему и всецело, перепроверяйте информацию;
2️⃣ обратитесь за консультациями к 4-5 наставникам старших грейдов (сеньор, тимлид, техлид, хэд, С-level), не ограничивайте кругозор на одном менторе;
3️⃣ ищите наставников в разных источниках (тематические тг-каналы и сообщества, линкедин, хабр.эксперты, getmentor и др);
4️⃣ конспектируйте рекомендации и сопоставляйте друг с другом, направьте усилия по развитию на пересекающиеся рекомендации;
5️⃣ не стесняйтесь задавать вопросы в комментариях.

__________________
* свитчер (англ. switch) — это человек, который в осознанном возрасте решил поменять профессию.
04/12/2025, 06:02
t.me/eto_analytica/2193
Repost
3
2
350
#визуализация
Игра, в которой по картинке надо догадаться, что на ней изображено.
https://www.graphs.world

Когда я составлял свою книжку, такие задачи даже не рассматривал, думая, что интересно вряд ли получится. Теперь можно посмотреть, как получилось у других.
04/11/2025, 20:11
t.me/eto_analytica/2192
👆интересно про генерацию картинок
04/11/2025, 08:06
t.me/eto_analytica/2191
Repost
12
393
04/11/2025, 08:05
t.me/eto_analytica/2187
Repost
12
392
04/11/2025, 08:05
t.me/eto_analytica/2186
Repost
12
391
04/11/2025, 08:05
t.me/eto_analytica/2185
Repost
12
390
04/11/2025, 08:05
t.me/eto_analytica/2184
Repost
12
427
04/11/2025, 08:05
t.me/eto_analytica/2190
Repost
12
421
04/11/2025, 08:05
t.me/eto_analytica/2189
Repost
7
12
342
Ну што, сладульки мои, погнали по делу

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

Более бесплатные инструменты:

1️⃣Шедеврум от Яндекса. Сейчас выдаёт уже хороший уровень, для начинающих — прекрасный инструмент, чтобы попробовать, поиграться, понять, как работает промпт. Можно бесплатно генерировать на здоровье. А можно оформить подписку, всего 100р/месяц, там предлагается апскейл (хз как работает), приватность и возможность коммерческого использования картинок без согласования с сервисом. Ну и я уважаю то, что у них есть аппка.

2️⃣Reve Image 1.0. Свежая как майская роза нейроночка с возможностью бесплатного и платного использования. Создана для генерации супермегагигареалистичных фотографий (хотя иллюстрации тоже умеет). Генерации доступны для личного и коммерции, но сервис предупреждает, что у другого человека может быть такая же генерация. Приватного режима, да и особых настроек я не наблюдаю.

Более платные инструменты:

3️⃣Ideogram. Прекрасная платформа для создания и доработки иконок, графики, рекламных материалов. Есть режим канвы (как в Фигме, Миро и т.д.), где можно инпейнтить и аутпейнтить объекты, добавляя к ним новые детали. Раньше токены бесплатные выдавались каждый день, теперь, насколько я знаю, раз в неделю. Стоимость подписки начинается от 20$.

4️⃣Krea. По сути своей агрегатор, в котором содержится куча разных моделей и на генерацию видео, и на генерацию картинок. В день даётся небольшое количество токенов, на которые можно погенерить пикчи или поапскейлить их. Можно тренировать свои стили, персонажей или объекты, а также инпейнтить и аутпейнтить. Создание виртуальных фотосессий здесь самое простое и понятное. У меня есть пост на эту тему. Стоимость подписки начинается от 10$.

5️⃣Stable Diffusion. Ставится локально на комп. Тот, кто скажет, что это бесплатный инструмент, может смело пойти в пешее эротическое. И щас я доступно объясню почему:
А) Комплектующие. Если старые модели были не супер требовательны к компу, то для новых вам нужно дофига и больше памяти, а также мощная видеокарта. Или обучение на разработчика Питона, чтобы понимать, как запрогать это дерьмо самому.

Б) Время. Пока в Шедевруме вы просто набираете "цветочек на лугу", в Стейбл придётся изучить как ставить на компуктер все их недоаппки, разбираться с настройками и бесконечными ошибками.
И это я говорю как пользователь Стейбл Диффьюжн. Что я в нём делаю: апскейлю перманентно, инпейнчу картинки. Мне через него проще, но для этого пришлось пройти сквозь анальную боль, чего я никому не желаю (кроме владельцев ботов). В галерее нет генераций Stable, потому что моделей там хренналион, в частности, Flux, который есть в Kree.

Совсем платные инструменты:

6️⃣Chat GPT или Sora. Сейчас самый удобный сервис для генерации изображений, так как с Чатом непосредственно в переписке можно решить все вопросики, в том числе и по доработке изображений. Пока неидеально, но с точки зрения разработки концепта, графики, иконок, очень и очень хорошо. Есть 2 подписки: для простых смертных за 20$ и для непростых бессмертных за 200$.

7️⃣Midjourney. Большая, но сдающая конкурентам свои позиции махина. Генерация изображений, создание собственных визуальных стилей, ретекстура, инпейнт, аутпейнт — это всё здесь есть. Чего здесь нет, так это годной анатомии, в связи с чем я лично уже несколько месяцев Миджу не оплачиваю. Но у неё неповторимый художественный стиль, этого не отнять. Стоимость подписки начинается от 10$.

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

💰 Поддержать мой титанический труд монетой можно по ссылке.

#ликбез
04/11/2025, 08:05
t.me/eto_analytica/2183
Repost
12
422
04/11/2025, 08:05
t.me/eto_analytica/2188
Repost
7
15
346
🎓 Продвинутая аналитика Яндекс.Метрики для маркетологов — теперь бесплатно на Stepik!

Ровно год назад я вынашивала идею: а можно ли поиграться с Яндекс.Метрикой, не создавая полноценный сайт? 📊
Ответ нашёлся — можно! Я прикрутила счётчик к каналу на Дзене и начала изучать поведение пользователей прямо оттуда: сколько людей пришли, что читали, какие статьи заходят лучше всего.

➡️Об этом я подробно писала в посте:

А теперь хочу поделиться крутым бесплатным курсом, который отлично дополнит этот опыт.

👨‍🏫 Друг моего друга запустил курс на Stepik: "SQL для маркетинга. Продвинутая аналитика данных Яндекс.Метрики".
Да, бесплатно, да, полезно, да, от души — таких инициатив всегда хочется поддержать ❤️

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

📌 Учим тут https://stepik.org/course/192052
04/10/2025, 13:52
t.me/eto_analytica/2182
Repost
7
26
471
Дашборды b2c продукта, без которых жуть💀

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

Разделю его на 2 слоя:

1. Бизнесовый
2. Продуктовый

Бизнесовый слой

Можно собирать, если есть доступ к финансовой информации. Часто такое можно получить только от определенного уровня по позиции (руководители, директора, президенты...).

Если все ок, то смотрим на:

- KPI компании: Revenue, Customer base, OIBDA, EBITDA
- по каналам трафа: CAC, LTV, ARPU, ARPPU

Видим контекст сверху, что в целом происходит с бизнесом. Далее идем вглубь.

Продуктовый слой

Более доступный кусок инфы, который проще вытащить на практике для продуктового человека.

Смотрим на воронку отдельно по каналам трафика и платформам через показатели:

- MAU (+rolling), WAU, DAU
- Новые пользователи, старые пользователи
- Churn пользователей
- CR в целевые действия по всей вашей воронке: авторизация/рега, оформление триала, слушание/смотрение/товар в корзине, покупка/привязка карты
- кол-во клиентов
- кол-во покупок на клиента
- Retention в заходы 1, 7, 14, 30 дней в зависимости от частотности пользования продуктом
- Retention в ключевое целевое действие продукта (например, в онлайн-кинотеатре в смотрение фильма/сериала, в ecom - покупка) 
- когортный анализ платящих клиентов по месяцам за 1-2 года

Допом:

- Timespent
- Engagement Rate: лайки, шеры, клики, взаимодействия
- Пуши: включены/выключены

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

#продуктовыеметрики
04/10/2025, 06:15
t.me/eto_analytica/2181
Repost
4
12
454
Паттерны проектирования для Data Engineer: необходимость или излишество?

Паттерны проектирования - тема, которая вызывает споры среди разработчиков не меньше, чем отсутствие CS-образования. На заре Data Engineering большинство специалистов приходили из Backend-разработки, где знание паттернов считалось обязательным навыком. Но с ростом популярности профессии в неё хлынули люди из смежных областей - аналитики данных, BI-разработчики, специалисты без опыта применения паттернов. Так нужны ли они Data Engineer?

Ответ зависит от задач. Если вы пишете Spark-джобы, собираете витрины или работаете с моделированием данных - паттерны, скорее всего, останутся на полке. Но если вы в платформенной команде и создаёте Self Service платформу, которую нужно поддерживать и развивать, паттерны становятся незаменимыми. Они помогают строить масштабируемый и понятный код, избегая хаоса.

Как изучать паттерны и с чего начать?

Гугл первым выдаёт «Банду четырёх» - книга культовая и глубокая, но для новичка может быть тяжёлой. Есть серия Head First - подача проще, но их стиль лично мне не подошёл. Я выбрал свой путь: комбинацию теории и практики из нескольких источников.

Что рекомендую:
- «Погружение в паттерны проектирования» от Refactoring.guru - фундаментально и доступно (книга платная).
- Курс «Шаблоны проектирования на Python» на Stepik/Udemy - хорошая основа, хоть примеры не всегда идеальны.
- Mastering Python Design Patterns - отличные примеры на Python, моём ключевом языке.

Как я учу:
1. Изучаю теорию паттерна в Refactoring.guru.
2. Смотрю разбор на Stepik/Udemy.
3. Читаю реализацию в Mastering Python Design Patterns.
4. Закрепляю практикой (на Stepik есть ДЗ).

Это не самый быстрый метод, но он работает: каждый источник дополняет другой, закрывая пробелы. Паттерны не универсальны, но в нужных сценариях спасают. А что думаете вы - помогают ли они в Data Engineering?

@data_whisperer
04/09/2025, 20:16
t.me/eto_analytica/2180
Repost
6
11
447
Библиотеки Python для работы с базами данных и SQL-запросами

1. sqlite3
Библиотека
позволяет работать с базами данных SQLite, которые записывают и читают данные с файлов, а значит пользователю не нужно устанавливать сервер для БД, что очень удобно)

2. psycopg2
Модуль
для работы с базами данных PostgreSQL. Также позволяет все основные функции с базой данных: работа с таблицами, написание запросов и т.д.

3. mysql-connector-python
Как
уже понятно из названия, модуль позволяет подключаться к БД MySQL) Включает в себя все те же функции, что и описанные выше модули. Подробная документация доступна по ссылкам в названии модулей

4. pymssql
Модуль
позволяет подключаться к БД Microsoft SQL Server

5. SQLAlchemy
Алхимия
при работе с базами данных из python) Библиотека позволяет подключаться к различным БД. Есть множество функций: создание/изменение/удаление таблиц, извлечение/вставка данных, написание запросов, изменение данных. Библиотека позволяет работать с БД с помощью объектно-ориентированного кода, не используя при этом SQL

6. PandaSQL
Модуль позволяет расширить функционал pandas и писать SQL запросы прямо к датафреймам. Как вариант использования модуля с другими библиотеками, после подключения к БД и извлечения данных, к датафрейму можно писать запросы как будто бы к обычной таблице в БД, не используя синтаксис pandas
04/09/2025, 19:06
t.me/eto_analytica/2179
Repost
2
16
466
Как бы вы решили задачу с картинки выше?

По факту, задача простая. Я бы решила ее через создание cte с оконной функцией внутри. Но для таких задач есть еще одно решение - через LATERAL.

LATERAL - это ключевое слово, позволяющее ссылаться на таблицы из запроса верхнего уровня в подзапросе.

В данном случае, можно было бы применить Inner Join Lateral, и не прибегая к созданию cte достать и сразу же отфильтровать нужные данные. По сути, это коррелированный join, который выполняется для каждой строки исходной таблицы.

SELECT u.name, o.order_id, o.order_date, o.amount
FROM users u
INNER JOIN LATERAL (
SELECT order_id, order_date, amount
FROM orders
WHERE orders.user_id = u.user_id -- используем user_id из внешней таблицы
ORDER BY order_date DESC
LIMIT 3 -- берем 3 последних заказа
) o ON true;

Как это работает?

1 — Построчное выполнение: для каждой строки основной таблицы users выполняется подзапрос, использующий её данные.

2 — Объединение результатов: результаты подзапроса присоединяются к исходной строке.

3 — Можно использовать любые условия, сортировки и агрегаты внутри подзапроса.
Получается, что для каждого найденного пользователя подзапрос обрабатывает только его заказы, а не всю таблицу orders.

Когда использовать LATERAL?

❣Топ-N записей для каждой группы. Например, последние 5 заказов пользователя, лучшие N товаров в категории.

❣При работе с временными рядами и с функциями, генерирующими последовательности (например, `generate_series`):

SELECT events.id, time_slots.slot
FROM events
JOIN LATERAL generate_series(
events.start_time,
events.end_time,
interval '1 hour'
) AS time_slots(slot) ON true;

❕В PostgreSQL generate_series можно использовать без LATERAL (через cross join), но LATERAL обязателен, если функция зависит от колонок внешней таблицы.

❣Комплексные коррелированные подзапросы. Когда подзапрос зависит от данных внешней таблицы и его нельзя выразить через обычный джойн.

❕Важно, чтобы колонки в условиях where и order by были индексированы, тогда LATERAL будет бегать быстрее. Например, в таблице orders был бы индекс по (user_id, order_date DESC)

Недостатки LATERAL:
— Низкая производительность. Подзапрос выполняется для каждой строки, что может быть медленно на больших данных.
— По факту, LATERAL выполняет подзапрос для каждой строки внешней таблицы, как цикл по строкам. И если бы нам нужно было выгрузить все агрегаты по всем заказам, то тогда лучше воспользоваться group by.
— Толком нигде не реализовано, кроме PostgreSQL, Oracle (в MySQL - ограниченная поддержка).

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

Что думаете вы? Применяли когда-нибудь Lateral Join в своих запросах? 👀

Почитать еще на эту тему можно тут.
04/09/2025, 09:18
t.me/eto_analytica/2178
⚡️Создаем эффективный дашборд как в Wildberries

Продуктовые дашборды позволяют визуализировать ключевые метрики и принимать обоснованные решения. Но как создать действительно эффективный дашборд?

Егор Чеменев, опытный продуктовый аналитик из Wildberries и автор телеграм-канала «Data Brew», проведет прямой эфир, посвященный созданию продуктового дашборда.

На этой неделе мы уже проводили эфир по WB — анализировали продажи с помощью Python. Теперь идем дальше — Егор, благодаря своему опыту в Wildberries, продемонстрирует, как эффективно использовать данные и инструменты для создания дашбордов.

Что будем делать:
🟠Выберем метрики: узнаем, какие ключевые показатели необходимо отслеживать для развития продукта;
🟠Напишем запросы в PostgreSQL;
🟠Научимся визуализировать данные в Power BI так, чтобы они были понятны и полезны для принятия решений;
🟠Отталкиваясь от визуализации поищем идеи для будущих исследований.

🕗 Встречаемся 8 апреля в 18:30 по МСК

😶Зарегистрироваться на бесплатный вебинар
04/08/2025, 14:37
t.me/eto_analytica/2177
Аккуратнее с импортом csv)))
04/08/2025, 09:41
t.me/eto_analytica/2176
Repost
7
18
614
▶️ Простая оптимизация запросов в GreenPlum + кейсы▶️

Когда я только начинал работать, то вообще не понимал, для чего нужно оптимизировать запросы. И спустя полгода плотной работы с GP(и по совместительству с создания первого видео по GP) я понял, что без оптимизации далеко не уйдёшь.

Это видео поможет Вам на простых примерах понять, как именно стоит оптимизировать запросы и на что обращать внимание.

Если у тебя остались вопросы по GreenPlum, оптимизации, твоим кейсам и т.д., обязательно задавай их в гугл-таблице, либо в комментариях(я сам их перенесу). На них ответит Никита Целищев — один из авторов курса от ЯП по GreenPlum.

😘 Ссылка на видео.
😵 Презентация (Могли поехать шрифты, но думаю ничего страшного)

Бот для просмотра YouTube
@NamelessNetwork_bot

Промокод: DE
(FREE 2 недели)

Так же в боте можно приобрести роутер со встроенным "ускорителем" YouTube на всех домашних устройствах по единой подписке.
04/08/2025, 06:11
t.me/eto_analytica/2175
Как попасть в IT-тусовку

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

Через таких можно и в компанию зарефералиться, и резюме поправить, и в должности вырасти. Как попасть в такое комьюнити?

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

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

Если после этого поста у вас остались вопросы о том, как попасть в IT-тусовку, советую перечитать его еще раз)
04/07/2025, 08:04
t.me/eto_analytica/2174
Repost
4
1
435
Какие ужасные истории, связанные с Power BI, вы знаете: от технических недостатков до менеджеров проектов, которые просто «не понимают»?
 
🤦‍♀️Я работал в компании, у которой была аллергия на облачные вычисления, поэтому мне приходилось рассылать файлы pbix по электронной почте более чем 50 людям.
 
🍾Отчет, в котором кто-то пытался импортировать каждую отдельную таблицу из базы данных SQL
 
🧑‍💻Однажды вице-президент попросил меня показать ему, как сделать power bi за 30 минут. Имейте в виду, что этот парень даже не знал, что SQL существует
 
📊Я создал отчет, в котором были сложные преобразования данных в Power Query, обновление которых занимало 10 минут. Команде понравилось, они попросили добавить немного контента, который я добавил, после чего отчет обновлялся 15 минут. Еще пара таких циклов, и теперь я разочарованный владелец отчета, каждое обновление которого теперь занимает более 45 минут.
Теперь я перемещаю преобразование данных и перестраиваю его во внешнем инструменте.
 
⚡️На работе нам отказываются предоставить драйвер odbc для наших баз данных, поэтому данные приходится вручную запрашивать и экспортировать из таблиц, а затем вносить в отчеты.

Ссылка на обсуждение на Reddit https://www.reddit.com/r/PowerBI/comments/1cra9wu/what_are_your_power_bi_horror_stories/?rdt=47016

Кулстори меня: однажды мой коллега подошел ко мне с просьбой по-быстрому научить его Power BI, ведь в канале я доказываю, что это просто и может каждый, низкий порог входа и пр. Оказалось, что его взяли преподавателем в одну онлайн-школу, и один из его модулей -это BI, а он их ни разу не открывал. Что ж…
04/07/2025, 06:13
t.me/eto_analytica/2173
Repost
17
24
453
💰 ARPU и ARPPU на пальцах: считаем, понимаем, используем в SQL

☕️ Как это выглядит на данных?

Предположим, у нас есть таблица с заказами и пользовательскими событиями (по последнему мы получаем данные по DAU / WAU / MAU, например).

1) orders:


user_id | order_id | gmv | date

user_id - id пользователя
order_id - id заказа
gmv - стоимость заказа (для пользователя)
date - дата оплаты заказа


2) actions:


user_id | action_name | date

user_id - id пользователя
action_name - обычно таблица с событиями (сюда льются любые заходы пользователя в приложении)
date - дата экшна


💃 ARPU = total GMV / АКТИВНЫЕ пользователи
💃 ARPPU = total GMV / ПЛАТЯЩИЕ пользователи

😈 Пример запроса ниже. Рассчитаем ARPU / ARPPU за март 2025 года

-- Считаем ARPU и ARPPU за март 2025 года

WITH
-- Количество уникальных активных пользователей (по действиям)
active_users AS (
SELECT COUNT(DISTINCT user_id) AS active_user_count
FROM actions
WHERE date BETWEEN '2025-03-01' AND '2025-03-31'
),

-- Количество уникальных платящих пользователей (по заказам)
paying_users AS (
SELECT COUNT(DISTINCT user_id) AS paying_user_count
FROM orders
WHERE date BETWEEN '2025-03-01' AND '2025-03-31'
),

-- Общая выручка за период
total_revenue AS (
SELECT SUM(gmv) AS gmv_total
FROM orders
WHERE date BETWEEN '2025-03-01' AND '2025-03-31'
)

-- Финальный расчёт метрик ARPU и ARPPU
SELECT
ROUND(gmv_total * 1.0 / active_user_count, 2) AS arpu, -- Средняя выручка на активного пользователя
ROUND(gmv_total * 1.0 / paying_user_count, 2) AS arppu -- Средняя выручка на платящего пользователя
FROM total_revenue
CROSS JOIN active_users
CROSS JOIN paying_users;


Например, ARPU = 100 ₽, ARPPU = 500 ₽ => платит только каждый 5-й.

❓ ARPU отвечает на вопрос: сколько в среднем приносит один пользователь среди всех активных. Это полезно при расчёте юнит-экономики: можно быстро оценить выручку на пользователя, не углубляясь в поведение платящих отдельно. Также ARPU часто используется как proxy для оценки LTV в первые периоды жизни пользователя, особенно при когортном анализе.

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

Если рассматривать их в связке, можно понять за счёт чего растёт выручка: за счёт увеличения числа платящих (растёт ARPU, ARPPU на месте) или за счёт того, что каждый платящий стал платить больше (растут оба).

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

ARPU чувствительнее к изменениям в конверсии в оплату, а ARPPU — к изменениям в поведении уже платящих.

😘 Понравился пост? Ставьте реакции, пишите комментарии!

#дляначинающих@zasql_python
04/06/2025, 07:44
t.me/eto_analytica/2172
Repost
7
11
522
Хинты в Spark 🪄

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

❕Важно: хинты не гарантируют результат, но в 90% случаев spark их учитывает.

Основные типы хинтов:

1 — для джойнов
Помогают выбрать алгоритм соединения таблиц.

▫️BROADCAST - запускает Broadcast Join (маленькая таблица копируется на все ноды).
▫️MERGE - указывает, что данные отсортированы, и можно использовать Merge Join. Можно применять, если заранее отсортировали данные по ключу соединения.
▫️SHUFFLE_HASH - принудительно запускает Hash Shuffle Join. Применять для больших таблиц, где ключи можно хешировать.

2 — для управления партициями
Контролируют, как данные распределены между нодами.

▫️REPARTITION - перераспределяет данные через полный shuffle, чтобы увеличить/уменьшить число партиций или партицировать по столбцу.
▫️COALESCE - уменьшает число партиций без shuffle (объединяет соседние). Применяется после фильтрации, чтобы избежать мелких партиций.
▫️REBALANCE - автоматически балансирует данные, минимизируя перекосы.

3 — для борьбы с перекосами (skew)

▫️SKEW - указывает spark на перекошенный ключ и число партиций.

Кстати, если в Spark UI видите задачи, которые выполняются в 10 раз дольше других — это skew. Попробуйте применить хинт SKEW или REBALANCE.

Что по синтаксису?
В sql: хинт передается в комменты /*+ ... */ после select.
SELECT /*+ MERGE */
t1.*, t2.*
FROM table1 t1
JOIN table2 t2 ON t1.sorted_key = t2.sorted_key;

В spark: через метод hint()
df.hint("rebalance", "user_id")

Почему хинты не работают?
— Противоречат логике оптимизатора. Например, если таблица для BROADCAST слишком большая, spark выполнит Sort-Merge Join вместо Broadcast.
— Версия вашего spark. Хинты вроде SKEW или REBALANCE требуют spark 3.0+
— Что-то в параметрах сессии. Например, включен AQE, он может переопределять хинты.
04/05/2025, 21:14
t.me/eto_analytica/2171
Repost
6
12
411
Open AI запустил академию, где много разных программ обучения https://academy.openai.com
04/04/2025, 08:25
t.me/eto_analytica/2170
Repost
7
4
470
Как зиро кодинг победил вайб кодинг

Несколько месяцев назад появился новый баззворд: вайб кодинг. Это такой процесс, когда вы как бы кодите двумя пальчиками и почти не участвуете в процессе, отдавая всё на откуп AI. Цитата из оригинального твита:
Я всегда нажимаю «Принять все» [правки], я больше не читаю изменения. Когда я получаю сообщения об ошибках, я просто копирую их без комментариев, обычно это исправляет ситуацию.

На колесо вайб кодинга льют воду фаундеры, которые обещают уволить часть разрабов из своих компаний уже в этом году, а также фаундеры компаний со своими языковыми моделями, которые говорят, что уже 50% кода пишется AI. Такие фаундеры преследуют свои цели: объяснить совету директоров, что их компания на острие прогресса, поднять новый раунд инвестиций, просто попиарить компанию, потому что старые медиа ох как любят подобные цитаты. Не осуждаю, заниматься пиздаболией — это часть работы фаундера.

Это маркетинг, а вот что происходит в реальности. В твиттере завирусился тред про то, как чувак по имени Лео из Маями поднял SaaS без девелоперов чисто на вайб кодинге через IDE Cursor. Писал, что это начало новой эры, где можно запустить свой сервис за 50 баксов в месяц за подписку на софт. В итоге, пользователи твиттера устроили атаку на его сервис:
Происходят всякие странности: кто-то использует мои ключи для API, некоторые юзеры пользуются приложением без подписки и создают рандомные записи в базе данных.

Лео жаловался, что когда кодовая база распухла, Cursor начал ломать куски кода. Он убил продукт и создал его заново через — барабанная дробь — no code сервис Bubble. Этой компании, кстати, 13 лет.

Вся эта история говорит о том, что пока Cursor — это очень хорошая тулза в пару к прогеру, но никак не замена прогеру. А если у человека вообще нет опыта, то Cursor проигрывает no code конструктору, Bubble. Обычно сервисы, которые поднимаются на no code быстро приходят к пределу и больше не могут масштабироваться, а требуют переписывания на старый добрый код.

Я тут не хейчу, Cursor — прекрасный инструмент, но маркетинговый буллщит разгоняет истерию. А реальное положение дел видно вот по таким случаям, как с Лео. Хотя уже завтра может произойти переворот игры: выйдет очередная модель или AI IDE. Я лишь хочу зафиксировать положение дел прямо сейчас.
04/03/2025, 17:19
t.me/eto_analytica/2169
Интересный взгляд на тему нужности DWH

https://habr.com/ru/amp/publications/863308/

Довольно структурировано. Рекомендую
04/03/2025, 12:01
t.me/eto_analytica/2168
🚀Прими участие в ML Cup 2025 от Авито и выиграй 1,2 миллиона рублей!

Ты — специалист в области машинного обучения? Хочешь проверить свои силы в реальных задачах, с которыми ежедневно сталкиваются 1000+ специалистов Авито? Тогда не упусти шанс стать частью крупнейшего соревнования в этой области!

Что тебя ждет:

☑️Денежный призовой фонд
☑️Автоматизированная оценка решений
☑️2 практические задачи:

1️⃣Персональные рекомендации — предскажи, какие товары вызовут интерес у миллионов пользователей → ссылка на регистрацию.

2️⃣Поиск дублей — как с помощью CV находить похожие объявления даже при разных текстах и ракурсах фото → ссылка на регистрацию.

Выбирай одну или обе задачи, показывай лучшие результаты и получай шанс на победу! Участвовать можно как индивидуально, так и в команде до 4 человек. Загружай до 5 решений в день.

Регистрация уже открыта! Подробности и анкета по ссылкам выше.
04/03/2025, 08:05
t.me/eto_analytica/2167
Repost
4
427
В совете рассматриваю планисферу Кантино, и задавая вопросы «что это?» и «зачем это здесь?» узнаю много нового и делюсь с вами 😌

https://bureau.ru/soviet/20250402/
04/02/2025, 09:20
t.me/eto_analytica/2166
Repost
16
72
441
Как бы я сейчас построил свое обучение в продуктовой аналитике / аналитике данных?

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

Всем привет! Сегодня напишу о том, что бы я изменил в своем обучении, если я бы вкатывался сейчас. Давайте перейдем к самому простому, как мне кажется, это стек. Базово на аналитика данных / аналитика предлагается следующее:

🐍 Python - для обработки данных, ETL-процессов, первичной визуализации, построения ML моделей, работа с тем же Spark / Hadoop для работы с большим объемом данных.
💻 SQL - работа с СУБД, по сути данные это наш хлеб. Любые логи, записи по пользователям / клиентам, различные фичи пользователей. По моему мнению, аналитик ОБЯЗАН уметь работать с SQL, без этого никуда. Поскольку первично если собирается неправильно получится следующее: garbage in garbage out
📊 Визуализация - бизнесу нужно интерпретировать данные в удобном формате, для этого используют дашборды. Это понятно + на основе них аналитик может понимать в удобном формате как можно генерить гипотезы. Для этого подойдут Superset, Yandex DataLens, Tableu, PowerBI, FineBI и др.

Что ж, с этим разобрались, базово это выглядит так, но если углубляться в мой стек, который я использовал в 💙 - это Gitlab, Hadoop, Airflow, SQL (ClickHouse, Vertica, MS SQL, PostgreSQL), Python, Superset.

Далее, все зависит от специфики. Если для вас достаточно быть ETL-разработчиком, можно остановиться на этом, владея базовым видением, но можно пойти дальше в сторону изучения продукта, различных тенденций и что самое главное понимания как ответить на главные вопросы бизнесу. Что мы делаем? Зачем мы это делаем? Как в будущем это отразиться на нас?

Сюда наслаивается и развитие продуктового мышления, и статистика с эконометрикой и ML, и A/B тесты, различные продвинутые методы и др.

К роадмапу (помните, что 🗯 ваш друг):

0. SQL - лучший бесплатный курс по SQL ever от 🔥. Если пользователь ClickHouse, можно документацию на русском глянуть, достаточно хорошо описано. Если пользователь Vertica 😬, то можно также документацию на английском

1. Про Python у меня был пост, можно глянуть тут

2. По визуализации можно зайти в соответствующие чаты и читать документацию. По Superset документация и соответствующий чат в телеграме. По Yandex DataLens есть курс от ❤️

3. Статистика и теория вероятностей. У ФЭН ВШЭ есть хороший курс с систематизацией того, как выводятся методы, которые мы привыкли видеть. Систематизация на уровне дисциплины без упрощения. Если вдруг оказалось сложным и непонятным, можно ВЕРХНЕУРОВНЕВО вернуться к любимому Анатолию Карпову и основам статистики на степике

4. Прикладная статистика, эконометрика, уход в АБ тесты и продвинутые методы. С курсом от ВШЭ (там кстати есть Python в блоке статистики) очень хорошо сочетаются следующие курсы: Прикладная статистика от МФТИ и ААА в открытом доступе (предыдущий пост). И также курс по эконометрике от ВШЭ от Бориса Демешева на R

4* Если вдруг предыдущий пункт оказывается непосильным, подрубаем ChatGPT, ведем конспектики и смотрим Глеба Михайлова с его практическим руководством к АБ + подкрепляем статьями на Хабр. Могу отдельным постом выложить какие статьи я читаю, для чего и т.д., как систематизирую знания.

4.1. Продвинутые методы A/B тестирования. Предыдущие посты были про любимый CUPED. Сюда наслаиваются еще и дельта-методы, стратификации, линеаризации, SPRT, VWE и др. Про это также будет отдельный пост.

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

6. Работа с большими данными. Если вы дойдете до этого, то советую ознакомиться с документацией Spark, в частности работа с Pyspark (плейлист на YouTube) основы работы с Hadoop. Здесь вы поймете какие есть ограничения при работе, будете работать над ускорением расчетов, оптимизацией и другое.
04/01/2025, 15:28
t.me/eto_analytica/2165
Удалил(-а) Вас из группы
04/01/2025, 06:56
t.me/eto_analytica/2164
😂😂😂😂
03/30/2025, 22:41
t.me/eto_analytica/2163
Repost
7
18
475
Ультимативный гайд по накрутке опыта

На YouTube вышел магнум опус, «ультимативный гайд» по накрутке опыта. Мы с Антоном Назаровым на протяжении 2 часов 40 минут наваливаем отборнейшую базу.

Хочу, чтобы видео помогло тем, кому страшно крутить и кто прямо сейчас из-за этого находится в бесконечном поиске работы. Если вы готовы настолько смести социальные рамки, то у вас точно получится сделать охуенную карьеру. Карьера и строится на интригах, политике, приукрашивании и других как бы непорицаемых вещах. А быстро строит карьеру тот, кто отмёл любые правила и условности.

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

0. Люди, которые только начинают карьеру. Стажировки, конечно, есть, но для лучших выпускников топ-10 ВУЗов страны. А для остальных — сорян. Сначала опыт получите, потом важные господа соизволят и дадут вам поработать.

1. Чтобы закрыть job hopping. Это когда работаешь на одном месте короткий период и меняешь работодателя с ростом по зп. Вот цитата из исследования: такая тактика помогает за всю жизнь заработать на 50% больше по сравнению с ростом на одном месте. Работодателям это не нравится, так как работник должен затерпеть это риск: сотрудника якобы можно легко перекупить. Поэтому, чтобы выглядеть в глазах таких работодателей конвенционально, надо иметь в резюме места минимум по паре лет работы.

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

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

4. Те, кто ставил карьеру на стоп: уходил в бизнес или в саббатикл. Опять же, наёмники ненавидят такое поведение: ты, если уж и решил работать, то работай всю жизнь, а в день смерти возьми дейофф.

5. Менеджеры, желающие работать зарубежом. Мантра эйчаров: ты должен быть готов «упасть на грейд», если хочешь работу менеджером зарубежом. Даже в русскоязычных командах. И это почему-то воспринимается как само собой разумеющееся. Проблема решается записыванием себе в резюме опыта в международной компании.

6. Если требуют специфичную технологию или сферу. Она просто дорисовывается в резюме. Если ты изучил один бизнес-домен, язык, фреймворк и прочее, то второй/третий/пятый выучить легче. Но скидки на это в голове у нанимающего менеджера нет, поэтому просто крутим.

7. Если вы работали в беттинге/казиныче/порно и других, порицаемых обладателями белых пальто, сферах. Типа «береги честь с молоду». Но работа не пахнет. И уж точно обычный работяга не должен нести ответственность за тот социальный эффект, который несёт сфера. Поэтому в резюме такие работодатели должны быть заменены.

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

Давненько не писал, в монтаже сейчас ещё 3 видео по 2-4 часа. Да и новостишек мало. Буду появляться чаще.
03/29/2025, 17:59
t.me/eto_analytica/2162
Repost
5
2
370
В аспирантуру хотела очень давно. Разные цели на разных промежутках, но хотелось всегда.

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

Несколько лет назад открыла, что государство субсидирует образовательные кредиты. Да так, что тебе остаётся всего 3%. С учётом инфляции - это бесплатные деньги, даже чуточку приплачивают за то, что их берешь. Кредит целевой, только на обучение по аккредитованной программе в вузе с лицензией.
И вот я уже четвертый семестр в аспирантуре. С гарантией того, что не выпнут за неоплату, даже если не будет возможности в моменте заплатить. Банк переводит транши по семестрам, мне вот такие смс шлёт😊

Мало ли кто про полезную фичу не знает, вот рассказала 😊 На сайте Сбера подробности.
03/29/2025, 16:51
t.me/eto_analytica/2161
Repost
5
26
391
3 ресурса для освоения GIT с интерактивными заданиями

https://learngitbranching.js.org/?locale=ru_RU - Learn Git Branching
Интерактивный тренажер, позволяющий визуализировать и отрабатывать команды Git в режиме реального времени. Подходит как для новичков, так и для опытных пользователей. ​

https://git-school.github.io/visualizing-git/ - Visualizing Git
Веб-приложение, которое наглядно демонстрирует, как различные команды Git влияют на структуру коммитов, помогая лучше понять внутренние процессы системы контроля версий.

https://ohmygit.org/ - Открытая игра, обучающая Git с помощью визуализации внутренних структур репозиториев в реальном времени. Имеет интерфейс в виде игровых карт для запоминания команд и интегрированный терминал для выполнения произвольных команд Git.
03/29/2025, 07:52
t.me/eto_analytica/2160
Как насчёт карьеры в международном банке? 🔥

Крупный банк ищет стажёров — вот какие есть направления:
👉 Аналитик DWH
👉 Разработчик DWH

Стажировка, кстати, оплачивается, а в процессе у вас будет наставник, который поможет набраться опыта и расскажет, что как работает. С вас только SQL и желание развиваться в своей сфере.

Узнать подробности и составить резюме можно в боте.

⚡️ Перейти в бот ⚡️
03/28/2025, 16:33
t.me/eto_analytica/2159
Repost
9
24
396
Основные алгоритмы джойнов

Next level для тех, кто освоил типы джойнов, и теперь готов к оптимизации своих запросов 😎

Ниже приведены ключевые алгоритмы джойнов, используемые в реляционных СУБД и распределенных системах (Spark, Hadoop). Каждый из них решает определенные задачи в зависимости от объема данных, их структуры и инфраструктуры.

▫️Nested Loop Join - для каждой строки левой таблицы сканируется вся правая таблица (вложенные циклы).
— подходит для очень маленьких таблиц (до 1 тыс. строк)
— используется в SQLite, PostgreSQL для простых запросов
— простая реализация
— не требует сортировки или индексов
— сложность O(N*M) → неприменим для больших данных.

▫️Hash Join - состоит из двух фаз:
Build Phase: создается хеш-таблица для меньшей таблицы.
Probe Phase: большая таблица итерируется, и ключи ищутся в хеш-таблице.
— используется, если одна таблица помещается в память (справочники, малые датасеты), например в PostgreSQL для джойна пользователей и заказов.
— быстрый поиск за счет хешей → O(N + M).
— не требует сортировки.
— требует много памяти.
— неэффективен для skewed-ключей.

▫️Sort-Merge Join - сначала обе таблицы сортируются по ключу джойна. Далее происходит слияние отсортированных данных (как в алгоритме двух указателей).
— подходит для больших таблиц, которые нельзя броадкастить, и если данные уже отсортированы (например, партиционированы по дате).
— стабильная работа на больших данных.
— минимизирует использование памяти.
— дорогая сортировка → O(N log N + M log M)
— не подходит для skewed data.

▫️Broadcast Join (Map-Side Join) - маленькая таблица рассылается на все ноды кластера. Джойн выполняется локально на каждой ноде без Shuffle.
— используется, если маленькая таблица ≤ 10% памяти ноды (справочники, конфигурации), например для джойна логов и справочника стран на spark.
— нет Shuffle → экономия сети.
— максимальная скорость для маленьких таблиц.
— риск OOM, если таблица слишком большая.

▫️Shuffle Hash Join - обе таблицы перемешиваются (Shuffle) по ключу. На каждой ноде строится хеш-таблица для одной из таблиц.
— подходит для больших таблиц, когда одна из них после фильтрации помещается в память.
— быстрее Sort-Merge для средних данных.
— риск spill на диск при нехватке памяти.

▫️Bucket Join - данные предварительно разбиваются на бакеты по ключу, затем джоин выполняется между соответствующими бакетами. Подходит для частых джойнов по одному ключу (ETL-пайплайны).

▫️Skew Join - добавление случайного префикса (соли) к «тяжелым» ключам для распределения нагрузки. Далее происходит динамическое разбиение: дробление партиций с skewed-ключами. Подходит для данных с сильным перекосом (например, 80% записей по одному ключу).

▫️Grace Hash Join - комбинация Hash Join и внешней сортировки. Если хеш-таблица не влезает в память, данные разбиваются на партиции и обрабатываются по частям. Подходит для очень больших таблиц, которые не помещаются в память.

❔Как выбрать алгоритм?
1 — смотрим на размер данных:
Небольшая таблица → Broadcast Join
Большие таблицы → Sort-Merge или Shuffle Hash
2 — смотрим на структуру данных:
Отсортированы → Sort-Merge
Skewed-ключи → Skew Join
3 — инфраструктура:
Spark → используйте хинты (BROADCAST, MERGE).
Реляционная СУБД → опирайтесь на планировщик и индексы.

❕Запомнить:
— Nested Loop и Hash Join - база для СУБД.
— Broadcast и Sort-Merge - основа для распределенных систем.
— Всегда анализируйте план выполнения (explain в SQL, df.explain() в Spark) + метрики (память, сеть).
03/28/2025, 12:47
t.me/eto_analytica/2158
Repost
7
14
373
👨‍💻Бот для подготовки к IT-собеседованиям
@DataismPrepBot

В базе уже 600+ реальных вопросов с собеседований (с ответами!)
Теперь готовиться к интервью стало намного проще.

Какие есть специальности:
✅Data analyst
✅Data Scientist
✅Data Engineer
✅Python Developer
✅Go Developer
✅System Analyst

Какие фичи в боте:
✅Возможность отслеживания статистики
✅Добавление вопросов в Избранное
✅Ссылки на доп.материалы для изучения
✅Экспресс-скрининг знаний

Бесплатно, без регистраций и смс 🤩

#поискработы
#бот
03/27/2025, 18:09
t.me/eto_analytica/2157
Repost
2
12
384
Тренировки по алгоритмам от Яндекса
https://yandex.ru/yaintern/training/algorithm-training

После регистрации приходит письмо с подготовительными лекциями на YT https://youtube.com/playlist?list=PL6Wui14DvQPz_vzmNVOYBRqML6l51lP0G&si=FdTT_WhXPNZnOx46
03/27/2025, 13:33
t.me/eto_analytica/2156
Repost
17
13
359
Недавний пост про джоины набрал много просмотров и репостов. Значит такая информация интересна.
Продолжим наваливать базу 🤝

Популярные вопросы с собесов (lvl junior):

1) В какой последовательности БД на самом деле выполняет команды запроса:

select distinct
from
join
where
group by
having
order by
limit
Ответ:
Порядок выполнения SQL-запроса:
1. FROM (и JOIN) – выбираются таблицы и соединяются
2. WHERE – фильтруются строки
3. GROUP BY – группировка данных
4. HAVING – фильтрация групп
5. SELECT – выбор полей (включая вычисляемые)
6. DISTINCT – удаление дубликатов
7. ORDER BY – сортировка результатов
8. LIMIT / OFFSET – ограничение вывода

Более удобный вид:
FROM → JOIN → WHERE → GROUP BY → HAVING → SELECT → DISTINCT → ORDER BY → LIMIT

2) UNION ALL vs UNION - в чем разница?

UNION ALL:
• Не удаляет дубликаты
• Работает быстро (простое объединение)
• Сохраняет исходный порядок строк
• Используется, когда важна скорость и нужны все данные

UNION
• Удаляет повторяющиеся строки
• Работает медленно - требует сортировки (ресурсозатратно)
• Может изменить порядок строк
• Используется, когда нужны уникальные записи


Также могут дать простую задачку:

Даны таблицы T1(col1, col2), T2(col1, col3).
Наполнение таблиц:

T1
(13, 15)
(13, 15)
(13, 15)

T2
(13, 15)
(13, 14)

Будет ли работать запрос? Если будет работать, то сколько строк вернет?

SELECT * FROM T1
UNION
SELECT * FROM T2

Ответ:
Будет работать если тип полей в таблицах одинаковый (но возможно некоторые СУБД итак могут сделать неявное преобразование).
Вернется 2 строки:
13 14
13 15

3) Отличие UPDATE TABLE от ALTER TABLE.
Немного странный вопрос, но в этом и прикол. Некоторые джуны на нем тупят 😄

UPDATE TABLE:
• Изменяет сами данные в таблице (строки)
• Пример: UPDATE users SET age = 30 WHERE id = 1;
• Тип операции - DML (Data Manipulation Language). Поэтому операции нужно COMMIT-ть или при необходимости можно откатить - ROLLBACK
• Блокирует строки (зависит от СУБД). *Про блокировки сделаю отдельный пост, тема непростая.

ALTER TABLE:
• Изменяет структуру таблицы (добавить/удалить/изменить поле, ограничение, партицию, переименование таблицы и тд.).
• Пример: ALTER TABLE users ADD COLUMN email VARCHAR(100);
• Тип операции - DDL (Data Definition Language). Авто COMMIT, откатить нельзя (но есть нюансы, зависит от СУБД)
• Может блокировать всю таблицу


Подскажите плз вам интересна эта тема? Предлагайте свои варианты почему можно навалить базы?


#Вопросы_с_собесов #база #sql #jun
03/27/2025, 11:55
t.me/eto_analytica/2155
Освойте продвинутые навыки работы с Битрикс24

Научитесь настраивать и управлять бизнес-процессами в системе Битрикс24 на открытом уроке «Построение логики запуска цепочек бизнес-процессов» от Otus

Рассмотрим ограничения и шаблоны бизнес-процессов Битрикс24

✅Практика: разберем сценарии запуска цепочки бизнес-процессов

Регистрация на урок 👇
https://clck.ru/3Jhp9K

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
03/27/2025, 08:06
t.me/eto_analytica/2154
Repost
4
10
351
Про AI автоматизацию в кодинге!
Моя задача проста — писать код меньше, а делать больше.

Что использую я:
1. Github Copilot Pro — очень удобно быстро что-то поправить.
Доступны разные модели, в том числе Sonnet 3.7.
2. CLINE + DeepSeek API — дешево, у меня даже получалось что-то сделать в полностью автоматическом режиме.
Потом DeepSeek стал очень популярным, и его API временно перестало работать.
Сейчас всё вернулось, но API работает медленно.
3. Мой бот дата инженера:
https://chatgpt.com/g/g-67dbef1047b48191951a514758f9ffc5-data-engineer-topdatalab

Думал про популярный Cursor, пока не прочитал сравнение:
👉 Сравнение Cursor vs CLine на Reddit

Кратко:
— Окно контекста больше у CLINE
— Нет API ограничений
— Но стоит дороже



Сейчас изучаю:
📘 Прокачка промптов в CLine

Хочу добиться ещё большей автоматизации в больших проектах! 🚀
03/27/2025, 07:12
t.me/eto_analytica/2153
Repost
10
322
03/26/2025, 19:08
t.me/eto_analytica/2149
Repost
10
336
03/26/2025, 19:08
t.me/eto_analytica/2151
Repost
10
331
03/26/2025, 19:08
t.me/eto_analytica/2152
Repost
10
10
308
🤖 Cursor vs Tableau
Не могу пропустить хайповую тему про вайб-кодинг. Попробовал использовать Cursor, чтобы создать интерактивный дашборд на базе Sample Superstore. На вход я дал ручную зарисовку макета, данные и описание, что хочу. Дальше шаг за шагом добавлял интерактивность, правил ошибки работы с данными и настраивал стили.

Ну что же, это правда работает. Работает сильно лучше чем 2 года назад и в 100 раз удобнее, чем если это делать просто вместе с ChatGPT в вебе или в виде приложения. Насколько это удобнее Copilot, я не знаю, его не пробовал.

Результат получился классный — он смог реализовать все мои требования, код исправлять руками пришлось раза 2-3 и раз 5 приходилось подсказывать ему логику почему у него возникали ошибки. Например, он долго тупил с парсингом дат и неправильно суммировал данные по месяцам, а иногда терял функционал, что уже добавил ранее. А ещё одни раз снёс всё вообще и оставил только CSS, пришлось откатывать код. В целом, я бы сказал, что количество ошибок прям небольшое. Ещё он даже смог сделать кнопку скачать в Excel зараза 😈

Заняло это всё 2.5-3 часа. С одной стороны довольно долго, с другой — КАМОН за это время получился рабочее веб-приложение, которое работает сильно быстрее Табло! А ещё получилась отличная мобильная версия.

Ещё я сделал тот же самый дашборд в Табло, это заняло 20 минут. Конечно это быстрее, но там нельзя сделать скругления для плашек =) Можете потыкать обе версии и сравнить как это всё работает.

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

Результаты
🤖 Cursor
🤓 Tableau

Круто, что такой результат получается не из-за новых моделей, а просто из удобного инструмента и агентов, которые использует всё те же модели от Anthropic и OpenAI

P.S. Ещё настоящие программисты (Вастрик) тоже пишут про вайб-кодинг. У меня сложились очень похожие выводы и ощущения в процессе работы.
#наблюдение
03/26/2025, 19:08
t.me/eto_analytica/2148
Repost
10
327
03/26/2025, 19:08
t.me/eto_analytica/2150
Repost
5
2
347
Прежде чем искать подвох в данных, стоит понимать работу собственного процессора. Когнитивные искажения — это систематические ошибки в восприятии и мышлении во время обработки информации. Они ведут к ложным суждениям, основывающимся на личных предпочтениях и эмоциях, а не на объективных данных.

Одним из искажений мозга называют предвзятость подтверждения (Confirmation bias). Это склонность замечать доказательства собственной точки зрения и игнорировать данные, которые ей противоречат.

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

Дальнейшие действия заведомо необъективны. Он выбирает ключевые метрики, которые могли бы выявить преимущества соцсетей, и собирает исторические данные только за период, когда соцсети были особенно успешны. В итоге компания направляет больше средств в соцсети, не зная реальной рентабельности каждого канала.

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

Чтобы быть менее предвзятым, попробуй:

1️⃣ Четко сформулировать вопрос бизнеса, гипотезу и цель сбора данных. Выработай привычки всегда допускать, что твои убеждения повлияли на результат.

2️⃣ Растождествить себя с точкой зрения. Задай себе вопросы: почему я так считаю? Основываюсь ли я на фактах?

3️⃣ Сыграть в игру: если бы я был не прав, какие факты могли указать на это? Ищи доказательства, опровергающие твое убеждение. Можно позвать коллегу-оппонента и выслушать его доводы.

#искажения
03/26/2025, 16:59
t.me/eto_analytica/2147
Как пройти секцию по АБ тестам на собеседовании?

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

- P-value, альфа, ошибка первого рода - это все одно и тоже?
- Как выбрать стат критерий?
- Почему за АБ тестами нельзя "подглядывать"?
- АА тест показал стат значимые отличия. Это норма?

Ответы на эти вопросы вы можете найти в канале Юрия Борзило, там уже собрано более 60 постов с разбором разных нюансов АБ тестирования, а также много постов о продуктовой аналитике. Если у вас есть сложности с АБ тестами, то в канале вы найдете много полезных материалов.
03/26/2025, 10:01
t.me/eto_analytica/2146
😂😂😂😂
03/26/2025, 06:06
t.me/eto_analytica/2145
Repost
6
7
501
Путеводитель для первого знакомства с FineBI

Собрала в одном месте все посты для тех, кто что-то пропустил, и для новых подписчиков.

День 1. Как быстро стартовать в FineBI?
День 2. Где обитают FineBI-щики
День 3. Полезняшки по датавизу и разработке дашборда
День 4. Мои советы новичку в FineBI
День 5. История о том, как я пришла к FineBI

#подборка #стартfinebi
03/25/2025, 15:28
t.me/eto_analytica/2144
📈Устали от рутинных отчетов в Excel? Хотите вывести свои навыки анализа данных на новый уровень? Настало время превратить хаос цифр в стратегические решения для бизнеса!

На обучении «Аналитик данных» вы освоите SQL, Python, BI-инструменты и научитесь визуализировать данные так, чтобы даже самые сложные отчеты стали эффективными для бизнеса. Программа включает реальные кейсы, практическое применение методов и работу со стейкхолдерами.

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

После курса вы сможете претендовать на роль аналитика и сократите ежедневную рутину до минимума.

👉Пройдите вступительное тестирование прямо сейчас и получите скидку на обучение: https://clck.ru/3JH52H

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
03/25/2025, 08:03
t.me/eto_analytica/2143
Repost
2
5
341
👉Как использовать UTF символы и эмодзи в дэшах

1. Легенды
■ для столбиков, ● для точек, | для отсечек (в буллет чартах), – для линий и -- пунктирных линий
Отлично комбинируется с легендой в тексте

2. Показать данные
▲▼ ↑↓ – рост/падение метрик
●○ – закрашенный vs незакрашенный для данных типа закрыто / открыто
★⚠ – отметить что-то важное

3. Для фильтров
🗓 – для фильтра по датам
🔎 – поисковый фильтр (где можно вводить текст)

4. Объяснялки
ⓘ – подсветить блок доп инфы
💡– важная/полезная информация
👆– кликабельный график (обычно пишу в тултипе)
🔗 – гиперссылка

5. Метафоры
Любые эмодзики, подходящие под данные, чтобы их было проще воспринимать. Тут главное не переборщить))
💻 – можно использовать для пометки удаленных сотрудников или онлайн заказов

Как включить символы и эмодзи на маке
03/25/2025, 07:49
t.me/eto_analytica/2142
Repost
13
29
404
Вопросы про джоины:

Буду делать серию постов про самые популярные вопросы по sql секции.
Я думаю, на любом собесе будут вопросы про джоины. Давайте разберем популярные вопросы/задачи:

1) Минимальное и максимальное количество строк в результате джоинов.

Допустим левая таблица t1 (поле id) – 100 строк, правая таблица t2 (id) – 10 строк

inner join:
Min – 0 строк. Если никаких пересечений нет, в двух таблицах нет одинаковых id.
Max – 1000 строк. Если в двух таблицах только одно значение (например, 1). Просто делаем перемножение.

left join:
Min – 100 строк. Если никаких пересечений нет, в результате будут все значения из левой таблицы.
Max – 1000 строк. Если в двух таблицах только одно значение. Делаем перемножение.

right join:
Min – 10 строк. Если никаких пересечений нет, в результате будут все значения из правой таблицы
Max – 1000 строк. Если в двух таблицах только одно значение. Делаем перемножение.

full join:
Min – 100 строк. Вот этот момент важно понять, на нем часто допускают ошибки. Минимальное количество при full join будет – количество строк из большей таблицы. Например, в левой таблице значения от 1 до 100, а в правой от 1 до 10.
Max – 1000 строк. Если в двух таблицах только одно значение. Делаем перемножение.

cross join:
Min и Max – 1000 строк. Делаем перемножение.

2) Сколько строк вернет операция FULL JOIN, если известно следующее:
INNER JOIN - 6 строк
LEFT JOIN - 10 строк
RIGHT JOIN - 12 строк

Давайте попробуем ее решить без запоминаний и просто понять.
Если вспомнить круги Эйлера (о их корректности будет отдельный пост):
FULL JOIN – это левая непересекающаяся часть + средняя пересекающаяся часть + правая непересекающаяся часть. Просуммируем эти три части:
FULL JOIN = (LEFT JOIN - INNER JOIN) + (INNER JOIN) + (RIGHT JOIN - INNER JOIN)
FULL JOIN = (10 - 6) + (6) + (12-6)
FULL JOIN = 16

Также если раскрыть скобки, то можно понять, что по сути
FULL JOIN = (RIGHT JOIN) + (LEFT JOIN) – (INNER JOIN) = 10 + 12 – 6 = 16

3) Заполнение результата после всех видов джоинов.
Такую задачу тоже часто дают, здесь важно не запутаться. Я приложил скрин с результатами джоинов, внимательно изучите. Особенно обратите внимание на результат соединения дублей и null-ов.

Расскажите какие у вас были интересные вопросы про джоины: 💭


#Вопросы_с_собесов
03/24/2025, 19:48
t.me/eto_analytica/2141
⚡ Мы подготовили для вас эксклюзивную подборку экспертных материалов по IT и HR!

📂 Внутри папки вас ждет:
🟠AI-HR-агент - помогает сделать крутую вакансию, проанализировать кандидатов, провести собеседование и подготовить подходящий под кандидата оффер.
🟠Владеет ли интервьюер достаточными навыками, чтобы оценить уровень владения ЛЛМ соискателем? Чек лист для интервьюера...
🟠Как провести исследования, когда ресурсов не хватает?
🟠И еще 40 полезных статей, которые прокачают ваши навыки, помогут трудоустроиться.

🔗 А сегодня делимся с вами статьей: «Полезные ссылки по дашбордам и датавизу».

🤝 Сохраняйте папку «IT & HR», изучайте материалы и выходите на новый уровень!

Ссылка на папку: https://t.me/addlist/nwOCtnp4eIJmOTUy
03/24/2025, 09:02
t.me/eto_analytica/2140
Пора на дело! Garage Eight ищут аналитиков для расследования преступления!

В их городе Дашборг (где обычно всё четко и структурировано, как на хорошем дашборде) случился сбой доставок, и все погрузилось в хаос.
Все заказы на пиццу внезапно исчезли, маршруты курьеров перепутаны, а пиццерии в панике. Кто-то намеренно стер данные! Теперь только крутые аналитики могут разобраться в этом цифровом хаосе. Может, это как раз ты? (¬‿¬ )

Мэрия Дашборга принесла все, что осталось от данных, и попросили помочь с расследованием:

Твои задачи (╭ರ_- ‌)
— восстановить пропавшие данные;
— вычислить преступника по цифровым следам;
— распределить компенсацию пострадавшим.


Прием решений: до 4 апреля
Проверка: с 4 апреля до 11 апреля
Объявление победителей: 14 апреля

Призы (^-^):
— годовой запас пиццы;
— 10 билетов на конференцию AHA;
— сертификат Ozon на 20 000 рублей;
— подписка на LeetCode и мерч для тех, кто был близок к разгадке.


В международной IT-компании Garage Eight верят, что аналитики — это настоящие герои. Чувствуешь, что можешь быть этим героем? Докажи!

Все детали и материалы для расследования здесь: @Dashborg_bot

Реклама, ООО «Гараж 8»
03/24/2025, 07:28
t.me/eto_analytica/2139
Repost
4
23
434
Что такое RFM-анализ и как он помогает сегментировать пользователей

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

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

В данном посте мы рассмотрим RFM-анализ.

Если вкратце мы разбиваем пользователей на сегменты на основе:

⌛️ R (Recency) - давности последней покупки (например, в днях)

🥳 F (Frequency) - общее количество покупок покупок.

🤑 M (Monetary) - сумма денег, потраченная пользователей.

Про присваиваемость сегментов:

1. Выбираем период анализа, например, последние 90 дней.

2. Определяется количество сегментов (обычно от 3 до 5 по одному из пунктов). Максимум X³ комбинаций, если делим каждую метрику на X частей.

Пояснение к п.2: Если у нас Monetary от 0 до 3000, а сегментов планируется 3, то трешхолды для определения сегментов: 1 - (0, 1000], 2 - (1000, 2000], 3 - (2000, 3000]. Аналогично и для других.

Пример сегмента на выходе: 111 - спящий, мало покупающий. 333 - частотник, много покупает и на большую сумму

3. По трешхолдам равномерно разбитым определяем сегменты

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

Подойдет не каждому бизнесу, так как важно количество пользователей, а их может быть недостаточно

😊 Дополнительные материалы:

1. link1
2. link2
3. link3

А вы применяете RFM-анализ? Как относитесь к данному методу сегментации?
03/23/2025, 18:05
t.me/eto_analytica/2138
🥴«Сделай красиво» — это не ТЗ. Как аналитикам работать с размытыми запросами?

Ваш руководитель просит «посчитать что-то важное», но не объясняет, что именно? Заказчики хотят «классный отчёт», но сами не знают, какие данные нужны? Сбор требований — ключевой навык аналитика данных. Если не задать правильные вопросы, работа уйдёт в пустоту.

На открытом вебинаре «Базовый сбор требований в работе дата-аналитика» 25 марта в 20:00 (мск):

- Разберём жизненный цикл аналитической задачи
- Узнаем, какие вопросы помогут прояснить ТЗ
- Освоим приёмы работы с заказчиком и защиты своих решений

⚡️Всем участникам подарим скидку на курс «Аналитик данных». Присоединяйтесь и научитесь превращать размытые запросы в чёткие решения: https://clck.ru/3JH2GF

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
03/23/2025, 08:22
t.me/eto_analytica/2137
Repost
11
20
469
Т-тест VS Манн-Уитни

Холивар эпохи во многих компаниях и сообществах) Лично я стою на стороне добра t-test. Для начала..

Чем плох тест Манна-Уитни?
Многие думают, что это критерий про равенство средних, но на самом деле это ранговый критерий про изменение распределения
H0: f_a = f_b
H1: f_a != f_b

В качестве частного (!) упрощения можно считать, что это критерий про сдвиг распределения
f_a = f(x)
f_b = f(x + dx)
H0: dx = 0
H1: dx != 0

И отсюда вытекает куча проблем

1. Теряется связь AB с финансами компании
Обычно мы подразумеваем что-то вроде
E(выручка) = E(траффик в приложении) * E(СR app start-заказ) * E(средний чек)

Ну и если мы АВ-тестом растим E(средний чек), а остальные множители серые, то мы автоматом влияем на выручку. Но зеленый прокрас по Манна-Уитни ничего не говорит про рост того самого E(средний чек) => ничего не говорит о росте E(выручка). А зачем тогда нужен АВ-тест, если мы не можем сказать в итоге, стали ли больше зарабатывать благодаря фиче?

2. Не работает с дублями значений метрики
Ну точнее формально во многих либах работает, но неправильно:) Критерий ранговый, а проставить ранг серии из одинаоквых значений (например 10К нулей) корректно нельзя. Поэтому с метриками вроде конверсии и ARPU (много нулей), стоимость доставки и средняя позиция кликнутого товара (в принципене много частотных значений) и многими другими критерий просто не применим

3. Слишком устойчив к выбросам
Нередко 1% самых активыз пользователей могут давать даже 20% выручки компании. Новой фичей мы могли вырастить у этих пользователей средний чек пусть на 2%. Это на минуточку +2% * 0,2 = 0.4% выручки компании. Для гигантов индустрии это могут быть дополнительные сотни миллионов рублей. При этом ранги значений метрики из-за этого могли вообще не поменяться: по тесту Манна-Уитни изменение серое

4. Не дружит с методами ускорения АВ
По сути, почти все методы ускорения АВ-тестов - это частный случай линейной регрессии. А она, как известно, не работает с рангами
Есть конечно ordinal regression, которую можно попытаться применить, но никаких статистических гарантий корректности уже не будет

5. Непросто считать необходимое число наблюдений для теста и MDE
Да, формулы тут нет. Придется моделировать: задача решаемая, но сильно сложнее, чем подставить пару чисел в готовую формулу

Всех этих минусов в самом обычном Т-тесте нет! У него есть и свои доп плюсы, но о них в следующий раз
Если интересно более длинный лонгрид, то у Авито есть достойная статья про минусы Манна-Уитни
Так что не усложняте, и пользуйтесь Т-тестом - это просто, корректно, ну и математически красиво 🧐

P.S. Для особо внимательных: Какая классическая ошибка в интерепретации теста Манна-Уитни изображена на картинке к посту? Взял ее на первой же странице гугла по запросу "Mann-Whitney"
03/22/2025, 18:10
t.me/eto_analytica/2136
Repost
7
1
480
Визуализация вредоносного ПО

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

Затем увлечение переросло в графику и научное программирование. Теперь вот погрузился в визуализацию, связанную с кибербезом 👨‍🎓

В науке и образовании визуализация позволяет объяснить сложные темы или выявить неявные закономерности 📕
Кибербез тут не стал исключением 👷

Например, Альдо Кортези далеко не первый, кто перевел бинарный код в графику.

Далее несколько стареньких статей об этом:

1️⃣ Визуализация двоичных файлов с помощью заполняющих пространство кривых

2️⃣ Визуализация энтропии в двоичных файлах

3️⃣ Вредоносное ПО

4️⃣ binvis[.]io — браузерный инструмент для визуализации двоичных данных

Посмотрите на примеры визуализации бинарных файлов: ELF, PE32 или PDF.

Выглядит, как минимум, красиво 🥹

#визуализация
03/22/2025, 06:25
t.me/eto_analytica/2135
HeadHunter + Python = реальный разбор рынка аналитиков

Увидели тут одно хорошее мероприятие – делимся!

Тимлид Wildberries рассказывает про тенденции на рынке аналитики, зарплаты, требования, конкуренцию и прочие полезные штуки + немножко на практике показывает, что такое Питон.

Длится всего час, а информации дают максимум.

📌 Дата: 25 марта в 19:00
📌 Эксперт урока: Даниил Носов, тимлид Wildberries и человек, который на своем опыте знает, как устроена аналитика изнутри.
📌 Что вас ждет:
— Попрактикуемся анализировать данные в Python;
— Разберем данные HeadHunter и выясним, что творится на рынке аналитики;
— Узнаем, какие зарплаты предлагают специалистам разных грейдов;
— Пообщаемся с экспертом лично.

🎁 Все участники получат подарки:
— Готовый код от эксперта
— Гайд «Data-driven подход»
— Скидка 40 000 рублей на обучение

Узнайте самое важное о рынке аналитики за 1 час 💥
Регистрируйтесь на открытый урок по ссылке: https://u.to/o-AvIg
03/21/2025, 15:04
t.me/eto_analytica/2134
Repost
4
6
359
🔑 Управление ожиданиями в BI проектах

Длиннопост написала тут, но перечислю основные идеи

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

🔍 2. Обговорите скоуп проекта.
Ограничения по данным, релистичные сроки, полезно описать, что в скоуп не входит.
И не обещайте раньше времени. Любое "возможно/может быть" от вас воспринимается как "да". Тут лучше пойти поресерчить и вернуться с ответом.

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

🛠️ 4. Приоритизируйте.
Начните с MVP, определите, что критично, а что нет. На доп правки объясните, как это изменит сроки и трудозатраты проекта.

💡 5. Проверяйте используемость и обучайте.
Научите пользоваться дэшами, время от времени опрашивайте и проверяйте используемость.

ps покажите эту картинку своему заказчику, может, проникнется)))
03/20/2025, 18:30
t.me/eto_analytica/2133
Repost
9
19
413
День 3. Полезняшки по датавизу и разработке дашборда

Сегодня отвечаем на самые животрепещущие вопросы начинающих BI-разработчиков.

🔹 Как выбрать график?
Используй карточки визуализации от DataYoga. Еще про выбор графика можно посмотреть здесь: Подборка чарт-чузеров

🔹 Как сделать график правильным и эстетичным?
Ознакомься с датавиз-стратагемами от DataYoga.

🔹 Как подобрать цвета?
Прочитай памятку о цвете в визуализации данных.

🔹 Как собрать требования для дашборда?
Используй шаблон Dashboard Canvas 2.0 и посмотри видеоролики на Youtube, добавленные на доску.

🔹 Из чего состоит процесс разработки дашборда?
Загляни на доску ДАО процесса разработки дашборда от DataYoga.

❓Интересно, что будет в следующем дне?
Ставь 🔥, если да!

#подборка #дашборд #стартfinebi
03/19/2025, 14:48
t.me/eto_analytica/2132
Repost
6
18
361
Котятки🐱, моя копилка чек-листов пополнилась - ниже очень подробные материалы по подготовке документации и передаче на техподдержку дашбордов в Power BI:
-дашборды (общая информация, визуальная часть, навигация): https://data-goblins.com/power-bi/report-checklist
-документация для передачи на поддержку модели данных: https://data-goblins.com/power-bi/dataset-checklist и тут https://data-goblins.com/dataset-checklist
-гайд для передачи ETL, если они сделаны внутри BI
-сервисные функции (ролевая модель, доступы, размещение, обучениеи пр https://data-goblins.com/power-bi/app-checklist)

Внутри - микс из чек-листов и описанию процессинга передачи на поддержку, с ключевыми вопросами, которые надо задать и себе как разработчику, и стороне поддержки.
03/19/2025, 06:33
t.me/eto_analytica/2131
Repost
5
9
476
Мок-собесы в СНГ вернулись, второй сезон!

Дабл-дроп видеозаписей в обновлённом формате.
Первое, про облака на джун+ - миддл
Второе про всё подряд на сеньора

🔸 Смотри
🔸 Тренируйся отвечать на вопросы
🔸 Комментируй
🔸 Делись с другими
🔸 И иди на собесы самостоятельно!

Пиши, если тоже хочешь потренироваться
Теперь бесплатно

S2E1 посмотри обязательно, чтобы увидеть что даже не на 100% готовым к собесам можно на них выйти и начать нарабатывать навык их прохождения

S2E2 посмотри обязательно, чтобы услышать первоклассный подход к ответам на незнакомые вопросы и рассуждения на основе опыта
03/18/2025, 12:45
t.me/eto_analytica/2130
Repost
24
24
468
Материалы для прокачки навыков в Polars для начинающих

Написал я пост про Pandas, теперь напишу про Polars, чтобы было логическое продолжение

🐼 Если вы работаете с большими данными и устали ждать, пока Pandas обработает ваш запрос, стоит попробовать Polars.

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

❓ С чего начать?

1. Официальная документация – базовые концепции и API docs.pola.rs

2. Подробный гайд по Polars с примерами – разбор синтаксиса и возможностей Polars Book (GitHub)

3. Работа со строками в Polars – как делать обработку текстов, разбирать email-адреса, чистить данные и т.д. Статья на Towards Data Science

4. Шпаргалка в Jupyter Notebook – можно сразу потыкать основные команды Cheat Sheet

5. Шпаргалка в PDF (с визуализацией для лучшего усвоения) - PDF Cheat Sheet

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

❤️‍🔥 Наберем 100 реакций, выложу такую же подборку по PySpark

Используете ли вы Polars? Пишите в комментариях

#дляначинающих@zasql_python
03/18/2025, 07:53
t.me/eto_analytica/2129
Repost
6
32
439
Материалы для прокачки навыков в pandas для начинающих 🐼 [ч. 1]

Хотите прокачаться в pandas, но не знаете, с чего начать? Собрал полезные инструменты, шпаргалки и ресурсы, которые помогут вам разобраться во всем шаг за шагом!

Можно основные операции потыкать на этом сайте (сводные таблицы, join'ы, сортировки и др.)

Есть официальная документация с быстрым стартом (как устроены данные, как создавать чарты, сводники)

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

У Яндекс Образования в курсе по Python: блок по pandas

Шпаргалки по pandas (если нужно освежить быстро в памяти):

1. link1
2. link2
3. в одном PDF, во втором PDF, в третьем PDF

Была ли вам интересна подборка? Какие материалы помогли вам лучше всего разобраться в pandas? Делитесь в комментариях! А если пост соберёт 100 реакций, выложу следующую подборку с практическими задачами 😏

#дляначинающих@zasql_python

UPD:
https://dfedorov.spb.ru/pandas/
03/18/2025, 07:53
t.me/eto_analytica/2128
Repost
9
9
416
Bare Minimum Monday

Половина рабочего дня уже позади, а еще ничего не сделано? Предлагаю еще немного почиллить и почитать эту статью.
Вкратце, в статье психолог приводит преимущества "понедельника с минимальными усилиями" (Bare Minimum Monday). Он предлагает начать неделю с выполнения только самых необходимых задач, чтобы снизить уровень стресса и избежать выгорания. Такой подход помогает лучше распределить энергию и повысить продуктивность в течение всей недели.
Основные идеи:
— Снижение стресса: Начав понедельник с простых дел, можно уменьшить чувство перегрузки и тревожности.
— Улучшение настроения: Постепенное погружение в рабочие задачи позволяет настроиться на более позитивный лад.
— Управление энергией: Сохраняя силы для важных дел позже, человек может быть более эффективным в долгосрочной перспективе.
— Предотвращение выгорания: Постепенный вход в рабочую неделю снижает риск эмоционального истощения.
— Психологическая подготовка: Легкий старт помогает легче адаптироваться к рабочим обязанностям после выходных.

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

Как быстро вливаетесь в рабочий процесс после выходных? 🥺
03/17/2025, 16:14
t.me/eto_analytica/2127
Repost
4
15
352
✨ Кузьма Лешаков — Разгоним запросы: как быстро готовить ClickHouse

Сложность: 1/3 (для тех, кто знаком с Clickhouse)

Кому будет интересно:
В докладе рассказывают про индексацию, проекции и шардирование в Clickhouse. Про индексы очень интересно послушать, но вот про шардирование и проекции - слишком просто. Но если с Clickhouse не работали (или не использовали проекции/работали с одним шардом), то для знакомства - доклад в самый раз.

---
Ссылка на выступление: https://youtu.be/COBEEbozRqw?si=Qdtfv1lN68EaVPqh
или
https://vkvideo.ru/video-147464741_456239336

---

✨ Кузьма Лешаков — Разгоним запросы: как быстро готовить ClickHouse

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

---

🔍 Основные моменты:

1️⃣ Индексация в ClickHouse:
- Первичный индекс: Создается явно или неявно (через ORDER BY). Рекомендуется использовать 2-3 колонки с возрастающей кардинальностью.
- Вторичные индексы:
- Фильтр Блума:
- Вероятностная структура данных, которая гарантирует отсутствие элемента, но не его наличие.
- Пример: Определение наличия IP-адреса в спам-списке. Без фильтра Блума используется 100 миллионов строк, с фильтром — 32,77 тысячи строк.
- Размер индекса: 74 МБ после компрессии, 100 МБ до компрессии.
- Фильтр МинМакс:
- Фиксирует минимальное и максимальное значение для каждой гранулы.
- Требует корреляции с первичным ключом.
- Пример: Подсчет общего количества просмотров по колонкам response_start и response_end. Без фильтра МинМакс используется 100 миллионов строк, с фильтром — 65 миллионов.
- Размер индекса: 0,01 МБ после компрессии, 0,005 МБ до компрессии.
- Индекс Сет:
- Фиксирует уникальные значения в каждой грануле.
- Подходит для колонок с низкой кардинальностью.
- Пример: Подсчет хитов просмотров с условиями по браузеру. Без индекса Сет используется 100 миллионов строк, с индексом — 41,91 тысяча строк.
- Размер индекса: 0,24 МБ после компрессии, 0,14 МБ до компрессии.

Преимущества вторичных индексов:
- Ускоряют выполнение запросов.
- Нет ограничений по количеству индексов на таблицу.

Недостатки вторичных индексов:
- Занимают дополнительное место, особенно фильтры Блума.
- Могут замедлять вставку данных.
- Требуют вдумчивого подхода: неграмотное использование может замедлить ClickHouse.


2️⃣ Проекции:
- Проекции — это скрытые подтаблицы, которые помогают ускорить запросы, особенно при изменении ключа сортировки или предагрегации данных.
- Пример: создание проекции для агрегации данных по user_id.

ALTER TABLE hits
ADD PROJECTION hits_avg_users (
SELECT
user_id,
count(*)
GROUP BY user_id
)

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

3️⃣ Шардирование:
- Шардирование позволяет распределить данные между несколькими хостами, что повышает производительность и отказоустойчивость.
- Ключ шардирования: Определяет, как данные распределяются между хостами.
- Недостатки: Требует дополнительных вычислительных мощностей и ручной ребалансировки при добавлении новых хостов.

4️⃣ Оптимизация запросов:
- Первичный ключ: Основной способ ускорения запросов.
- Индексы пропуска данных: Ускоряют запросы, но могут замедлять вставку данных и занимать дополнительное место.
- Проекции: Эффективны для предагрегации, но требуют много места.
- Шардирование: Позволяет преодолеть ограничения одного хоста, но требует дополнительных ресурсов.

---

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

P.S. Пожалуйста, делитесь постом с коллегами. Для нас это очень важно)
03/17/2025, 11:53
t.me/eto_analytica/2126
Repost
6
8
371
Pre-Commit Хуки: Твой код скажет тебе спасибо!
Или как не отправить в прод кривой SQL и забытые импорты

Программируете ли вы профессионально или в качестве хобби - умение писать качественный код стоит оттачивать.
Все мы, люди, совершаем ошибки, и это нормально.
Совершенство не цель, но постоянное улучшение - да.
В профессиональной среде после завершения проекта ваш код обычно проверяет коллега.
Но что, если такого человека рядом нет, чтобы помочь исправить недочёты?
Тут в игру вступают pre-commit хуки.

По сути, pre-commit hook - это программа, которая автоматически запускается в вашем репозитории при выполнении команды git commit в терминале.
В зависимости от типа хука, он проверяет ваш код на ошибки или нарушения правил, которые он запрограммирован находить.
Эти хуки работают через Python-пакет pre-commit.
Подробнее о нём можно узнать на официальном сайте pre-commit.
Настроить хуки очень просто. В вашем репозитории:

📦 Ставим пакет: pre-commit.
📄 Создаём файлик .pre-commit-config.yaml в корне проекта.
✨ Копипастим туда магию (пример ниже ↓).
🚀 Запускаем: pre-commit install - готово!

Теперь при каждом коммите хуки будут автоматически проверять и исправлять код.

repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v2.3.0
hooks:
- id: check-yaml
- id: end-of-file-fixer
- id: trailing-whitespace

🛠 Топ-5 Хуков, Без Которых Ты Не Выживешь

1. isort
Что делает: Раскладывает твои import ... по полочкам:

• Стандартные библиотеки →
• Сторонние →
• Твои модули.

До: import sys, pandas, my_module (хаос!)
После: Все по PEP.

2. black
Что делает: форматирует код автоматически. Не спорит, не спрашивает - просто делает код красивым и читаемым.
Пример: превращает мешанину с кривыми отступами в аккуратные блоки с правильными пробелами.

3. ruff
Что ловит:

• Неиспользуемые переменные (типа x = 10, который ты так и не вызвал),
• Нарушения PEP8 (да, он знает, где поставить пробел).

4. sqlfluff
Что делает: Форматирует SQL-запросы, проверяет синтаксис и стиль.

5. mypy
Что проверяет: Проверяет типы данных. Если функция должна возвращать str, а вы пишете int - он вас остановит.

Зачем это надо?
• Меньше конфликтов в Git (код в одном стиле у всей команды),
• Спасает от я потом исправлю — исправляет сразу,

А какие хуки используете вы? Делитесь в комментариях!

@data_whisperer
03/17/2025, 07:25
t.me/eto_analytica/2125
Repost
9
2
409
В целом опыт на три с плюсом, почти четыре.

Сначала про плюсы. Очень приятный интерфейс. Cursor конечно монстр UI/UX. Очень простое погружение и онбординг. Самое главное: это работало. Если claude code agent за два часа работы не приблизил меня к желаемому результату, то здесь наблюдается прогресс. То, что осталось после часа работы, гораздо лучше, чем ничего. Cursor гораздо лучше понимал целевой вайб. В целом прикольно.

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

Самый неприятный момент (начинается около 57 минуты) был когда ассистент написал вызов трех методов:
1. Распарсить категории.
2. Распарсить изображения.
3. Распарсить аннотации.

Странность там была уже в том, что первые два метода, как и ожидается, парсили дикты и возвращали питон объекты. А третий почему-то ничего не возвращал, а делал что-то внутри себя. Это очень нечеловеческий и неинтуитивный способ написать кусок кода: две вещи работают так, а третья, функционально такая же, в другой парадигме. Закопавшись внутрь я понял, что ассистент написал третью функцию с сайд эффектом. То есть она не возвращала то, что распарсила, а сразу куда-то записывала. Это снова проблема непослушания: я прописал в правилах, что ожидаю функции и методы которые делают одну вещь без сайд эффектов, но модель решила подзабить на это.

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

Я смотрю в код и не понимаю как так может быть. То есть аннотации парсятся, результат записывается в переменную, а потом она нигде не используется. Её даже VSCode подсвечивает: смотри, этот кусок кода не нужен.

Получается мы распарсили аннотации, потом просто выбросили их, а тесты всё равно проходят. Не должно работать, но работает – очень плохая ситуация. Значит или тесты неправильные, или код работает не так, как мне кажется. Оказалось второе. На самом деле вторая функция, которая парсила изображения, уже записывала всё куда нужно. То есть она выглядела будто там нет сторонних эффектов, будто это правильная "делаю одну вещь" функция, а на самом деле это была подстава 👀.

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

Дело так же в качестве. Я поймал эту проблему только потому, что у меня очень четкое представление о том, что я хочу получить. И то она вскрылась случайно. Как много программистов заботятся о том, чтобы каждая функция делала одну вещь? Может процентов десять. Как много не-программистов/вайбкодеров? Ноль. Значит 90% программистам и 100% вайбкодерам Cursor поможет написать код со скрытым приколом 🙄. В общем готовьтесь через пару лет поддерживать чье-то курсорное легаси где возможно всё и в любом куске кода может обнаружиться пасхалка.

В общем смешанные ощущения. Но скорее положительные. Однако точно не идет речи ни о каком "В 100Х РАЗ ЛУЧШЕ ПРОГРАММИСТЫ НЕ НУЖНЫ!1!11" Я напоминаю, что мы тут всё ещё пытаемся прочитать JSON с диска.
03/16/2025, 06:49
t.me/eto_analytica/2124
Repost
3
2
402
# Vibecoding vs pycocotools часть II: Cursor

Недавно я проверил, может ли Claude Code Agent написать для нас небольшую Python библиотеку: pycocotools здорового человека. Он не смог.

Сегодня я проверил, может ли Cursor. Задача была ослаблена до того, может ли Cursor в autocomplete режиме (на агентов пока надежды нет) помочь мне написать эту библиотеку быстрее, чем я написал бы сам.

Я записал час вайбкодинга на видео (сам вайбкодинг начинается с 20 минуты).

Как и в прошлый раз можно посмотреть как и куда я пришел в этом репозитории (только не забудьте смотреть в ветку `cursor`):
https://github.com/btseytlin/sane-coco/tree/cursor

Ниже опишу свои выводы
03/16/2025, 06:49
t.me/eto_analytica/2123
Repost
8
23
389
🚀 С чего начать погружение в профессию проектного менеджера

❓ С чего начать? Что посмотреть, изучить, почитать?

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

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


👆🏻Изучить

1️⃣ Хорошим стартом будет прохождение общего вводного курса лекций, желательно с возможностью живого взаимодействия с лектором и получения фидбека. Вариант предзаписанных лекций не всегда эффективен для новичков.
2️⃣ Изучите Scrum guide. Можно пройти по плану моей подготовки к сертификации PSM.
3️⃣ Разберитесь, что такое Канбан. Хороший старт — книга Алексея Пименова Канбан Метод. Для дальнейшего погружения можно пройти у него тренинг.
4️⃣ Изучайте управление людьми и развивайте понимание специфики работы в разных областях (дизайн, разработка, строительство и т.п.), чтобы понимать отличия и особенности управления проектами.
5️⃣ Следующим шагом можно пройти курс Google Project Management: Professional Certificate.


✌🏻Посмотреть

🔸 Записанные видео-лекции Ивана Селиховкина или его youtube канал.
🔸 Много хороших видео на youtube канале Неогенды. Например, интервью с Ильей Павлюченко.
🔸 Отдельные видео с youtube канала Максима Дорофеева.
🔸 Интервью Владимира Тарасова.


🤟🏻Почитать

🔹 Патрик Ленсиони — Пять пороков команды, Идеальный командный игрок
🔹 Том ДеМарко — Deadline. Роман об управлении проектами
🔹 Элияху Голдратт — Цель, Цель-2
🔹 Ицхак Адизес — Идеальный руководитель
🔹 Николай Товеровский — Управление проектами, людьми и собой
🔹 Максим Дорофеев — Джедайские техники

#work #career #education #management #projectmanagement
03/15/2025, 19:53
t.me/eto_analytica/2122
Repost
4
1
279
Пользова повторов

Понравилась статья Игоря Штанга про пользу повторов. Правила дизайна говорят нам о том, чтобы всякие повторы выносить за скобки. Например, не дублировать значение процента (%) в каждой строчке, а указать в заголовке.

И все же некоторые повторы полезны, особенно для таблиц с несколькими метриками.

Избавляясь от повторов, проверяйте, не стал ли ваш текст и дизайн менее понятным.
03/14/2025, 06:36
t.me/eto_analytica/2121
Repost
5
3
406
# Нечего добавить? Не усложняй

Не знаю отчего, но очень популярен такой паттерн:

try:
do_thing()
except Exception as e:
logging.error("Doing thing failed")
return None

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

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

Причем это не только про Python. Думаю у всех такое было, что на каком-нибудь сайте вылетает: "Что-то пошло не так!" Давай, детектив, разгадай в чем проблема.

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

Возможно есть какое-то суеверие, что у пользователя будет разрыв мозга если он увидит "exception KeyError(...)" вместо "Произошла ошибочка 😳🥰." Однако второй вариант ни капли не понятнее первого!

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

Существуют очень редкие случаи когда нельзя показывать ошибки из соображений безопасности. Это исключения.

🔹🔹🔹

Просто верни ошибку как есть. Не усложняй.

Перезапись ошибки другой информацией имеет смысл только если это лучше помогает решить проблему. 🤪
03/13/2025, 07:43
t.me/eto_analytica/2120
27го марта в ~19:00 мск пройдет dbt митап.

Среди тем: организация тестирования в dbt, применение great expectation для валидации данных, обсуждение инкрементальных обновлений и использование duckdb. В общем, будет интересно)

Присоединяйтесь
03/12/2025, 19:26
t.me/eto_analytica/2119
Repost
3
1
450
Привет! Стартуем новый проект для любителей опенсорса: помогаем меинтейнерам и контрибьюторам найти друг друга.

Как оно работает?
- В данном канале меинтейнеры разных Python проектов (от CPython, mypy, Litestar до taskiq) могут в любой момент выложить простые задачки, чтобы люди могли принять участие в разработке их проекта
- Если вы хотите поработать над задачкой – напишите в самой задаче на гитхабе: "Can I work on this?", получите подтверждение меинтейнера и приступайте
- Делитесь успехами / задавайте вопросы в нашем чате @opensource_findings_chat

Если вы меинтейнер какого-то крупного проекта (>= 100 ⭐), то пишите в чат – вас добавят как админа, чтобы вы смогли постить в канал свои задачи. Чем больше – тем лучше, не забывайте ставить тег своей технологии.

Всем хорошего опенсорса!
03/12/2025, 12:37
t.me/eto_analytica/2118
Repost
4
19
312
Подписчик прислал мне интересную задачку с stratascratch.com, и я не могла устоять, чтобы не решить её.
Нужно найти самый дешёвый путь между городами, учитывая варианты с пересадками (до двух).

📌 Дано:
Есть таблица da_flights, в которой:
✈️ origin – пункт отправления
✈️ destination – пункт назначения
✈️ cost – стоимость перелёта

Чтобы найти маршруты с пересадками, нам нужно соединить таблицу саму с собой (self-join).

🛠 Решение

1️⃣ Прямые рейсы (без пересадок) — просто берём origin, destination, cost.

2️⃣Рейсы с одной пересадкой — соединяем таблицу саму с собой (JOIN), где f1.destination = f2.origin. Это значит, что первый рейс прилетает в город, из которого отправляется второй.

3️⃣ Рейсы с двумя пересадками — соединяем таблицу трижды (JOIN), добавляя ещё один уровень соединения (f2.destination = f3.origin).

4️⃣Объединение всех маршрутов:
Используем UNION для объединения всех трех типов маршрутов (прямые, с одной и двумя пересадками).

5️⃣Группируем GROUP BY origin, destination и выбираем минимальную цену MIN(total_cost). Жаль нельзя по таким ценам реально на морюшко улететь 🌊🌊🌊

6️⃣Сортируем результат по городу отправления и городу назначения.

Создадим табличку с данными:
import pandas as pd
from pandasql import sqldf

data = {
'id': [1, 2, 3, 4, 5, 6],
'origin': ['SFO', 'SFO', 'SFO', 'DFW', 'DFW', 'JFK'],
'destination': ['JFK', 'DFW', 'MCO', 'MCO', 'JFK', 'LHR'],
'cost': [500, 200, 400, 100, 200, 1000]
}

da_flights = pd.DataFrame(data)
Ну и сам основной запрос:
query = """
SELECT
origin,
destination,
MIN(total_cost) AS min_price
FROM (
-- Прямые рейсы
SELECT origin, destination, cost AS total_cost
FROM da_flights
UNION
-- Рейсы с одной пересадкой
SELECT f1.origin, f2.destination, f1.cost + f2.cost AS total_cost
FROM da_flights f1
JOIN da_flights f2 ON f1.destination = f2.origin
UNION
-- Рейсы с двумя пересадками
SELECT f1.origin, f3.destination, f1.cost + f2.cost + f3.cost AS total_cost
FROM da_flights f1
JOIN da_flights f2 ON f1.destination = f2.origin
JOIN da_flights f3 ON f2.destination = f3.origin
) AS all_flights
GROUP BY origin, destination
ORDER BY origin, destination
"""

result = sqldf(query)
print(result)

Большое решение, но если по частям разобрать, то разобраться проще. Для этого вот вам ноутбук с этим скриптом. экспериментируйте!
Ну и всем отдыха на море в этом году! 🏖🏖🐠🌊
03/12/2025, 10:51
t.me/eto_analytica/2117
Repost
8
333
03/12/2025, 06:44
t.me/eto_analytica/2116
Repost
5
8
339
Про нейминг дэшбордов от Aurélien Vautier📝

Простая формула:
- На чем фокус дэшборда?
- О чем он в целом?
- Для чего он был сделан?
- Как мы решаем задачу?

Мне последнее время оч нравится названия с чатгпт придумывать, можно ему как раз такую схему и дать.
03/12/2025, 06:44
t.me/eto_analytica/2115
Search results are limited to 100 messages.
Some features are available to premium users only.
You need to buy subscription to use them.
Filter
Message type
Similar message chronology:
Newest first
Similar messages not found
Messages
Find similar avatars
Channels 0
High
Title
Subscribers
No results match your search criteria