Аналитический джаз


Гео и язык канала: Россия, Русский
Категория: Образование


Моя личка для любых вопросов: @AnnaDenis
ex-Head of Analytics, ex-netmonet, Avito, Ozon. Сейчас работаю на американскую компанию Nim. 7+ лет опыта в product и data-аналитике, за 2 года выросла с джуна до лида. Веду курсы, консультации и менторство :)

Связанные каналы

Гео и язык канала
Россия, Русский
Категория
Образование
Статистика
Фильтр публикаций


🔻 Как быть востребованным на рынке труда в 2026? 🔻
(В том числе на зарубежном)

Бесплатный вебинар 27/08 (19:00 по мск)

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

Или, что еще обиднее, срезаются на первых этапах, не понимая, в чем причина.

27 августа в гостях у Аналитического Джаза будет приглашенный эксперт в области Data Science & Analytics - Алишер Жураев.

Алишер уже больше полутора лет успешно работает на самом конкурентном европейском рынке - рынке UK.

Там он смог не только найти первую работу сам, но и успешно с повышением ее сменить 💪

— 6 лет в Analytics & Data Science
— За плечами Avito, Ozon и Тинькофф
— Работает в международной AI-компании

Что будет в программе:

➡️ Отличия зарубежки от РФ
➡️ Как искать первую работу
➡️ Как оформлять резюме
➡️ Самые сложные места в интервью
➡️ Как искать рефералов

Бонусом разберём, какие проекты действительно sexy для вашего резюме и как их искать

✈️ Поймем, реально ли "залететь" на рынок зарубежки сразу или лучше сначала поработать в РФ

🤖 Посмотрим самые крутые проекты Алишера, включая AI-автоматизацию более чем для 60 аналитиков

❤️ Ответим на любые ваши вопросы

А также расскажем про то, как можно с нами поработать ❤️

🎁 Для тех кто досмотрит до конца - подарок 🎁

Алишер подготовил гайд, где рассказывает про собеседования в 6 (!) разных компаний, которые он проходил в последние пару месяцев. Настоящий бриллиант для тех, кто выходит на рынок!


Ссылка на эфир придет в канал за 5 минут до начала


Разбор задачек с собеседований vol. 10 🍏

Юбилейный десятый выпуск, и у нас снова Python ❤️

Задачка несложная, но мне она очень нравится по двум причинам:
• Можно решать тремя подходами, все правильные, но какие-то красивее
• В ней есть робот

Задачка с интервью в Магнит 🛒 Условие:
Робот стоит в точке (0, 0). Ему подаются команды: U (вверх), D (вниз), L (влево), R (вправо). Определить, вернется ли робот в исходную точку после выполнения всех команд.

Примеры:

"UD" → True
"RRDD" → False



💡 ИДЕЯ

Робот вернется в (0, 0) тогда и только тогда, когда:

➡️ число шагов вверх = числу шагов вниз (U == D)
➡️ число шагов влево = числу шагов вправо (L == R)

Причем порядок команд не имеет значения. "UDLR" и "ULDR" дадут один результат.

❗️ Это подсказка, что нам не нужно симулировать путь по шагам - достаточно посчитать буквы!

Но начнем мы именно с наивной симуляции, так как на моей памяти у студентов это самое частое решение 😎


➡️ Решение 1: наивная симуляция

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


def robot_return(s: str) -> bool:
x, y = 0, 0
for c in s:
if c == 'U':
y += 1
elif c == 'D':
y -= 1
elif c == 'L':
x -= 1
elif c == 'R':
x += 1
return x == 0 and y == 0


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

Минус: многословно, четыре ветки if/elif.


➡️ Решение 2: считаем буквы

Раз порядок не важен, а важны только количества - давайте не гонять робота, а сразу сравним счётчики. В лоб через .count():


def robot_return(s: str) -> bool:
return s.count('U') == s.count('D') and s.count('L') == s.count('R')


Одна строка, читается как наша математическая формулировка. Красыво ❤️

А еще это повод узнать .count(), если вы вдруг пока не видели этого метода!

❗️Нюанс (для любителей алгоритмов):

Каждый .count() проходит по всей строке заново. Асимптотика все равно O(n), но с константой 4 (4 использования функции .count()). Если придираются к эффективности - см. решение 3.


➡️ Решение 3: один проход + словарь

Компромисс между читаемостью и эффективностью - пройти строку ОДИН раз и накопить счетчики в словаре:


def robot_return(s: str) -> bool:
count = {'U': 0, 'D': 0, 'L': 0, 'R': 0}
for c in s:
if c in count:
count[c] += 1
return count['U'] == count['D'] and count['L'] == count['R']


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


from collections import Counter

def robot_return(s: str) -> bool:
c = Counter(s)
return c['U'] == c['D'] and c['L'] == c['R']



➡️ Так какой способ "правильный"?

А это прелесть этой задачи, на собесе все три решения - правильные. Но показывают разное:

1️⃣ [Симуляция] → "Я перевожу условие в код дословно, без ошибок"
2️⃣ [.count()] → "Я упростил задачу"
3️⃣ [Словарь] → "Я упростил задачу + уменьшил число проходов"

Насколько будут придираться - зависит от собеседующего. Главное тут - уловить фишку про равное количество букв и озвучить ее.

Еще лучше - учесть ее и написать решение 2 или 3)

————
Какое решение написали бы вы? 🙃
По классике - жду ваших 🔥🔥🔥

Предыдущие разборы:
Можете тыкнуть случайный в честь юбилея 🥰

vol. 1 | vol. 2 | vol. 3 | vol. 4 | vol. 5
vol. 6 | vol. 7 | vol. 8 | vol. 9


Разрешите себе быть непродуктивным, или Как совмещать работу и жизнь и не выгорать?

Сегодня у нас терапевтический подкаст для тех, кто винит себя за то, что он непродуктивный или всегда "недостаточно хорош" 🙃

Меня уже человек 7-9 на менторстве и консультациях спрашивали про то, как мне удавалось/удается совмещать работу + учебу или работу + канал.

И я сформулировала 10 правил, которых стараюсь придерживаться, чтобы не выгорать и не стрессовать 🐱

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


Шпаргалка по хи-квадрат тесту

Продолжаем нашу серию постов-шпаргалок 🦝

Мы уже разобрали z-test, t-test и Манна-Уитни, пришло время хи-квадрата!

Сделала акцент на методологии расчета + мотивации, почему формула именно такая. Обычно это больше всего смущает тех, кто сталкивается с критерием впервые ✌️

Поддержите 🔥🔥🔥

А в комментах пишите вопросы и что бы вы хотели видеть в следующих шпаргалках 😳


Про человечность в найме

Хотелось бы запилить пост про любовь к ближнему 🐵. Я в последнее время, мягко говоря, в а%уе от того как у людей проходит коммуникация с HR.

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

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

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


3️⃣ Кормление завтраками

С одной стороны, это довольно стандартная история - компания хочет посмотреть всех кандидатов, и процесс найма растягивается.

С другой стороны, сообщать об этом можно по-разному. Знаю уже три истории, которые звучат примерно так:

(интервью - вт/ср) - HR говорит, что вернется до конца недели

(пт) - кандидат аккуратно спрашивает в середине дня, нет ли новостей

(пт) - HR отвечает, что вообще-то неделя до воскресенья, и что это вообще за наглость, и "я отвечу в понедельник"

(ср/чт) - кандидат снова спрашивает, нет ли новостей


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

➡️ сообщать об этом до его истечения,
➡️ объяснять причины / рефлексировать
➡️ и назначать новый дедлайн

Поэтому для меня немного дикость, что некоторые HR'ы считают, что дедлайн для внешнего человека - это пустой звук, и "как отвечу, так отвечу" 😐

Альтернативы чуть менее токсичные, но, к сожалению, становятся уже стандартом рынка:

➡️ не игнорят + постоянно говорят, что результатов пока нет
➡️ не игорят + называют дату + постоянно ее меняют
➡️ игнорят

Мне еще иногда странно, что проактивно не пишут отказ. Чтобы получить ответ, что ты не нанят, надо самому уточнить статус 🤓


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

Чаще всего ситуация происходит в бигтехах, где один HR не определяет компанию, и приходится просто ждать и терпеть. Единственное, что я всегда рекомендую -

❗️Не останавливайте процесс собеседований вплоть до оффера

До оффера лучше быть на этапах хотя бы в 2-3 приглянувшиеся компании.


2️⃣ Отмена и игнор встреч

Тут у меня уже 4 истории за последние 2 недели (!) 😐

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

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


1️⃣ Давление на кандидата

Это вообще вишенка не торте 🍒 Дают оффер (а иногда даже не дают, просто обещают оффер) и просят дать ответ завтра 😐

У тебя в параллель еще идут собесы, непонятны результаты, но тебя уже лишают возможности "посмотреть всех" 🤫

Тут я, кстати, совет уже обычно даю. Если нет мэтча на 100% - то прямо просить сдвинуть сроки.

❗️Вас просят за один день принять решение, которое в идеале будет влиять на ближайшие 2-3 года вашей жизни. Не принимайте его, не посмотрев все опции

Прикол кстати, что компании обычно отступают и говорят что-то вроде "ну ладно, нужно еще полторы недели ок" 🤓

Но последнее и логично. В контексте найма сотрудника на следующие несколько лет 1-2 недели обычно не играют решающей роли. Поэтому такие мувы - это просто необоснованное давление 💅

———
В общем, кандидаты, если у вас происходит такой же трэшак - то вы не одни. Держимся, собеседуемся и не дизморалимся. Желаю вам всем адекватных HR'ов, их тоже много 😎

HR'ы и нанимающие менеджеры - будьте добрее к кандидатам. Все мы люди, и найм сам по себе очень стрессовый процесс.

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

1.7k 0 11 20 59

Разбор задачек с собеседований vol. 9 🍏

Сегодня отдельный душный класс SQL задач - это задачи на работу с текстом.

Задачка у нас с собеса аж в 🔍! Работать будем с таблицей google_file_store(filename, contents) + Postgres. Но я в качестве бонуса расскажу еще как это решать в клике.

Условие:
Найти, сколько раз точные слова bull и bear встречаются в колонке contents. Считать все вхождения, даже если они в одной строке несколько раз. Регистр не важен. Подстроки вроде bullish или bearing не считаем. Вывести слово и число вхождений.


🚨 Как и всегда, первым делом - разбираем условие.


➡️ Ловушка 1: считаем вхождения, а не строки

Первый рефлекс - написать WHERE contents LIKE '%bull%' и посчитать строки. Но в одной ячейке bull может встретиться три раза, а строка при этом одна.


➡️ Ловушка 2: точное слово, а не подстрока

В условии четко сказано, что bullish, bullard, abull и другие покемоны нам не подходят. Что еще раз подтверждает, что LIKE '%bull%' - мысль не туда 🎩

Нам нужно РОВНО слово. Это ключевой момент, и именно на нем многие валятся.


➡️ Ловушка 3: регистр

BULL, Bull, bull - это одно и то же слово. Значит, где-то по пути все приводим к нижнему регистру (LOWER) или используем регистронезависимый флаг регулярки. Забыл - недосчитал 😑


➡️ Ловушка 4: пунктуация

В реальном тексте слова идут с пунктуацией: bull., bull,, (bull), bear!. Если резать только по пробелу, то bull. останется как bull. и не совпадет с bull - и вы недосчитаете 🌧

Поэтому резать надо не по пробелам, а по всем "не-буквам" сразу.


😎 А теперь кодим!

Самый прозрачный подход:

• режем текст на отдельные слова по любым не-буквам,
• приводим к нижнему регистру,
• оставляем только точные bull/bear


SELECT
word,
COUNT(*) AS nentry
FROM (
SELECT unnest(
regexp_split_to_array(lower(contents), '[^a-z]+')
) AS word
FROM google_file_store
) AS words
WHERE word IN ('bull', 'bear')
GROUP BY word;


1️⃣ lower(contents) - гасим регистр (ловушка 3)

2️⃣ regexp_split_to_array(..., '[^a-z]+') - режем по всему, что НЕ буква: пробелы, точки, скобки, дефисы. Так пунктуация не прилипает (ловушка 4)

3️⃣ unnest(...) - разворачиваем массив слов в отдельные строки, теперь одна строка = одно слово (ловушка 1)

4️⃣ WHERE word IN ('bull', 'bear') - оставляем только нужные слова (ловушка 2)

Все четыре ловушки закрыты одним запросом 💪


🎁 БОНУС 1: Мини-фишка Postgres

Postgres умеет искать все совпадения по regex и выдавать их построчно. Граница слова в Postgres - это \y, флаг g - искать все вхождения, i - без учета регистра:


SELECT
'bull' AS word,
COUNT(*) AS nentry
FROM google_file_store,
regexp_matches(contents, '\ybull\y', 'gi')
UNION ALL
SELECT
'bear' AS word,
COUNT(*) AS nentry
FROM google_file_store,
regexp_matches(contents, '\ybear\y', 'gi');


regexp_matches с флагом g возвращает по одной строке на каждое совпадение - поэтому COUNT(*) сразу даёт число вхождений, даже если их несколько в одной ячейке. А \y...\y гарантирует, что мы ловим слово целиком, а не подстроку.


🎁 БОНУС 2: Решение для Clickhouse

Тут есть шикарная функция countMatches - она сразу построчно считает число совпадений regex:


SELECT 'bull' AS word,
sum(countMatches(lower(contents), '\\bbull\\b')) AS nentry
FROM google_file_store
UNION ALL
SELECT 'bear' AS word,
sum(countMatches(lower(contents), '\\bbear\\b')) AS nentry
FROM google_file_store


Обратите внимание: мы тут используем \b, это обозначает границу слова. А чтобы бэкслэш считался корректно, используем именно \\b.

Ну или если хочется в лоб перенести Решение 1, то в ClickHouse это splitByRegexp + ARRAY JOIN:


SELECT word, count() AS nentry
FROM google_file_store
ARRAY JOIN splitByRegexp('[^a-z]+', lower(contents)) AS word
WHERE word IN ('bull', 'bear')
GROUP BY word


ARRAY JOIN - это ровно тот же unnest из постгреса, просто по-кликхаусному)

———
Признавайтесь, кто бы написал LIKE ‘%bull%’ ?? Жду ваших 🔥

Предыдущие разборы:
• Разбор задачек с собеседований vol. 6
• Разбор задачек с собеседований vol. 7
• Разбор задачек с собеседований vol. 8

1.6k 0 16 15 35

Вам не стыдно готовиться к собеседованиям??

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

Тут мне надо совершить каминг-аут - я сама готовлюсь к каждому собесу, и менти своих тоже готовлю в идеале к каждому собесу.

И речь не про generic повторение статистических терминов и нарешивание задачек по SQL (но это мы тоже делаем).

Речь про специфическую подготовку под конкретную компанию и вакансию 🤑

Моя последняя самостоятельная подготовка заняла ~1.5-2 дня исследований, штудирования статей и специфической технички. А компания при этом довольно рядовая 😐. Давайте разберем, что ж я делала эти два дня 🙃


Подгонка опыта под вакансию

В вакансии нужен опыт в *сфере Х*, а у тебя он только опосредованный? Будь добр, изучи все, что связано с метриками *сферы Х*, свяжи это со своим личным опытом и уложи в стройную историю.

❗️ То что вы прошли скрининг != что вы идеально подходите под вакансию, и вас не будут про нее спрашивать

Вам еще предстоит это доказать рассказом о себе.


Изучение истории компании и ее соцсетей

Соцсети - это Telegram, Instagram (реже), YouTube, Habr, Medium. На последних трех ресурсах компании могут публиковать рассказы о своих технологиях и исследованиях - то, что вполне может попасться на кейсах.

Иногда бывают еще какие-то статьи в Forbes или специфических журналах а-ля TravelTech, например 😲

Тут есть несколько основных целей:

➡️ Отвечать на вопрос "Что вы знаете о компании"
➡️ Глубже погрузиться в бизнес- и культурный контекст
➡️ Понять short-run и long-run цели
➡️ Поискать матрицу компетенций
➡️ Глубже понять техстек

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


Изучение структуры ЦА и Acquisition'а

❗️ Хорошее понимание маркетинга = хорошее понимание разрезов

• какую проблему решает продукт?
• упор на новых или старых пользователей?
• какая география? пол? возраст?

Тут я маньячелло 🔪 Я прям смотрю рекламные объявления в Meta Ads Library, захожу на Semrush и ищу источники трафика, ключевые слова, по которым находят компанию, и тп.

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


Полный разбор воронки и бизнес-модели

Хотите придумывать на кейс-интервью хорошие метрики для АБ? Просто подготовьте их заранее 🤓

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


Разбор специфичных продуктовых кейсов

... А дальше изучаю потенциальные задачи/проблемы, которые может решать компания 🥁

Это нужно, чтобы лучше понять:
• метрики,
• продукты,
• приоритеты.

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

+ Я смотрю конкурентов:

➡️ Есть ли перед компанией/продуктом задача кого-то "обогнать"?

➡️ Что можно позаимствовать у конкурентов?

➡️ А что у них в соцсетях, с маркетингом и тд (колесо Сансары дало оборот 🤓)?

Хотите иметь наготове парочку гипотез по улучшению продукта? Соприте их у конкурентов.


Разбор технических нюансов

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

Потому что у них такая специфика бизнеса!! 👍

➡️ Мало наблюдений? Вас вероятнее спросят про методы повышения чувствительности

➡️ Нет рандомизации? Готовьте Causal Inference

➡️ Пользователи в тесте общаются между собой? Опа, сетевые эффекты

Это не рандом. Это система, и вы можете такое предугадывать с вероятностью 80-90% и усиливать подготовку.

———
В общем, надеюсь, убедила, и вы поддержите меня 🔥🔥🔥, если было полезно 💪

Но мне вот интересно, правда ли многие не готовятся к собесам? И как оно в итоге складывается?

1.8k 0 31 24 69

Содержание идеального резюме на стажера 😄

Только сегодня переслушивала сказку "Про Федота-стрельца, удалого молодца" 🥁

Прошло уже больше 15 лет как слышала ее впервые, а все еще безумно актуально ))

Если у вас есть ~часик, очень рекомендую искренне посмеяться! Поверьте, на цитаты расхватаете 🥰

Вот это, мне кажется, мы в семье уже наизусть заучили 😋:

Спробуй заячий помет!
Он — ядреный! Он проймет!
И куды целебней меду,
Хоть по вкусу и не мед.
Он на вкус хотя и крут,
И с него, бывает, мрут,
Но какие выживают —
Те до старости живут!..


Топ-3 лайфхака для поведенческого интервью

Привет, подписчики! 🤑 Как вы знаете, я иногда тоже хожу на интервью, чтобы держать себя в форме, и это выливается в какие-то посты с инсайтами 💪

Например, тут я писала про блиц-вопросы на HR-интервью в WB, тут обсуждала итоги техсекции в WB, а тут и тут разбирала задачки со своего интервью в Yandex. А в канале спринта даже разбирала задачи со стажировки в Т-Банк и кейс с интервью в ЦИАН ✌️

Совсем недавно была на behavioral интервью в европейскую компанию, и хочу поделиться с вами тремя новыми лайфхаками

Behavioral интервью (поведенческое интервью) — это когда нанимающий менеджер или HR просит рассказать о реальных ситуациях из прошлого опыта, делая главный упор на анализ конкретных действий и результатов. Именно там вам задают вопросы про

• конфликтные ситуации в прошлом,
• проекты, которыми вы гордитесь,
• ситуации, когда для вывода не хватало данных, и т.д.


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


3️⃣ Лучше сразу думать, что вам нравится и не нравится в позиции

Я собеседуюсь на Lead позиции, и уже с момента Middle важно, чтобы кандидат не слетел и действительно хотел работать в компании.

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

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

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


2️⃣ Если вы подготовили большинство вопросов, то вы можете сами вести интервьюера

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

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


Или может быть еще так:

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


А, или еще так:

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


Я насчитала пока ~80-100 вопросов behavioral-формата, которые потенциально могут спросить. Ответы на многие из которых пересекаются 😐

Так что подготовиться - вопрос инвестиции 3-4 дней в заучивание системно подготовленных ответов. А дальше при достаточной подготовке диалог можно направлять 🥁 Но это приходит с опытом


1️⃣ Ключевые слова действительно роляют

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

Так что приходится внимательно читать вакансию между строк, ничего не поделаешь 🐰

Как мы это на менторстве обычно отрабатываем:

Например, если вакансия больше в маркетинговую аналитику, то лучше вписывать в ваш опыт такие слова как UTM-метки, воронка, ROAS, трафик, окупаемость трафика, платный/бесплатный трафик, SEO-оптимизация и др. Сами ключевые слова смотрим из личного опыта + из того что написано в вакансии.

+ При рассказе о прошлых местах работы - акцент на взаимодействии именно с командой маркетинга


———
Как сами, читаете внимательно вакансию перед интервью? 🙃

❤️ - всегда внимательно читаю вакансию перед интервью

👍 - как повезет, больше закапываюсь в свой личный опыт

🔥 - зависит от вакансии


📱 НОВОЕ ВИДЕО! ДИЗАЙН И АНАЛИЗ АБ ТЕСТОВ 📱

40 минут, которые точно не пройдут для вас напрасно ❤️

Разбираем полный фреймворк дизайна и анализа A/Б-тестов (и для собесов, и для реальных задач):

➡️ Какие шаги важно не упустить при дизайне и анализе АБ?
➡️ Какая идеальная структура при ответе на кейс?
➡️ Где вас могут подловить на интервью?
➡️ На что обратить внимание при анализе прокрасов?
➡️ Чем будут отличаться ответ на кейс и рабочая практика?

🇷🇺 Смотреть без ВПН
📱 Смотреть на YouTube

Жду ваших 🔥🔥🔥

Ссылка на шаблон


Разбор задачек с собеседований vol. 8 🍏

Возвращаемся к Python 💪 Сегодня классика классик, которую при этом заваливают чаще, чем кажется.

Задачка с интервью в 🛒. Условие:
Написать функцию, определяющую, является ли целое положительное число простым.



➡️ Что такое простое число?

Простое число - это натуральное число больше 1, у которого ровно два делителя: единица и оно само. То есть 7 - простое (делится только на 1 и 7), а 9 - нет (делится еще и на 3).

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

❗️Единица - НЕ простое число
У нее всего один делитель - она сама. Определение требует ровно двух.

❗️Двойка - простое
Классическая ошибка - написать "если число четное, то не простое" и словить False на двойке 🤓


➡️ Уточняем условие

Нам сказали, что на вход придет целое положительное число. Формально это значит n ≥ 1, но правильным тоном будет спросить:

• А ноль или отрицательные точно не прилетят? Если да - падаем с ошибкой или возвращаем False?
• А если прилетит не int?

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


➡️ Наивное решение

Самое простое - перебрать всех кандидатов до n-1:
• Если n < 2 - возвращаем False (закрывает и 0/1, и отрицательные, если все-таки просочатся)
• Иначе - проверяем делители


def is_prime(n: int) -> bool:
if n < 2:
return False
for i in range(2, n):
if n % i == 0:
return False
return True


Но тут мы проходим все числа от 2 до n и на числе типа 10⁹ будем сидеть очень долго. Вас обязательно спросят "а можно быстрее?" 🙃


➡️ Надо проверять не до n, а до √n

Докажем от противного. Пусть n - составное (= не простое), то есть n = a · b, где оба множителя больше 1. Предположим, что оба множителя больше √n. Тогда:

a · b > √n · √n = n

Но a · b = n. Получили n > n - противоречие ❌

Значит, хотя бы один из множителей ≤ √n. А раз так - если у числа вообще есть делитель, мы гарантированно найдем его до корня ✌️


➡️ Корень - включительно или нет?

Корень нужно включать!

Смотрим на n = 25. √25 = 5. Если мы проверим только до 4 включительно, мы пропустим единственный нетривиальный делитель.


➡️ Кодим 🥰


def is_prime(n: int) -> bool:
if n < 2:
return False
i = 2
while i * i

1.7k 0 23 20 27

Шпаргалка "Соль в АБ-тестах"

Продолжаем нашу серию шпаргалок ❤️

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

Поэтому теперь постаралась объяснить это для вас

➡️ на примерах
➡️ максимально простым языком
➡️ с кодом! чтобы при желании вы могли воспроизвести мои результаты 🥰

Поддержите 🔥🔥🔥


Топ-5 ошибок тех, кто хочет развиваться в аналитике

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

А может, мир и не сдвинется с места, но, как говорится, не могу молчать 😎


5️⃣ Идти в первую попавшуюся компанию

Вас мама не на помойке нашла 💅💅💅

Если вы чувствуете,
• что не_вайб,
• что вам будет в компании плохо,
• что вас хотят загнать 9/9/6 в офис - не идите!!

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

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


4️⃣ Бояться менять работу

Сейчас по всем сигналам видно, что рынок тяжелый. Но не настолько тяжелый, насколько паника по этому поводу 🤓

Это приводит к тому, что люди демонизируют смену работы и предпочитают сидеть на одном месте 3-5-10 лет. При том что это имеет смысл только когда:

➡️ Ваша вилка - в рынке
➡️ Работа не портит вам психику
➡️ Вы растете в компании карьерно
➡️ У вас есть интересные задачи, и вы развиваетесь

Ну или какой-то из пунктов может перетягивать другой (а-ля "очень быстро развиваюсь и пока готов жертвовать зарплатой").

Но я вижу как ребята сидят на одном месте, когда проседают ВСЕ пункты. Иногда из-за того что "ну как же команда без меня", а иногда из-за страха, что вы никому не нужны.

❗️ Простой совет - get over it. Стагнация на одном месте в нашей сфере рано или поздно приводит к увольнению.


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

• Переработки снижают зарплату/час
• Саморазвитие - повышает в долгосроке
• Проблемы с психикой → Снижение продуктивности → Повышение знаменателя


3️⃣ Уделять мало внимания софтам

Аналитики до уровня Senior (а иногда и выше) очень мало внимания уделяют "форме" и очень много "содержанию".

➡️ Модель работает, но эксель невозможно читать

➡️ Сделано исследование, непонятны/отсутствуют выводы

➡️ Задача выполнена, но менеджмент ожиданий в жопе

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


2️⃣ Учить курсы ради курсов

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

Вы сначала ищете на работе, ГДЕ важен скилл. И только потом учите этот скилл. Иначе эконометрика, алгоритмы, ваш экскурс в DE, дополнительный курс по АБ и прочее просто потонут в рутине, и вы все забудете.

А, и это если вы вообще досмотрите курс до конца - какая мотивация это делать без реальной проблемы? 👦


1️⃣ Пытаться вызубрить все на 100%

Это топ-1 ошибка для выхода на рынок. Нет ничего более важного, чем прикладные навыки.

Be street smart, not book smart.


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

+ Помним, что собеседования - отдельный скилл. Даже если вы выучили все на 100%, это не значит, что офферы резко магически полетят к вам 😭 Есть еще самопрезентация, стресс-фактор, вайб-фактор, behavioral-вопросы и тд. Помните про это !!

————
Признавайтесь, было? У меня 4/5 в разные периоды моего карьерного пути ✌️ Могу только надеяться, что более молодые аналитики не повторят этих ошибок 🥲

1.6k 0 20 12 50


Показано 14 последних публикаций.