В последнее время я плотно засел за метрики, и больше всего меня цепляет вот этот момент:
Давайте объясню, как это работает — на простом примере.
Возьми любой продукт, который раздражает конкретно тебя. Кривое, по-твоему мнению, меню, кнопки не на тех местах и мысль: «ну зачем они так сделали, это же бред».
А по факту часто оказывается, что именно так удобно огромной массе людей, которые пользуются продуктом и платят за него. И это не догадка — это абсолютно точно проверено🥵 .
Чаще всего готовый продукт докручивают через A/B-тесты вкупе с разными метриками.
Если говорить про A/B-тесты простым языком:
При таком подходе побеждает не тот вариант, который субъективно красивее, а тот, у которого цифры выше. Победивший вариант потом раскатывают на всех пользователей⌨️ .
Вот именно из-за этого, кстати, ту самую хронологическую и последовательную стену (Дуров, верни стену ) в социальной сети в один момент переключили на «умную с рекомендациями».
Тебя не спрашивали, будет ли это удобно — спрашивали цифры. И эти цифры показали, что так люди залипают в ленте дольше🥸 .
И вот тут, как раз, спрятана главная мысль поста: одна жалоба «мне неудобно, вы сломали интерфейс» — это обычно один голос против сотен, тысяч, десятков тысяч тихих успешных использований.
Именно это, на мой взгляд, может убить ламповость приложения, но зато оно сможет существовать и выполнять свою функцию, вместо удаления из-за его экономической нецелесообразности😐 .
Отсюда неприятный, но зато реальный вывод. Это объясняет, почему любимое приложение иногда портится именно для тебя. Если ты пользуешься им не как все, а глубже, по-своему, — для метрик приложения твои действия это скорее погрешность, а не массовый паттерн. И в момент оптимизации под типичного пользователя, это приложение тихо уезжает от тебя. Не из-за того, что на тебя забили, а потому что ты — один, а типичных пользователей кратно больше.
Но, несмотря на такую «жестокую» реальность у метрик, которые лежат в основе A/B-тестов, есть слабое место, про которое легко забыть:
Ну и, именно поэтому, на мой взгляд, есть опенсорсные проекты, которые можно кастомить под себя любимого. И еще сейчас появился ИИ, который может помогать собирать свои приложения так, как это нравится тебе, исходя из твоих целей.
Что с этим делать тебе? В следующий раз, когда какой-то продукт будет раздражать, вместо «как же тупо это сделано» спроси у себя: под какого пользователя это настраивали и зачем? Потому что почти за каждым «глупым» решением стоит чей-то анализ.
Да и вообще, всё не так фатально, на самом деле, я думаю, что этот нарратив хорошо просматривается в моём посте.
P.S. Если у тебя есть друг, который постоянно бомбит, что обновление любимого приложения всё испортило, — перешли ему этот пост. Тут объяснение🤯 .
#статья 📚
Продукты, которыми пользуются, подгоняют не под тебя конкретно, а под массу пользователей. И не с помощью вкусовщины или гениальности владельца, а на холодных цифрах🤡 .
Давайте объясню, как это работает — на простом примере.
Возьми любой продукт, который раздражает конкретно тебя. Кривое, по-твоему мнению, меню, кнопки не на тех местах и мысль: «ну зачем они так сделали, это же бред».
А по факту часто оказывается, что именно так удобно огромной массе людей, которые пользуются продуктом и платят за него. И это не догадка — это абсолютно точно проверено
Чаще всего готовый продукт докручивают через A/B-тесты вкупе с разными метриками.
Если говорить про A/B-тесты простым языком:
Одной половине пользователей показывают вариант интерфейса A, другой — вариант интерфейса B. Потом продуктовый аналитик смотрит, на каком варианте люди дольше задерживаются, чаще покупают, реже уходят🔨 🔨 🔨 .
При таком подходе побеждает не тот вариант, который субъективно красивее, а тот, у которого цифры выше. Победивший вариант потом раскатывают на всех пользователей
Вот именно из-за этого, кстати, ту самую хронологическую и последовательную стену (
Тебя не спрашивали, будет ли это удобно — спрашивали цифры. И эти цифры показали, что так люди залипают в ленте дольше
И вот тут, как раз, спрятана главная мысль поста: одна жалоба «мне неудобно, вы сломали интерфейс» — это обычно один голос против сотен, тысяч, десятков тысяч тихих успешных использований.
Именно это, на мой взгляд, может убить ламповость приложения, но зато оно сможет существовать и выполнять свою функцию, вместо удаления из-за его экономической нецелесообразности
Отсюда неприятный, но зато реальный вывод. Это объясняет, почему любимое приложение иногда портится именно для тебя. Если ты пользуешься им не как все, а глубже, по-своему, — для метрик приложения твои действия это скорее погрешность, а не массовый паттерн. И в момент оптимизации под типичного пользователя, это приложение тихо уезжает от тебя. Не из-за того, что на тебя забили, а потому что ты — один, а типичных пользователей кратно больше.
Но, несмотря на такую «жестокую» реальность у метрик, которые лежат в основе A/B-тестов, есть слабое место, про которое легко забыть:
Они улучшают ровно то, что ты выбрал улучшать и измерять. Поставишь целью «среднее время пользователя в приложении» — получишь продукт, который это время сожрёт, даже если человеку станет хуже от этого. Цифра вырастет, продукт — испортится. Поэтому половина работы продуктового аналитика — не «посчитать», а выбрать правильную метрику☺️ .
Ну и, именно поэтому, на мой взгляд, есть опенсорсные проекты, которые можно кастомить под себя любимого. И еще сейчас появился ИИ, который может помогать собирать свои приложения так, как это нравится тебе, исходя из твоих целей.
Что с этим делать тебе? В следующий раз, когда какой-то продукт будет раздражать, вместо «как же тупо это сделано» спроси у себя: под какого пользователя это настраивали и зачем? Потому что почти за каждым «глупым» решением стоит чей-то анализ.
Такой подход вряд ли изменит то, что тебе не нравится, но зато поможет понять что-то для своих будущих проектов или профессии👥 👥 .
Да и вообще, всё не так фатально, на самом деле, я думаю, что этот нарратив хорошо просматривается в моём посте.
P.S. Если у тебя есть друг, который постоянно бомбит, что обновление любимого приложения всё испортило, — перешли ему этот пост. Тут объяснение
#статья 📚
Please open Telegram to view this post
VIEW IN TELEGRAM
Чем больше занимаюсь чем-то своим, тем больше убеждаюсь в одной мысли — хочу её зафиксировать и поделиться c вами 🫂 🫂 .
Сейчас, когда ИИ уже умеет генерировать почти всё, что угодно, цена обычного и простого контента «как у всех» — стремительно падает.
Гладкий безликий пост может выдать кто угодно за 1 минуту. Это даже автоматизируют, называя нейропостингом. Если честно, формулировка жутковатая🌚 .
Но не всё так плохо, потому что есть то, что не подделаешь и не автоматизируешь.
Это твой контекст и то, как думаешь именно ты: твой реальный опыт, твои наблюдения, то, на что ты обратил внимание, пока кто-то другой прошёл мимо.
И тренд, как мне кажется, идёт ровно туда — на настоящность. Не на «тонны контента», а на «свой индивидуальный контент». Не на отполированную общеизвестную теорию, а на живую мысль конкретного человека. Поэтому страха от развития ИИ — у меня практически нет.
Кстати, люди, которых я читаю, также говорят про это в той или иной форме😁 .
В итоге, можно вынести простой принцип: чем больше сгенерированного и автоматизированного контента, тем дороже то, что идёт от тебя настоящего.
Это единственное, что нельзя скопировать — и в долгую оно будет только дорожать.
Поэтому, кстати, я стараюсь писать тут не только о чем-то техническом, но и транслировать свой взгляд на мир🌐 .
P.S. Если мысль откликается — закиньте реакцию на пост. Если нет — с интересом почитаю комментарии🤯 .
#лайф 🤝🏻
Сейчас, когда ИИ уже умеет генерировать почти всё, что угодно, цена обычного и простого контента «как у всех» — стремительно падает.
Гладкий безликий пост может выдать кто угодно за 1 минуту. Это даже автоматизируют, называя нейропостингом. Если честно, формулировка жутковатая
Но не всё так плохо, потому что есть то, что не подделаешь и не автоматизируешь.
Это твой контекст и то, как думаешь именно ты: твой реальный опыт, твои наблюдения, то, на что ты обратил внимание, пока кто-то другой прошёл мимо.
И тренд, как мне кажется, идёт ровно туда — на настоящность. Не на «тонны контента», а на «свой индивидуальный контент». Не на отполированную общеизвестную теорию, а на живую мысль конкретного человека. Поэтому страха от развития ИИ — у меня практически нет.
Кстати, люди, которых я читаю, также говорят про это в той или иной форме
В итоге, можно вынести простой принцип: чем больше сгенерированного и автоматизированного контента, тем дороже то, что идёт от тебя настоящего.
Это единственное, что нельзя скопировать — и в долгую оно будет только дорожать.
Поэтому, кстати, я стараюсь писать тут не только о чем-то техническом, но и транслировать свой взгляд на мир
P.S. Если мысль откликается — закиньте реакцию на пост. Если нет — с интересом почитаю комментарии
#лайф 🤝🏻
Please open Telegram to view this post
VIEW IN TELEGRAM
Привет! Меня зовут Лёша, и это Math and Code 🖥
🧊 Пишу про математику, код и аналитику — и про то, как из всего этого получается что-то полезное: в работе, в проектах, в мышлении.
🧊 Разбираю темы, на которых сам спотыкался, и показываю, что делаю руками: боты, приложения, инфраструктуру, аналитику. Не всё выходит с первого раза — где-то ломается код или перестает работать инфраструктура, где-то не взлетает идея. Это я тоже показываю, так честнее, чем делать вид, что всё получается с наскока.
🧊 Без историй про быстрые деньги, без «вход в IT за месяц» и без прочего инфо-шума.
Сейчас канал больше тянет в аналитику, но математику и код не бросаю — без них в аналитике никуда.
С чего начать читать Math and Code:
📎 Почему математика, код и аналитика — одна цепочка
📎 Данные сами по себе ничего не значат
📎 Как продукты докручивают через метрики и A/B-тесты
📎 Что я понял за 2 года в аналитике
📎 Задача про день рождения Шерил
📎 Таймтрекер в Telegram
📎 Честно: бот не взлетел
Кстати, вся навигация по постам — здесь.
Что можно сразу потестировать (этот список будет расти ):
💾 Таймтрекер — @TimeTrackerTGBot
💾 Бот для деловой переписки — @TextHelperTGBot
Я наконец-то сделал хороший общий закреп, а также пересобрал всю навигацию по постам.
Добро пожаловать👥 👥
#навигация 📝
Сейчас канал больше тянет в аналитику, но математику и код не бросаю — без них в аналитике никуда.
С чего начать читать Math and Code:
Кстати, вся навигация по постам — здесь.
Что можно сразу потестировать (
Я наконец-то сделал хороший общий закреп, а также пересобрал всю навигацию по постам.
Добро пожаловать
#навигация 📝
Please open Telegram to view this post
VIEW IN TELEGRAM
1 26 16 11 7 4 2
Антифрод ловит 99% нарушителей и ошибается лишь на 1% честных юзеров.
Тебя забанили перманентно — звучит как приговор. Но значит ли это, что ты точно нарушил🌚 ?
Разберём такой кейс. Сейчас, во время дикого развития антифрод-систем и автоматических банов — будет очень актуально, на мой взгляд.
Та же ошибка, кстати, может жить в спам-фильтрах, антиплагиате, и особенно её любят использовать маркетологи в новостях про «99% точности» — так что это не просто головоломка, а прикладной принцип. Проще жить, когда его понимаешь и ловишь🪑 .
Разбирать будем на примере, поэтому ниже условие типичной задачки про срабатывание антифрод-системы:
Тебя забанили. С какой вероятностью ты действительно нарушил?
Разбор будет под спойлером ниже, но сначала попробуйте прикинуть самостоятельно. Интересно сравнить ваш результат и мой😤 .
Сначала нужно посмотреть насколько нарушители вообще редки, у нас это: 1 на 1000. Это значение — базовая ставка, про которую все обычно забывают.
Чтобы было удобно считать, возьмём 100 000 аккаунтов, тогда:
Вся суть этих расчётов в том, что для этого случая бан — ещё не доказательство виновности.
Из всех юзеров, кого безжалостно забанили, реально нарушали примерно 1 из 11. Это те самые ~9%, а не 99%. Чувствуете разницу😁 ?
Почему так выходит: нарушители настолько редки, что даже крошечный процент ошибок на огромной массе честных юзеров даёт больше ложных банов, чем всех настоящих нарушителей вместе взятых 🥷 .
Другими словами: одна красивая цифра в 99% растворилась из-за того, что сами нарушения встречаются очень редко 🥷 .
Вывод: метрика без базовой ставки не значит ничего 🥷 .
Важная деталь: 1 на 1000 — это базовая ставка в среднем по всем аккаунтам сервиса. Нормальный антифрод обычно срабатывает не на случайном аккаунте, а на уже подозрительном — там базовая ставка куда выше, и поэтому итоговая вероятность, что бан за дело, сильно выше 🥷 .
Мой пример для понимания механики, так как у больших сервисов, скорее всего всё отлично, но если строить что-то своё с нуля или проектировать систему впервые — риск попасть на эту ошибку выше.
Если работаете с такими системами или что-то считаете по ним, лучше всегда держать в голове: «цифра на выходе всегда определяется базой на входе».
И, кстати, это работает для любого детектора редкого события: чем реже то, что он ищет, тем больше будет ложных срабатываний — сколько бы красивых процентов ни писали в пресс-релизе.
Поэтому «точность 99%» должна быть рядом с ответом на вопрос: «А как часто вообще встречается то, что мы ловим?» ☺️ .
P.S. Закиньте это тем, кого часто банят «за нарушение, которого не было». Интересно, какую вероятность они назовут в начале💼 ?
#решение 🤓
Тебя забанили перманентно — звучит как приговор. Но значит ли это, что ты точно нарушил
Разберём такой кейс. Сейчас, во время дикого развития антифрод-систем и автоматических банов — будет очень актуально, на мой взгляд.
Та же ошибка, кстати, может жить в спам-фильтрах, антиплагиате, и особенно её любят использовать маркетологи в новостях про «99% точности» — так что это не просто головоломка, а прикладной принцип. Проще жить, когда его понимаешь и ловишь
Разбирать будем на примере, поэтому ниже условие типичной задачки про срабатывание антифрод-системы:
• Нарушители редки — 1 на 1000 аккаунтов.
• Система ловит 99% нарушителей.
• И ошибочно банит 1% честных юзеров.
Тебя забанили. С какой вероятностью ты действительно нарушил?
Разбор будет под спойлером ниже, но сначала попробуйте прикинуть самостоятельно. Интересно сравнить ваш результат и мой
Чтобы было удобно считать, возьмём 100 000 аккаунтов, тогда:
1. Реальных нарушителей среди них — 100.
2. Система ловит 99%. Значит из этих 100 — поймает 99. Запомним это число.
3. Честных юзеров у нас 99 900. Система ошибается на них в 1% случаев. Кажется, мелочь, но 1% от 99 900 — это 999.
4. 999 честных юзеров получат бан ни за что, а это уже в десять раз больше, чем всех настоящих нарушителей.
5. В итоге, давайте сложим всех забаненных: 99 (настоящих) + 999 (ложных) = 1098.
6. Какая доля из этих 1098 реально виновна? Считаем: 99 / 1098 ~ 9%.
Вся суть этих расчётов в том, что для этого случая бан — ещё не доказательство виновности.
Из всех юзеров, кого безжалостно забанили, реально нарушали примерно 1 из 11. Это те самые ~9%, а не 99%. Чувствуете разницу
Почему так выходит: нарушители настолько редки, что даже крошечный процент ошибок на огромной массе честных юзеров даёт больше ложных банов, чем всех настоящих нарушителей вместе взятых
Другими словами: одна красивая цифра в 99% растворилась из-за того, что сами нарушения встречаются очень редко
Вывод: метрика без базовой ставки не значит ничего
Важная деталь: 1 на 1000 — это базовая ставка в среднем по всем аккаунтам сервиса. Нормальный антифрод обычно срабатывает не на случайном аккаунте, а на уже подозрительном — там базовая ставка куда выше, и поэтому итоговая вероятность, что бан за дело, сильно выше
Мой пример для понимания механики, так как у больших сервисов, скорее всего всё отлично, но если строить что-то своё с нуля или проектировать систему впервые — риск попасть на эту ошибку выше.
Если работаете с такими системами или что-то считаете по ним, лучше всегда держать в голове: «цифра на выходе всегда определяется базой на входе».
И, кстати, это работает для любого детектора редкого события: чем реже то, что он ищет, тем больше будет ложных срабатываний — сколько бы красивых процентов ни писали в пресс-релизе.
Поэтому «точность 99%» должна быть рядом с ответом на вопрос: «А как часто вообще встречается то, что мы ловим?»
P.S. Закиньте это тем, кого часто банят «за нарушение, которого не было». Интересно, какую вероятность они назовут в начале
#решение 🤓
Please open Telegram to view this post
VIEW IN TELEGRAM
Привет! Решил написать небольшой лайф-пост 😤 .
Сейчас сильно погрузился в написание вопросов к моему новому сервису. Занимаюсь именно этим уже около 2,5 месяцев, каждый вопрос пишу самостоятельно.
2,5 месяца назад я думал, что самое главное — написать качественный текст. На самом деле, это только процентов 60 всей работы🔨 🔨 🔨 .
Как только я ввёл эти вопросы в сервис, чтобы просто потестировать, буквально за 2 минуты понял, что нужна вёрстка текста — та самая, которую я в этом канале использую уже около двух лет. Я про:
Пришлось писать простой движок, который обрабатывает эту разметку и форматирует текст. А вот саму разметку я решил вводить в вопросы с помощью ИИ👨💻 .
Но ввод разметки в вопросы с ИИ — это вообще не так просто, как кажется. Смотрите, идеальная задача ставится так:
Второй пункт самый интересный, потому что верить ИИ на слово опасно — он может тихо переписать выверенный текст и вопросы будут корявыми, а на ручные правки потом уйдёт уйма времени.
Решал я его так:
Кстати, тут мысль шире, чем просто разметка текста: даже если редко пользуешься ИИ, принцип один — не верь ему на слово. После получения ответа, придумай, как проверить его фактами. В моем случае, например, помогли скрипты⚙️ .
Дальше остаются сладкие 30% ручного оформления, под которое хочу сделать небольшую панель, чтобы редактировать текст через сам сервис, а не копаться в JSON-файлах — за 2,5 месяца я от них прилично подустал🤡 .
Сейчас для себя вынес это базой для будущей работы с текстом в проектах. Честно, иногда даже удивляюсь, что не подумал об этом сразу — инструмент ведь на поверхности лежит🪑 .
Вот такая моя первая попытка в build in public. Как вам? Жду фидбек, хаха👥 👥 .
Сам сервис раскрою чуть позже, это будет мой третий по счёту проект. Идёт он намного быстрее предыдущих. И ощущение этой скорости как раз даёт понять, что я не зря всем этим начал заниматься. Посмотрим, что будет дальше⌨️ .
#лайф 🤝🏻
Сейчас сильно погрузился в написание вопросов к моему новому сервису. Занимаюсь именно этим уже около 2,5 месяцев, каждый вопрос пишу самостоятельно.
2,5 месяца назад я думал, что самое главное — написать качественный текст. На самом деле, это только процентов 60 всей работы
Как только я ввёл эти вопросы в сервис, чтобы просто потестировать, буквально за 2 минуты понял, что нужна вёрстка текста — та самая, которую я в этом канале использую уже около двух лет. Я про:
• Выделение жирным через **
• Выделение кода через `
• Списки через -
• Заголовки через ###
• И так далее!
Пришлось писать простой движок, который обрабатывает эту разметку и форматирует текст. А вот саму разметку я решил вводить в вопросы с помощью ИИ
Но ввод разметки в вопросы с ИИ — это вообще не так просто, как кажется. Смотрите, идеальная задача ставится так:
1. Ввести ~70% оформления с помощью агентного ИИ.
2. Удостовериться, что введено ТОЛЬКО оформление и ничего больше.
3. Затестить оформление текста.
Второй пункт самый интересный, потому что верить ИИ на слово опасно — он может тихо переписать выверенный текст и вопросы будут корявыми, а на ручные правки потом уйдёт уйма времени.
Решал я его так:
Задача:
Прогоняю промпт, в котором от и до описываю правила оформления, даю примеры эталонной разметки, ставлю жёсткие запреты на исправление текста и описываю, какой отчёт по правкам мне нужен.
Результат:
Получаю файл с разметкой.
Задача:
На слово результату прошлой задачи верить нельзя, поэтому пишу скрипт, который всю эту разметку вырезает из итоговых файлов, заменяя вырезанное пробелом. Ну и запускаю скрипт собственно.
Результат:
Получаю файл с вырезанной разметкой.
Задача:
Пишу новый скрипт, который сравнивает текст из файла с вырезанной разметкой с текстом в самом исходном файле с моими вопросами.
Результат:
Если расхождений нет — значит ИИ действительно занимался оформлением и ничего не переписывал. Задачу можно считать выполненной.
Кстати, тут мысль шире, чем просто разметка текста: даже если редко пользуешься ИИ, принцип один — не верь ему на слово. После получения ответа, придумай, как проверить его фактами. В моем случае, например, помогли скрипты
Дальше остаются сладкие 30% ручного оформления, под которое хочу сделать небольшую панель, чтобы редактировать текст через сам сервис, а не копаться в JSON-файлах — за 2,5 месяца я от них прилично подустал
Сейчас для себя вынес это базой для будущей работы с текстом в проектах. Честно, иногда даже удивляюсь, что не подумал об этом сразу — инструмент ведь на поверхности лежит
Вот такая моя первая попытка в build in public. Как вам? Жду фидбек, хаха
Сам сервис раскрою чуть позже, это будет мой третий по счёту проект. Идёт он намного быстрее предыдущих. И ощущение этой скорости как раз даёт понять, что я не зря всем этим начал заниматься. Посмотрим, что будет дальше
#лайф 🤝🏻
Please open Telegram to view this post
VIEW IN TELEGRAM
1 19 10 8 4 4
«Производная, матрицы, теорвер, а где мне это вообще пригодится?» — вопрос, который я в универе слышал чаще любого другого 🤡 .
Обычно на него отвечают абстрактно: «математика учит думать». Знакомо? Это правда, я и сам об этом писал, кстати. Но сегодня раскрою эту тему по-другому — на точных примерах рабочих задач.
Возьму базовые темы из вузовской программы и покажу, в какую рабочую задачу превращается каждая из них. Получится небольшой разбор🔍 🌎 🔎 .
Производная📁
Классика, когда выручка сервиса растёт, по идее, всё отлично. Но растёт она быстрее или медленнее, чем месяц назад? Замедление роста — это ранний сигнал о проблеме, который приходит тогда, когда абсолютные цифры ещё красивые и все довольны.
Кто заметил замедление первым, тот и нашёл проблему до того, как она стала пожаром. По сути ты смотришь на производную метрики, просто в отчёте её называют «темп роста»☺️ .
Теорвер📁
Классика, когда запустили фичу, конверсия выросла на 2% — это реальный эффект или случайный шум, который завтра рассосётся? Ответ на этот вопрос — это статистическая значимость, и на нём стоят все A/B-тесты.
Я недавно разбирал задачу про антифрод, где «система ловит 99% нарушителей», но банит в основном невиновных — это чистая условная вероятность, на которой горят даже опытные аналитики. Вот так шары и монетки внезапно оказываются деньгами и банами😁 .
Линейная алгебра📁
Системы рекомендаций сервисов работают на разложении таких матриц. Правда матрицы более сложные, но это все-таки матрицы. Каждый раз, когда сервис пугающе точно угадывает, что тебе показать, — где-то там перемножились те самые матрицы🥵 .
Статистика📁
Классика, когда в вакансии или в каком-то отчёте написано «средняя зарплата в компании 200к». А медианная при этом 90к, потому что несколько топов тянут среднее вверх, и половина людей получает меньше 90к. Одно слово — «средняя» вместо «медианная» — и отчёт рассказывает совсем другую историю. Кто понимает эту разницу, читает такие отчёты насквозь. Кто нет — просто верит написанному🔨 🔨 🔨 .
И вот главная мысль: в математике нет «бесполезных» тем — есть темы, которые просто еще не раскрылись в твоих рабочих задачах.
Причём заметь, я нигде выше не писал «выучи формулы» и вообще что-либо про них. Формулы забудутся, и это нормально. Останется другое — ты будешь узнавать структуру задачи. Видеть, что вопрос «почему просела конверсия» — это про базу сравнения. Что «правда ли фича сработала» — про отделение эффекта от шума. Что «какой сегмент важнее» — про то, как правильно разрезать данные.
Так что если сидишь сейчас над матаном и думаешь «зачем я это делаю» — ответ в этом посте. Эти знания не когда-нибудь пригодятся, а уже сейчас на этих прикладных вещах стоят конкретные рабочие задачи, за которые платят🤑 .
P.S. Сейчас для меня это очевидно, но если честно, учась в универе на прикладной математике, я не сразу это осознал. Было бы здраво, если бы тогда кто-то скинул мне такой пост. Поэтому, если у тебя есть знакомый, который сейчас задаётся похожими вопросами, — перешли ему👨💻 .
#статья 📚
Обычно на него отвечают абстрактно: «математика учит думать». Знакомо? Это правда, я и сам об этом писал, кстати. Но сегодня раскрою эту тему по-другому — на точных примерах рабочих задач.
Возьму базовые темы из вузовской программы и покажу, в какую рабочую задачу превращается каждая из них. Получится небольшой разбор
Производная
• В вузе это предел отношения приращений и таблица правил дифференцирования.
• В работе — ответ на вопрос «с какой скоростью меняется метрика».
Классика, когда выручка сервиса растёт, по идее, всё отлично. Но растёт она быстрее или медленнее, чем месяц назад? Замедление роста — это ранний сигнал о проблеме, который приходит тогда, когда абсолютные цифры ещё красивые и все довольны.
Кто заметил замедление первым, тот и нашёл проблему до того, как она стала пожаром. По сути ты смотришь на производную метрики, просто в отчёте её называют «темп роста»
Теорвер
• В вузе это задачки про шары и монетки и вендинговые аппараты.
• В работе — почти всё, что связано с решениями в условиях неопределённости.
Классика, когда запустили фичу, конверсия выросла на 2% — это реальный эффект или случайный шум, который завтра рассосётся? Ответ на этот вопрос — это статистическая значимость, и на нём стоят все A/B-тесты.
Я недавно разбирал задачу про антифрод, где «система ловит 99% нарушителей», но банит в основном невиновных — это чистая условная вероятность, на которой горят даже опытные аналитики. Вот так шары и монетки внезапно оказываются деньгами и банами
Линейная алгебра
• В вузе это матрицы, которые постоянно нужно перемножать.
• В работе — таблица «пользователи × товары» это буквально матрица, в которой: строка — человек, столбец — товар, на пересечении — покупал или нет.
Системы рекомендаций сервисов работают на разложении таких матриц. Правда матрицы более сложные, но это все-таки матрицы. Каждый раз, когда сервис пугающе точно угадывает, что тебе показать, — где-то там перемножились те самые матрицы
Статистика
• В вузе это среднее, дисперсия, распределения и немного душности.
• На работе — самый быстрый способ отловить враньё в отчётах или в рекламе.
Классика, когда в вакансии или в каком-то отчёте написано «средняя зарплата в компании 200к». А медианная при этом 90к, потому что несколько топов тянут среднее вверх, и половина людей получает меньше 90к. Одно слово — «средняя» вместо «медианная» — и отчёт рассказывает совсем другую историю. Кто понимает эту разницу, читает такие отчёты насквозь. Кто нет — просто верит написанному
И вот главная мысль: в математике нет «бесполезных» тем — есть темы, которые просто еще не раскрылись в твоих рабочих задачах.
Причём заметь, я нигде выше не писал «выучи формулы» и вообще что-либо про них. Формулы забудутся, и это нормально. Останется другое — ты будешь узнавать структуру задачи. Видеть, что вопрос «почему просела конверсия» — это про базу сравнения. Что «правда ли фича сработала» — про отделение эффекта от шума. Что «какой сегмент важнее» — про то, как правильно разрезать данные.
Хорошая вузовская программа кладёт это в голову насовсем, и именно за это платят аналитикам.
Так что если сидишь сейчас над матаном и думаешь «зачем я это делаю» — ответ в этом посте. Эти знания не когда-нибудь пригодятся, а уже сейчас на этих прикладных вещах стоят конкретные рабочие задачи, за которые платят
P.S. Сейчас для меня это очевидно, но если честно, учась в универе на прикладной математике, я не сразу это осознал. Было бы здраво, если бы тогда кто-то скинул мне такой пост. Поэтому, если у тебя есть знакомый, который сейчас задаётся похожими вопросами, — перешли ему
#статья 📚
Please open Telegram to view this post
VIEW IN TELEGRAM
Почти каждый день мы видим графики — в новостях, в рекламе, в чьей-то презентации на работе. И по привычке мы им верим: на графике сухие цифры, которые отображают сухие и объективные результаты. На самом деле это практически всегда не так 😤 .
Графики обычно стоят на абсолютно честных данных, но всё равно могут привести тебя к неверному выводу. Давайте разберём, как так выходит — и как это замечать. Сначала база:
Ниже три самых популярных способа👨💻 .
🔍 Первый способ🔎
Ось, которая начинается не с нуля. Смотри: какой-то показатель вырос на 1,5%. Само по себе — ни о чём. Но если убрать снизу ноль и начать шкалу впритык к «ростовым» значениям, эти 1,5% растянутся на всю высоту картинки и превратятся в крутую гору. Цифры те же, но подсознательный вывод противоположный.
🔍 Второй способ🔎
Удобно выбранный период. Тут данные вообще не трогают, просто решают, с какого момента их показать. Если провести понятную аналогию, то она будет такой: это как показывать свои фото только с одного ракурса. Фото настоящее, не обработанное, просто кадр и ракурс были выбраны заранее заинтересованным лицом, так сказать.
🔍 Третий способ🔎
Игра с размером картинки. Это любят в инфографике. Допустим, надо показать, что чего-то стало в два раза больше. Честность — это когда отображают столбики, один из которых вдвое выше, но не всегда делают именно так, смотри пример ниже.
И вот здесь главная мысль: график вводит в заблуждение не числами, а оформлением. Ось, масштаб, период, тип диаграммы — это не про красивое отображение. Это про интерпретацию тем, кто этот график будет смотреть. А вот создатель графика, по сути заранее моделирует то, что смотрящий должен почувствовать, ещё до того, как он вчитается в цифры🤡 .
Скажу честно: на мой взгляд, ничего плохого в использовании этих способов — нет. Вопрос скорее в том, для кого такой график строят и в чём цель.
Когда собираешь график для отчёта в большой компании или для своего приложения — в первом случае движение осей или выбор периода может быть основным требованием к графику, а во втором случае — нужна максимальная прозрачность, чтобы понять куда двигать свой продукт.
Лучше просто знать эти базовые способы, чтобы не быть введенным в заблуждение красиво представленными объективными цифрами. Это прям основа основ, но её можно периодически забывать, особенно когда видишь «головокружительный» рост своего приложения или команда отчиталась о стабильном развитии🌚 .
Способов не три, их точно больше. Что тогда с этим делать? Правило простое: когда видишь убедительный график, сначала смотри не на линию, а на оси и подписи. Также, лучше всего задать пару вопросов, если что-то смущает или кажется уж ОЧЕНЬ позитивным:
Пять секунд на эти вопросы — и большая часть манипуляций нейтрализована: хоть в новостях, хоть в рекламе, хоть в отчёте у коллеги🤯 .
В сухом остатке: график — это сильный инструмент, он показывает то, что в таблице на тысячу строк глазами не разглядишь. Но именно поэтому им проще всего манипулировать, порой даже не нарочно. Поэтому читать график стоит как бы с конца: сначала оси, период и масштаб, а уже только потом переходить к самой линии или столбикам🔨 🔨 🔨 .
P.S. Если у тебя есть знакомый, который верит каждому «резкому росту» из новостей и рекламы, — перешли ему. Пусть в следующий раз сначала глянет на оси и период.
#статья 📚
Графики обычно стоят на абсолютно честных данных, но всё равно могут привести тебя к неверному выводу. Давайте разберём, как так выходит — и как это замечать. Сначала база:
Чтобы соврать графиком, цифры трогать не обязательно. Числа могут быть настоящими до единого, для пущей объективности можно ещё прикрепить сложные формулы расчётов чисел, на основе которых строился график. Обманывает не сама цифра, а то, как её подали.
Ниже три самых популярных способа
Ось, которая начинается не с нуля. Смотри: какой-то показатель вырос на 1,5%. Само по себе — ни о чём. Но если убрать снизу ноль и начать шкалу впритык к «ростовым» значениям, эти 1,5% растянутся на всю высоту картинки и превратятся в крутую гору. Цифры те же, но подсознательный вывод противоположный.
Пример: ровно так в новостях небольшое колебание курса или цен подают как «резкий обвал» или «взлёт», хотя там разница в пару процентов, центов или копеек.
Удобно выбранный период. Тут данные вообще не трогают, просто решают, с какого момента их показать. Если провести понятную аналогию, то она будет такой: это как показывать свои фото только с одного ракурса. Фото настоящее, не обработанное, просто кадр и ракурс были выбраны заранее заинтересованным лицом, так сказать.
Пример: реклама какого-нибудь фонда или монеты: «доходность +40%». А если отмотать чуть левее точки, с которой начали рекламный график, — окажется, что перед этим фонд упал на 60%, и эти «+40%» просто отскок от дна, потому что кто-то решил купить просевший актив. Но подается это как уверенный рост.
Игра с размером картинки. Это любят в инфографике. Допустим, надо показать, что чего-то стало в два раза больше. Честность — это когда отображают столбики, один из которых вдвое выше, но не всегда делают именно так, смотри пример ниже.
Пример: часто столбики заменяют на какую-нибудь иконку, например, логотип компании, а затем при росте в два раза — «ростовую» иконку увеличивают пропорционально и в высоту, и в ширину, чтобы не исказить её. В итоге эта «ростовая» иконка кажется огромной, потому что мозг смотрящего в первую очередь считывает визуальное пятно. Отсюда может сложиться ощущение успешнейшего роста, хотя рядом аккуратно и мелко написано «рост в 2 раза».
И вот здесь главная мысль: график вводит в заблуждение не числами, а оформлением. Ось, масштаб, период, тип диаграммы — это не про красивое отображение. Это про интерпретацию тем, кто этот график будет смотреть. А вот создатель графика, по сути заранее моделирует то, что смотрящий должен почувствовать, ещё до того, как он вчитается в цифры
Скажу честно: на мой взгляд, ничего плохого в использовании этих способов — нет. Вопрос скорее в том, для кого такой график строят и в чём цель.
Когда собираешь график для отчёта в большой компании или для своего приложения — в первом случае движение осей или выбор периода может быть основным требованием к графику, а во втором случае — нужна максимальная прозрачность, чтобы понять куда двигать свой продукт.
Лучше просто знать эти базовые способы, чтобы не быть введенным в заблуждение красиво представленными объективными цифрами. Это прям основа основ, но её можно периодически забывать, особенно когда видишь «головокружительный» рост своего приложения или команда отчиталась о стабильном развитии
Способов не три, их точно больше. Что тогда с этим делать? Правило простое: когда видишь убедительный график, сначала смотри не на линию, а на оси и подписи. Также, лучше всего задать пару вопросов, если что-то смущает или кажется уж ОЧЕНЬ позитивным:
• Ось начинается с нуля или нет?
• За какой период построен график? Почему именно за этот период?
• «Больше на N%» — это относительно чего? Было 1, стало 3 — это тоже +200%.
Пять секунд на эти вопросы — и большая часть манипуляций нейтрализована: хоть в новостях, хоть в рекламе, хоть в отчёте у коллеги
В сухом остатке: график — это сильный инструмент, он показывает то, что в таблице на тысячу строк глазами не разглядишь. Но именно поэтому им проще всего манипулировать, порой даже не нарочно. Поэтому читать график стоит как бы с конца: сначала оси, период и масштаб, а уже только потом переходить к самой линии или столбикам
P.S. Если у тебя есть знакомый, который верит каждому «резкому росту» из новостей и рекламы, — перешли ему. Пусть в следующий раз сначала глянет на оси и период.
#статья 📚
Please open Telegram to view this post
VIEW IN TELEGRAM
Привет, закидываю второй build-in-public по проекту, который сейчас собираю 🌚 .
У меня с понедельника начался отпуск, поэтому я с головой ушел в свои проекты🫥 .
За последние 5 дней я собрал нормальный лендинг проекта и авторизацию👨💻 .
Что могу сразу сказать:
Давайте теперь поподробнее:
Лендинг теперь стал отдельной полноценной страницей. Я решил вынести на него основную механику, чтобы можно было её сразу попробовать. Ну и все тексты, которые есть в лендинге, я написал самостоятельно, чтобы не было ощущения ИИ-слопа. Думаю, что это все-таки хороший ход👥 👥 .
Авторизация наконец-то перестала быть заглушкой. Теперь есть нормальная регистрация, вход, выход и восстановление сессии. Пока что без кодов на почту, но и это сделаю позже, когда разверну проект на нормальном хостинге, а не на локальном.
Большая часть работы была под капотом: пароли хешируются через Argon2id, сессии работают через защищённую HttpOnly cookie, а от перебора паролей добавлены кулдауны по комбинациям email и IP. Ну и на сессии пользователей сделан TTL, который спустя определенное время разлогинивает пользователя🤒 .
Пока это всё ещё локальный MVP, который лежит у меня в столе: пользователи, сессии и прогресс хранятся в JSON. Потом еще буду переезжать на PostgreSQL отдельно, но это в будущем.
Честно, не знаю правильно это или нет, но выкатывать на первый обзор хочется практически готовую и хорошо собранную версию🔨 .
В общем, отпуск очень продуктивно проходит. Большое спасибо, что читаете⌨️ !
#лайф 🤝🏻
У меня с понедельника начался отпуск, поэтому я с головой ушел в свои проекты
За последние 5 дней я собрал нормальный лендинг проекта и авторизацию
Что могу сразу сказать:
• Если вы видите, что кто-то говорит про сборку идеального лендинга с ИИ за 1-2 часа, то это просто фарс.
• Дуров был прав, когда говорил, что начинать собирать проект нужно с авторизации.
Давайте теперь поподробнее:
Лендинг теперь стал отдельной полноценной страницей. Я решил вынести на него основную механику, чтобы можно было её сразу попробовать. Ну и все тексты, которые есть в лендинге, я написал самостоятельно, чтобы не было ощущения ИИ-слопа. Думаю, что это все-таки хороший ход
Авторизация наконец-то перестала быть заглушкой. Теперь есть нормальная регистрация, вход, выход и восстановление сессии. Пока что без кодов на почту, но и это сделаю позже, когда разверну проект на нормальном хостинге, а не на локальном.
Большая часть работы была под капотом: пароли хешируются через Argon2id, сессии работают через защищённую HttpOnly cookie, а от перебора паролей добавлены кулдауны по комбинациям email и IP. Ну и на сессии пользователей сделан TTL, который спустя определенное время разлогинивает пользователя
Пока это всё ещё локальный MVP, который лежит у меня в столе: пользователи, сессии и прогресс хранятся в JSON. Потом еще буду переезжать на PostgreSQL отдельно, но это в будущем.
Честно, не знаю правильно это или нет, но выкатывать на первый обзор хочется практически готовую и хорошо собранную версию
В общем, отпуск очень продуктивно проходит. Большое спасибо, что читаете
#лайф 🤝🏻
Please open Telegram to view this post
VIEW IN TELEGRAM
Отпуск по классике заставляет задуматься о вещах, которые в обычное загруженное время игнорируются мозгом 😤 .
Подумал об одной простой вещи:
Например: оффер с зарплатой в 2 раза выше текущей, первый платящий пользователь в твоем сервисе — снаружи между этими этапами тишина, потому что они появляются в моменте.
По аналогии — это как закипание воды: сначала она долго греется до 99°, визуально не меняясь, а закипает только в самый последний момент😐 .
Сложность и проблема периода до 99° в том, что обычно его приходится проходить в одиночку. Это нормально, но иногда морально тяжело. Здраво, когда у вас уже есть сильное комьюнити, но это 100°, если вы поняли о чем я🔨 🔨 🔨 .
С моим проектом по сути такая же история сейчас:
ℹ️ Сначала шоу-кейсы, чтобы доказать, что я могу собрать просто что-то работающее.
ℹ️ Потом собрал контент-банк, это было очень трудно, некоторые вопросы даже улетали друзьям и коллегам на ревью. Это достижение для меня: обычно я полирую до последнего и никому не показываю, а тут отдал сырое на ревью.
ℹ️ Собрана обертка приложения, прям полностью: весь каркас и логика. Я на днях переехал на PostgreSQL, устранил какое-то дикое количество багов (около 40), которые мне выявил Claude в связке с ChatGPT. Моё ручное тестирование не отлавливало их, потому что баги были куда глубже. В общем, это очень хорошо.
К чему это я — все это движение, это много труда, времени, денег, но результат будет в одном быстром моменте, когда кто-то начнет использовать приложение или когда кто-то оплатит подписку.
Можно это считать обесцениванием своего труда, но на мой взгляд это реальность и ничего плохого в ней нет🌚 .
В общем, двигаемся дальше и посмотрим, что будет. Столкновение моего проекта с реальностью всё ближе и ближе, волнительно👨💻 .
P.S. Напишите в комментах, над чем сейчас работаете вы, интересно почитать. Или:
☺️ — тоже на отрезке до 99°.
🍾 — уже кипел, знаю это чувство.
⌨️ — просто лайк.
#лайф 🤝🏻
Подумал об одной простой вещи:
Внутренний рост идет непрерывно, а внешний рост, который наблюдают со стороны, происходит обычно резкими скачками.
Например: оффер с зарплатой в 2 раза выше текущей, первый платящий пользователь в твоем сервисе — снаружи между этими этапами тишина, потому что они появляются в моменте.
По аналогии — это как закипание воды: сначала она долго греется до 99°, визуально не меняясь, а закипает только в самый последний момент
Сложность и проблема периода до 99° в том, что обычно его приходится проходить в одиночку. Это нормально, но иногда морально тяжело. Здраво, когда у вас уже есть сильное комьюнити, но это 100°, если вы поняли о чем я
С моим проектом по сути такая же история сейчас:
К чему это я — все это движение, это много труда, времени, денег, но результат будет в одном быстром моменте, когда кто-то начнет использовать приложение или когда кто-то оплатит подписку.
Можно это считать обесцениванием своего труда, но на мой взгляд это реальность и ничего плохого в ней нет
В общем, двигаемся дальше и посмотрим, что будет. Столкновение моего проекта с реальностью всё ближе и ближе, волнительно
P.S. Напишите в комментах, над чем сейчас работаете вы, интересно почитать. Или:
#лайф 🤝🏻
Please open Telegram to view this post
VIEW IN TELEGRAM