Заскуль питона (Data Science)
8.19K subscribers
176 photos
17 videos
4 files
187 links
Канал про Python, аналитику, Data Science, SQL и многое другое

По вопросам сотрудничества и рекламе: @m459n9

Сайт: zasqlpython.ru
Бот для тренировки: @zasql_python_train_bot
Download Telegram
80% задач аналитики может уходить в стол по моим ощущениям

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

🙊 У меня было такое в одной из компаний, в которой работал. Сделал сложную инфраструктурную (как мне казалось) задачу, но не получил отклика от руководства. Конечно же, я расстроился, так как не понимал в чем дело.

Проблема тут в презентации результатов, продажи своих идей бизнесу, ну и конечно же в необходимости СЕЙЧАС. Если у вас нет процесса взаимодействия продукта и аналитики, пора задуматься.

🔽 В качестве решения можно попробовать

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

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

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

3. Раз в какое-то время просматривать вместе с продуктом метрики, чтобы видеть точки роста и понимать контекст. Полезная практика: смотреть вместе с бизнесом на одни и те же метрики, объясняя причину роста / падения, чтобы это не превращалось в бесконечное количество задач 😏

4. Если задача инфраструктурная: синковаться с отделом аналитики, чтобы понимать насколько решение задачи поможет в текущих реалиях. Может быть вместо инфраструктурных решений нужно заняться написанием документации по основным метрикам / процессам и так далее 🥺

⚠️ Кстати, а еще есть команды, которые ПРОСТО ЗАБИВАЮТ ресурсы аналитики, чтобы не простаивали, авось понадобится. Такое себе, правда? Здесь как раз и нужно критическое мышление: а нужна ли нам эта задача сейчас? на что она потенциально может повлиять?

А у вас есть такое чувство, что решенные задачи не используются бизнесом? Делитесь своими кейсами, интересно почитать.
Если наберется 100
🤪, расскажу какие курсы сейчас прохожу.

@zasql_python
Please open Telegram to view this post
VIEW IN TELEGRAM
58953
Старый советский метод для… ClickHouse

Сосед поделился методом, все в шоке…

Когда я работал в OZON 💙, мне было интересно разбираться в том, как работают под капотом методы, строить сложные пайплайны


В этом посте будет подборка материалов по ClickHouse, понимание инфраструктуры, функций и так далее.

1. Курс на Stepik

Недавно на него наткнулся, он бесплатный. Тут есть база того, как работает ClickHouse под капотом, а это всегда плюс. Рассказывается про движки, функции, реплики, структуры данных.

Советую, но нужно для себя явно вести учет того, что проходите, так как большая часть курса — это теория + вопросы с одним вариантом ответа. Заметил, что самый длинный вариант по количеству символов с большей вероятностью является верным 😂.

Чтобы это все не превращалось в лудоманию, советую выделить себе пару часов на прохождение нескольких курсов 👌

2. Документация

Важная тема, учитывая, что функций очень много. Здесь можно и ChatGPT заюзать, если нужно быстро реализовать задачу. Главное, чтобы Deprecated функции не советовал, а то будет беда кластеру, если он не готов... 😮

🤪 Кстати, если наберется много реакций, сделаю раздел на сайте с основными функциями ClickHouse 🤪

3. Чат

Тут покрыты практически все кейсы работы с этой СУБД (от настройки конфигов, обработки ошибок до синтаксиса). Чат больше для DE. Перед входом настоятельно рекомендую открыть форточку 🪟

Кстати, было приятно увидеть ссылки на запросы сотрудников Яндекса, очень популярный чат, но не NDA 👍

4. Песочница Clickhouse

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

5. Памятка по ClickHouse

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

😐 Пока не начал проходить этот курс от Яндекс Cloud. Понравилось, что сразу написали про разреженные индексы, работу с кластерами в Знакомстве с ClickHouse, поэтому ожидаю, что курс будет неплох.

📺 Здесь можно посмотреть про работу с массивами, так как сам Кликхаус плохо работает с джойнами. Вообще работа со структурами в ClickHouse очень важна и заслуживает отдельного поста.

📺 А тут про то, как разогнать ClickHouse (видео с конференции)

Здесь лежит плейлист серии видео, я так полагаю, это курс по ClickHouse

🔽 А как вы изучали Clickhouse? Что смотрели? Делитесь в комментариях 🔽

Кстати, упаковка соды по-новогоднему выглядит
🎅

@zasql_python
Please open Telegram to view this post
VIEW IN TELEGRAM
631094
Про @ds_memes

Осталось не так много мемов в подборке, но количество постов уже перебито по сравнению с основным каналом. На момент написания поста их 704.

Давайте попробуем добить до 1000 подписчиков к НГ, а я буду топовые мемы грузить туда! ❄️

Опыт неплохой. Просто думаю, нужно ли тратить на это время или нет.

Кстати, я же обещал рассказать про пайплайн.

Все достаточно просто. По классике разработки один питонячий файл main, Procfile, requirements.txt

1. Парсера никакого нет, видео грузятся ручками из различных источников. С картинками просто работать, присылаешь и отправляешь в очередь. Хотя вру, есть, парсер фото из Reddit по темам.

2. Для YouTube, Instagram* свой флоу распаршивания видео. Если с первым все просто, то со вторым — нет. Зашито определенное количество ретраев, после которых выгружалось видео. Методом проб и ошибок удалось подобрать оптимальное количество, чтобы видео еще не стояло в очереди.

3. Между постами есть интервал времени. Время для публикации поста внутри промежутка выбирается рандомно.

4. Любой формат загружается в сервис и дальше встает в очередь (картинка разных форматов, видео из разных источников и так далее).

5. Данные хранятся в SQLite. Если пост выложен, из базы он удаляется.

Я деплоил также, как и сайт, кому интересно, пишите в комментариях. Можно было это сделать и бесплатно, но я решил на единой квоте Railway все масштабировать.
Можно было сделать проще, но это мое.

Что-то недавно деплоили?
Если нет, то что бы хотели? Какой-то инструмент, который бы упростил жизнь?


Ставьте реакции, пишите комментарии!

*Признана экстремистской организацией и запрещена на территории РФ

@zasql_python

UPD: уже второй пост коменты снесены 😁
Please open Telegram to view this post
VIEW IN TELEGRAM
1964🔥1
Смотрим резюме вместе

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

🥹 Вот вам и мем и практическая польза!

Особенно актуально для аналитиков, DS и тех, кто сейчас активно откликается

1. Все что нужно, это прислать сюда свое резюме (именно в этот тред).

2. Предварительно проверьте, чтобы в нем не было ваших личных данных.

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

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

Если тут есть ребята HR, помогайте 😍

🤪 Ставьте реакции, делитесь постом с друзьями / коллегами!

😁 Я считаю, что такой разбор может увеличить конверсию в отклик! 😁

Кстати, если вдруг не видели мой пост про составление резюме, читайте тут!

🎄🎄🎄 Если у вас есть Premium, вы можете бустануть канал — это бесплатно и занимает 3 секунды. Нам совсем чуть-чуть осталось до 10 уровня, хочу поставить НОВОГОДНИЕ ОБОИ

@zasql_python
Please open Telegram to view this post
VIEW IN TELEGRAM
2610621
Как бороться с переобучением в ML

Считаете вы значит свои данные на тренировочных данных, качество хорошее, нужно внедрять в прод. Смотрите на тестовых — все плохо. Достаточно понятное объяснение: модель подстроилась под тренировочные данные.

Чем это грозит? Когда будем получать новые данные, модель не сможет адекватно интерпретировать нашу реальность, из-за чего будем страдать. Неадекватные прогнозы, плохое обобщение модели, неверные решения для бизнеса, убытки. В общем, все хорошо приемлемо 👨‍⚖️

Вся эта борьба по сути, управление bias–variance tradeoff: либо модель слишком простая, либо слишком подгоняется под шум.


Что можно с этим сделать

1. Больше качественных данных. Взять больше выборку, предобработать лучше. Минусы: не всегда есть эти данные. Возможно, мы уже взяли те самые 100% на которых мы обучаем 👀. У меня в магистратуре есть курс по предподготовке и анализу данных. Считаю его одним из самых важных. Об этом напишу в следующих постах.

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

3. Уменьшить сложность модели. Несмотря на то, что могут быть более мощные модели, они имеют свойство переобучаться. Например, для деревьев можно ограничить глубину. Попробовать сократить количество фичей и использовать более простую модель 🤔

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

5. Feature Selection. Определять важные для модели фичи, которые можно будет легко интерпретировать. Лучше использовать 10 хороших фичей, чем 200 случайных. Про простенький вариант на примере Титаника 😮

6. Аугментация и добавление синтетических данных. Можно обмануть алгоритм, добавив шум, предоставить те же семплы данных, но немного измененные. Обычно это подходит для CV и NLP. Например, когда, мы подаем в модель повернутые картинки котиков, искусственно масштабируя датасет. Здесь также можно применить и SMOTE / ADASYN 🙊. Важно: все oversampling / SMOTE только на тренировочной выборке, иначе будет data leakage (утечка данных). О том, что это и как с этим бороться — тут.

7. Раннее прекращение обучения модели. Если качество на валидации перестаёт расти или начинает ухудшаться, обучение стоит остановить. Дальше модель может запоминать только шум. Например, останавливать обучение, если после N итераций качество на валидации не улучшается (как это указано на картинке).

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

Хорошая модель — это не та, что идеальна на трейне, а та, что стабильно работает на новых данных 🤓


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

Что-то забыл? Пишите в комментариях! Ставьте 🤪, если понравился пост! Планирую по 💻 писать больше, так как учусь на него, ну...

@zasql_python
Please open Telegram to view this post
VIEW IN TELEGRAM
228🔥5👍31
Бесплатные курсы на Stepik, которые я прохожу / прошел в декабре. Часть 1.

Уже 23 дня без перерыва в декабре я решаю по 25+ задач в день для поиска формата, по которому мне бы было приятно учиться.

Аналог Duolingo 🚶‍♂️

Параллельно ищу новые области, в которых интересно было развиваться, например, DE. Жестко подсел курсы 🚬...

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

Подборка курсов специально для вас 🔽

ClickHouse с нуля
Об этом курсе я уже говорил в предыдущем посте. Если пользуетесь им и хотите понимать как он работает под капотом, Must Have.

Я смотрел различные курсы по SQL для практики (чтобы потом можно было давать задачи на собесах, ну и в тонусе себя держать, конечно 🐸). На каком-то из них останавливаться не буду, просто прикольно для себя прорешать. Первый, второй

У кого есть нестандартные задачи по SQL присылайте в комментарии 🍪🍪

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

Пример задачи:
Давным-давно в землях математических жил был коварный злодей - Разделитель. Он любил разделять числа пробелами, чтобы затруднить жизнь простым смертным...


Попал в сказку короче 😂

MLops. Начало
Я уже раньше на курсах проходил MLFlow, с Airflow работаю постоянно, поэтому открытий не свершилось. Курс хороший, здесь можно научиться поднимать необходимое окружение для ML-экспериментов и версионировать свои результаты. Самое оно.

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

@zasql_python
Please open Telegram to view this post
VIEW IN TELEGRAM
🐳121👍1715144
Магистратура [+ 1 к итогам года]

Предметы в магистратуре закрыты на отлично, можно выдыхать, наверное 🥺

Дальше хочется в каких-то соревах по ML начать участвовать. Надеюсь без лудки...

Еще по курсам на Stepik, которые мне кажутся релевантными для магистратуры

1. Выше писал, что начал проходить курс по MLOps.
2. Я еще прохожу курс по FastAPI для бэкэнда по ML. Помню как на курсе по ML такое проходили, заодно подготовлюсь к еще одному предмету в магистратуре (в 3 семестре 😁).
3. Пройду еще по Hadoop, этот курс советовали знакомые, чтобы закрыть пробелы в Big Data.

План на следующий семестр будет такой:

✏️ Общие дисциплины

1. Алгоритмы и структуры данных
2. Операционные системы семейства Unix
3. Soft Skills
4. Учебная практика (практический хакатон)


Софт-скиллы — это, конечно, всегда интересно. Будем презы, наверное клепать 👀


✔️ Трек Data Science

1. Машинное обучение без учителя
2. Принципы разработки на языке Python
3. Прогнозирование временных рядов


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

Был еще на выбор трек DE, но я не выбрал, так как показалось, что Data Science будет релевантней. По DE предметы не понравились, сам посмотрю на досуге

Ставьте 🐳, если ждете итоги года, обязательно сделаю в этом году!

@zasql_python
Please open Telegram to view this post
VIEW IN TELEGRAM
🐳7210103
Подводим итоги года

Чекпоинт перед 2026 годом, поехали смотреть что получилось 🐸

1. Сделал x1.8 по количество подписчиков относительного конца 2024.
2. Получил красный диплом в универе.
3. Сменил работу.
4. Поступил в магистратуру и закрыл первую сессию на отлично.
5. 8к+ контактов в Linkedin. Нетворкаемся!
6. Сделал сайт, на который ежедневно заходят люди и постоянно учатся, меня это заряжает. Кто не видел, заходите, там много всего интересного.
7. Сходил на несколько конференций, обменялся контактами с несколькими ребятами, возможно сделаем что-то совместное.
8. Создал бота, который ежедневно постит всеми любимые мемы.
9. Еще один бот для подготовки к собеседованиям в лайт формате.

По статистике я постил ~ 4 поста в неделю (198 постов за год).
Это звучит лучше чем в 2024.
В прошлом году было 104 поста за год (по 2 поста в неделю).

Год пролетел очень быстро ⌛️

Хочу всем пожелать карьерного роста, развития и движения вперёд.
Если возникают сложности — пытаться их разруливать, а не откладывать.
Спасибо, что читаете меня — это очень ценно ❤️

Планов на 2026 год много, но загадывать не буду.
Главное — продолжать делать. Неважно какими шагами, важно не останавливаться.

А как прошел ваш год? Делитесь в комментариях

P.S: Фотка сделана в Таиланде 🇹🇭
Буду Новый Год проводить тут. Вместо елок любоваться пальмами
🌴

@zasql_python
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥972517136
🌟🌟🌟

Все любят тестовые задания за их открытость и четкость, конечно же…

⬇️ Как относитесь к тестовым заданиям? Пишите в комментариях свои мысли.

🙊 Мое мнение остается неизменным. Мышление кандидата очень сложно оценить, руководствуясь сухим решением, учитывая, что можно загнать все что угодно в LLM и сделать «идеально»


😍 — классный вариант отсева нерелевантных кандидатов, все правильно…

👊 — уберите их пожалуйста, не нужны они мне и вообще они не работают…

@zasql_python
Please open Telegram to view this post
VIEW IN TELEGRAM
12227741
💸 Первый пост 2026 года 💸

Понимаю, что отдыхаете, но хочется выпустить пост, поэтому ловите 😁

Читаю Linkedin, наткнулся на интересный пост с картинкой.

Вывод некорректен с точки зрения причинно-следственной связи...
Почему? Пишите ответ в комментариях 🤩
Ставьте 🐳 — это очень важно!

Кстати, такой вопрос вполне могут задать на собеседованиях, поэтому готовьтесь 😿


Почему нельзя сказать о том, что вступление в брак влияет на доход? (ниже спойлер) 👀

1️⃣ Изначально есть Selection Bias. Группы между собой различаются еще до вступления в брак. Нужно сделать рандомные группы (части дать вступить в брак, части нет, так и работает ведь, да? 💀)

2️⃣ Нет доверительных интервалов, чтобы отобразить значимость изменений, например, при большем разъезде после 38 лет. Либо изначально было мало участников в опросе, был шум в выборке.

3️⃣ Не случайный отбор партнеров. Возможно, женщины умеют предсказывать, кто более состоятельный 🥸 (вот бы использовать такие модельки в задачах). Может быть, наоборот, доход влияет на брак.

4️⃣ Комментарий в посте:
Возможно, просто обеспеченным мужчинам легче жениться.


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


@zasql_python
Please open Telegram to view this post
VIEW IN TELEGRAM
🐳56201332
Какими LLM пользуетесь / пользовались и почему?

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

🤡 Периодически пользовался Perplexity, когда нужно было поделать ресерч в режиме Лаборатории, а потом собрать все воедино, но увы, я отлетел с подпиской Pro :(

🤨 Поэтому пока только ChatGPT, возможно еще и DeepSeek буду использовать…

А может вообще перейду на телеграм-ботов, которые построены на апишках 🤨

А может нужно собрать вообще все детальки и использовать под определенные нужды?

💸 — для рассуждений
🏳️‍🌈 — для кодинга
💸 — для ресерча
🌟 — для чего-то другого

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

🐳 стараюсь комбинировать несколько вариантов. Где-то руками, где-то отдать в LLM, пока на 100% не доверяю.

😍 — пользуюсь только LLM и ничего в этом страшного нет.

😮 — только StackOverFlow и Google, я люблю старую школу, кстати F по количеству созданных вопросов…

@zasql_python
Please open Telegram to view this post
VIEW IN TELEGRAM
🐳11414123👍1
Топ ошибок в подготовке к собеседованиям по аналитике

Читая чаты, вижу, что многие начинающие (и не только) аналитики совершают примерно одни и те же ошибки. Давайте в этом посте их рассмотрим, а если у вас будет что добавить — напишите в комментариях. Поехали!

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

2. Не понимаете в какое направление идет отбор
Понимать ценности компании, конечно же, важно, а еще лучше понимать в какое направление / сегмент бизнеса.
Приведу пример. Существует компания X, у которой есть несколько продуктов: Банк, маркетплейс, рекламная платформа, доставка еды, такси и так далее. У каждого из этих "бизнесов" есть свои метрики, свои проблемы. Это нужно, чтобы понимать в какую сторону двигаться в рассуждениях.

3. Слишком переживаете из-за собеседования 😨
Почти у всех есть страх не пройти интервью или показаться хуже, чем есть на самом деле. Часто кажется, что после собеседования вас будут долго обсуждать и разбирать по косточкам. На практике интервьюер тоже переживает и заинтересован в том, чтобы разговор получился продуктивным. Попробуйте относиться к интервью не как к экзамену, а как к обсуждению задачи с коллегой или знакомым — примерно как на мок-собеседовании, в котором вы решили поучаствовать.

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

🗯 Пример промпта

Представь, что ты тимлид в компании X нанимаешь продуктового аналитика грейда G. Он должен заниматься Y [список обязанностей в вакансии]. На собеседовании планируется спрашивать про SQL, Python, статистику. [пример задач]. Ты должен отвечать четко по критериям, как была решена задача + давать пояснение к каждому пункту. Я тебе буду присылать решение каждой задачи, а ты будешь оценивать меня. В конце вердикт и саммари по тому, что можно улучшить.


5. Не делаете разбор своих фейлов 🤨
Я помню раньше мне было стремно читать негативную ОС по прохождению собесов. Как бы разочаровывался в себе, думая, что еще не готов. Все это про ПРОЦЕСС. Если не было нормальной ОС пытаться разбирать ее вместе с AI-ассистентом, знакомым, чтобы можно было себя натаскать. Помню, когда в одной из контор не смог посчитать Retention 5-го дня, так мне прямо на собесе сказали, что я медленно решаю задачи и нам такие сотрудники не нужны 🤡

Еще замечал, что многие кандидаты просто заучивают термины, но не понимают их.
Шаг влево, шаг вправо — и собеседование проваливается.

Если вы можете объяснить тему простыми словами — вы её знаете.
Если нет — скорее всего, просто заучили.

Классический пример — вопрос про p-value 😋


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

Если хотите такую же подборку ошибок, но уже на самом собеседовании — ставьте 🐳
Что-то упустил? Пишите, какие ошибки допускали при подготовке к собеседованиям?
На что бы еще обратили внимание?


@zasql_python
Please open Telegram to view this post
VIEW IN TELEGRAM
🐳731086👍2
🎰 Однажды Эрнест Хемингуэй поспорил, что сможет написать самый короткий рассказ, способный растрогать любого. Он выиграл спор, написав следующее сообщение.

Ждем нативного поста и заходим по рефералке конечно же 🎰😁

Будут знаки. Возможно.

🌟🌟🌟

Топ-1 целевая аудитория, мы же умеем решать задачи про рулетку и кости, посчитаем матожидание, все честно 😊

Присылайте 🎰 в комменты и крутите 🎰

@zasql_python
Please open Telegram to view this post
VIEW IN TELEGRAM
44753👍2
когда не вспомнили пароль, который устанавливали на рабочем компе до ухода на новогодние праздники...

а теперь только и остается, что пойти пить кофе и есть печеньки до восстановления пароля админами

всех с первым рабочим днем в 2️⃣0️⃣2️⃣6️⃣

мы обязательно справимся и все будет хорошо (по крайнем мере с этой рабочей неделей)

делитесь, как настроение, что планируете делать сегодня 🥺

Отдохнули и готовы к работе?

👍 — да, я полон сил и готов жестко перформить

👎 — дайте еще парочку дней, пожалуйста, я хочу еще отдохнуть

👌 Если у вас есть Premium, вы можете бустануть канал — это бесплатно и занимает 3 секунды. Нам совсем чуть-чуть осталось до 10 уровня, хочу поставить обои!

@zasql_python
Please open Telegram to view this post
VIEW IN TELEGRAM
41134615103
Самый странный собес в моей жизни на позицию аналитика

⌚️ Это было примерно 3-4 года назад, когда у меня уже был реальный опыт работы.

Компания: онлайн-кинотеатр
👌 Позиция: младший аналитик данных

Первое, что меня смутило: на собеседовании сидело 5 человек
Ощущение — будто я подопытный кролик, а не кандидат 🫙

🙊 Наверное, я могу себе это объяснить следующим:

1. это был показательный собес для других аналитиков (было 3 аналитика)
2. был кто-то из продукта (для оценки продуктового мышления)
3. был HR, но для меня это странно на технической секции
4. ...или я просто попал в реалити-шоу, я в телеке, ура!
5. ...или мне сразу решили устроить стресс-тест

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

Помню задачу на расчет метрик, а конкретно фидбек нанимающего менеджера

Максим, мне все понятно, собеседование закончим,
ты медленно решаешь задачи, нам нужны специалисты, которые быстро могут написать SQL-запросы 🔥


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

🔥 Я тогда жестко сгорел, у меня опустились руки, но вот что я хочу донести этим постом (первый раз не через HR сказали странный фидбек):

1. Отсутствие фидбека — красный флаг. Если тебе не могут дать четкий фидбек, можно задуматься, сейчас стараюсь на собесах четко говорить по каждой задаче, что можно улучшить, о чем можно рассказать.
2. Иногда отказ — это лучшее решение для тебя. Спасибо, что тогда не взяли на работу 😂
3. Думать вслух. Важно при найме оценить то, как мыслит кандидат. Структурно он решает поставленную задачу или нет.
4. Собеседования — не оценка компетенций. Это навык, который нарабатывается путем прохождения различных собеседований + изучения чего-либо. Как вы думаете, задачу бы на собесе не решили без ограничения по срокам и наличием гугла / LLM?
5. Много людей не должно вызывать стресса. Представьте обычную рабочую встречу: вы общаетесь сразу с несколькими людьми, обсуждаете задачу, отвечаете на вопросы.

🏃‍♀️ Тут можно сказать, что я не прав, и аналитик должен быстро решать базовые задачи. Возможно, тогда в компании реально были процессы, где скорость критична.
Но вопрос другой: должно ли это быть решающим фактором при выборе аналитика?

🔽 Интересно ваше мнение, пишите в комментариях

Как вы считаете, стоит давать обратную связь сразу же на собеседовании?


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

Зашел такой пост? Ставьте 🐳, посмотрим, какие у меня еще есть истории с собесов

Помните свой странный собес? Напишите в комментариях — интересно собрать реальные кейсы 👇

@zasql_python
Please open Telegram to view this post
VIEW IN TELEGRAM
🐳8225921
Листал Linkedin, нашел такой пост, интересно посмотреть там комменты :)

Тут есть несколько популярных направлений для размышлений:

1. Джуны действительно нужны, нужно вкладывать в развитие команд + можно нанять больше сотрудников.

Инвестиция в команду, рост лояльности, масштабирование

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

Время сеньоров, ответственность, риск неокупаемости

Пара комментов из поста:

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

Ни одному синьеру не нужен никакой джун, время на него тратить еще и ответственность ненужная

К сожалению, "Хороший человек" - это не профессия.

А утверждение "любой Сеньор будет рад стажеру - более чем спорное...


🙊 Лично мне кажется, что вопрос не в нужны или не нужны джуны, а в том, есть ли у компании инфраструктура под их рост.

Что думаете по этому поводу? Пишите в комментариях
👀

Ставьте много 🐳, выпущу пост-разбор задачки с собесов :)

@zasql_python
Please open Telegram to view this post
VIEW IN TELEGRAM
1🐳9113961
Классическая задача на повышение матожидания

Вариаций много, встречается часто с равномерным отрезком [0;1] или с перебросом шестигранного кубика.

🤓 Условие задачи

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

1. оставить этот результат
2. сделать второй бросок (перебросить) и тогда итогом станет результат второго броска Y.

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


Решение под спойлером

1. Матожидание кубика = (1+2+3+4+5+6) / 6 = 3.5

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

а) Если x > 3.5, выгоднее оставить, так как в среднем мы получаем меньше, чем видим сейчас
б) Если x < 3.5, лучше перебросить, в среднем мы получаем больше, чем видим сейчас
в) Если x = 3.5, ничего. Но фактически мы не можем получить 3.5, поэтому разбивается на два сценария (только а и б).

Имеем исходы с перебросом: {1; 2; 3} и исходы без переброса: {4; 5; 6}

2. Теперь к выигрышной стратегии

Пусть W выигрышная стратегия а E(Y) — матожидание кубика, будем смотреть на вариации первого броска и дальше считать матожидание стратегии

При X <= 3

E(W|X=1) = E(W|X=2)=E(W|X=3) = E(Y) = 3.5

💡 Когда нам выпало 1, 2 или 3, мы отказываемся от этого значения и фактически играем заново с чистого листа, а значит в среднем получаем матожидание одного честного броска — 3.5. Второй бросок — обычный честный кубик 🎲

При X > 3

E(W|X=4) = 4
E(W|X=5) = 5
E(W|X=6) = 6

Тогда E(X| X > 3) = (4+5+6) / 3 = 5

При выпадении 4, 5 или 6 текущее значение уже больше математического ожидания нового броска (3.5), поэтому перебрасывать невыгодно. Поэтому условные матожидания будут фактическими значениями на кубике.

Тогда получаем матожидание выигрышной стратегии

E(W)= P(X<3) * E(Y) + P(X>=4)*E(X|X>=4) = 3/6 *3.5 + 3/6 * 5
🥳🥳🥳

Еще есть интересный вопрос на понимание: А что будет, если перебрасывать мы будем не один раз, а два, три и так далее? Меня это кстати спрашивали на собеседовании в одной компании. Нужно включить голову 🤔


Спойлер для двух перебросов (максимум 3 броска):

Так как при одном перебросе (двух бросках) матожидание оптимальной стратегии равно 4.25, то при двух перебросах оптимально оставлять 5 и 6.

E(W) = 4.25 * 4/6 + (5 + 6) * 2/6 = 14/3 = 4.666...


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


Мы используем оптимальное правило остановки: перебрасываем, пока не выпадет 6. Вероятность того, что 6 рано или поздно выпадет, равна 1, поэтому матожидание стратегии стремится к 6.

🐍 Python можно задать вот так

def expected_value(rerolls, sides=6):
"""
Возвращает максимальное матожидание,
если осталось несколько перебросов
"""
V = (sides + 1) / 2

for _ in range(rerolls):
total = 0
for x in range(1, sides + 1):
total += max(x, V)
V = total / sides

return V

for k in range(5):
print(f"{k} перебросов. Матожидание = {expected_value(k)}")


Ставьте 🐳, если понравился разбор и нужен разбор еще задач!
Делитесь в комментариях, попадалась ли вам подобная или похожая задача? Можно разобрать!

👌 Если у вас есть Premium, вы можете бустануть канал — это бесплатно и занимает 3 секунды. Нам совсем чуть-чуть осталось до 10 уровня, хочу поставить обои!

@zasql_python
Please open Telegram to view this post
VIEW IN TELEGRAM
3🐳88131073
Навыки аналитики выходят за рамки одной профессии

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

На программе «Аналитика данных» от МФТИ и Нетологии вы последовательно разберёте весь путь работы с данными: от сбора и обработки до анализа и визуализации. В программе — Python, базы данных и базовые методы ИИ.

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

Начать учиться → https://netolo.gy/ew7c

Реклама. ООО “Нетология” ОГРН 1207700135884 Erid:2VSb5yvVePb
167🐳322
Как правильно входить в собеседование

Оригинал поста

Ладно, тут не только про шашлыки

🙊 Комментарии к посту

А потом этот чел шашлычник напишет здесь 10 постов что рынок не тот, его, короля, не берут на работу)

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

Так в чём неуважение-то проявляется в случае с шашлыком? У меня в 2025 году вообще было 2 собеседования в ресторане. И что тут неуважительного? И вопросы позадавали, и поели вкусно.


А вы что думаете? Норм шашлыки делать на собесе или стрем?

🍢 — норм, можно показать на практике многозадачность, критическое мышление и умение жарить шашлыки.

👎 — стрем, кандидат должен быть вовлечен в собеседование и это смущает вообще. Хочется быть "на равных".

@zasql_python
Please open Telegram to view this post
VIEW IN TELEGRAM
7872732
[СТАТЬЯ] Покоряем гору временных рядов: делаем прогноз для 200+ рядов с библиотекой Etna

У Магнит OMNI 19 января вышел туториал для новичков по временным рядам с использование библиотеки ETNA

Ниже короткий разбор, что в ней есть 👇

1. В статье начали с наивных прогнозов последним значением, а далее начали применять библиотеку ETNA
2. Сравнивали несколько моделей по WAPE (абсолютной взвешенной ошибке)
3. Показали как применить пользовательские преобразования (в примере — создание линейного тренда для модели линейной регрессии) ✏️
4. Выделили блок про стандартизацию данных для оценки временных рядов (в целом, это нужно для соразмерности сравнения ошибок между моделями).
5. Уделили время аномалиям (что они влияют на прогноз и как фреймворк может их обнаруживать).
6. Какими значениями можно заменять аномалии (в примере — предыдущее значение).
7. Далее указали, что проблема может быть в точках изменения тренда.

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

Сам сталкивался с проблемами аномалий и точек перегиба — в статье это подсвечено.

Если вдруг будет интересно, можно попробовать собрать пару постов по прогнозу временных рядов, если увижу много 📈 (давайте попробуем 150+).

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

А как у вас дела с временными рядами? Успели с ними поработать и что-то спрогнозировать? Делитесь в комментариях

@zasql_python
Please open Telegram to view this post
VIEW IN TELEGRAM
98962