Junior аналитик данных | Собеседование | karpov.courses

Поділитися
Вставка
  • Опубліковано 4 чер 2024
  • Симулятор аналитика: bit.ly/3S0YWLu
    Продолжение открытых собеседований на позицию junior аналитика! На этот раз в прямом эфире будем писать код на Python, анализировать данные в Pandas и считать продуктовые метрики в ClickHouse.
    Учитесь Data Science с нами: karpov.courses/
    Ссылка на чат: t.me/karpovcourseschat
    00:00 Введение и представление
    5:19 Структура собеседования
    6:04 Первая задача: повернуть список
    9:29 Cчитать датафрейм
    12:08 Уникальные секции
    12:52 Топ 10 юзеров по прослушиванию музыки
    19:54 Самый популярный раздел у тех, кто не смотрит ленту
    29:05 Кто дольше всех пользуется продуктом
    37:45 Лучший график для данных
    39:06 Обратная связь и переход ко второму частнику
    41:54 Описание данных
    42:55 Количество событий по дням
    45:10 Просмотры и лайки по дням
    51:48 Лайфхак
    53:28 Добавление новой колонки
    54:30 Фильтрация уникальных постов
    56:49 Медиана активного количества дней
    1:03:32 Единственный активный день 1 сентября
    1:12:29 Обратная связь
  • Розваги

КОМЕНТАРІ • 96

  • @user-ze1jo3ln5k
    @user-ze1jo3ln5k 2 роки тому +37

    Анатолий, спасибо большое за очень лояльное и доброжелательное отношение к ребятам с подробными комментариями! Это очень полезно и комфортно смотреть и усваивать. Буду всем рекомендовать ваши семинары и курсы.

  • @DevlogWriter
    @DevlogWriter 2 роки тому +2

    Александру и Егору, спасибо! Молодцы! Я бы так не смог онлайн на незнакомом материале всё быстро решить. Круто!

  • @eujc9009
    @eujc9009 2 роки тому +3

    Видео супер! Спасибо большое за работу.

  • @daurendautkazy1918
    @daurendautkazy1918 Рік тому +3

    да действительно очень полезно! спасибо вам Анатолий! И Александру и Егору!

  • @user-hp3dp2sz2b
    @user-hp3dp2sz2b Рік тому +6

    Блин, так круто! Вы даже не представляете, насколько это было полезно для меня , прям взахлёб

  • @NatashaPechenka
    @NatashaPechenka 2 роки тому +17

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

  • @channel_SV
    @channel_SV 2 роки тому +19

    Спасибо за такой формат! Было интересно решать задания самостоятельно, поэтому использовал df со степика, но если не сложно выкладывайте пожалуйста ссылки на данные чтобы можно было попробовать всё самому.

  • @VakaramGolang
    @VakaramGolang 2 роки тому +18

    А я такой думаю. Как это не видел видео. А оно три часа назад только загруженно было. Ну молодцы. Респект вам. Понятно стало что на juna не так много знать нужно. И комплекс "самозванца" Пропадает потихоньку. Спасибо за ваш труд. Удачи и вам.

  • @aurelio431
    @aurelio431 2 роки тому

    Спасибо большое)

  • @kemal1910
    @kemal1910 Рік тому +1

    Классное собеседование. Не такое душное, как бывает обычно. =)

  • @user-_kirill
    @user-_kirill 2 роки тому +4

    Красавчики, хотя собеседования проходят очень по разному. Зачастую побольше спрашивают

  • @kattynia5956
    @kattynia5956 2 роки тому +5

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

  • @vladimirmanikhin7918
    @vladimirmanikhin7918 Рік тому +3

    В моём понимании сценарий лучшего собеседования, когда кандидат презентует себя: старается отвечать развернуто, если с ходу не врубается, то уточняет/рассуждает и в таком вот духе... "Если решил, почему именно так? Какие минусы/плюсы такого подхода? А можешь по-другому? и т.д." А данный собес больше производит впечатление мастер-класса, на котором Анатолий как будто заинтересован в максимумальной прокачке Саши, не зависимо от исхода собес-а...

  • @fallennephalem1258
    @fallennephalem1258 Рік тому +3

    Крайне лояльный интервьювер) Ещё ни разу не попадал к таким) Но, наверное, дело как раз в том, что нет цели узнать уровень, есть цель дать опыт прохождения собеса)

    • @karpovcourses
      @karpovcourses  Рік тому +6

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

    • @fallennephalem1258
      @fallennephalem1258 Рік тому +1

      @@karpovcourses Тогда могу только дать вам свой респект за это) С радостью у вас бы прособеседовался)

  • @user-zh3uq8pc8i
    @user-zh3uq8pc8i Рік тому +1

    это очень полезно! спасибо

  • @user-kk5zl7ht1u
    @user-kk5zl7ht1u Рік тому

    Хотелось бы тоже поучаствовать в таком, что бы потом посмотреть на себя со стороны

  • @krokenstiv8777
    @krokenstiv8777 2 роки тому +3

    Егор очень молодо выглядит

  • @TeppopucT
    @TeppopucT Рік тому

    Огонь

  • @andyvorkzla
    @andyvorkzla 2 роки тому +20

    в первом же задании сразу не правильно, в его случае корректно бы было for i in range(4, -1,-1): print(my_list[i]). А так он просто вывел значения range, никак не связанные с my_list

    • @89272606798
      @89272606798 2 роки тому +6

      Но корректнее было бы
      for i in range(len(my_list), 0,-1):
      print(my_list[i-1])

    • @909404
      @909404 2 роки тому +8

      @@89272606798 my_list[::-1]

    • @89272606798
      @89272606798 2 роки тому +1

      @@909404 ну вы дали новое решение, которое конечно лучше, я же поправил вышенаписанный код

    • @user-kk6nr5hu6o
      @user-kk6nr5hu6o 2 роки тому

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

    • @andyvorkzla
      @andyvorkzla 2 роки тому +2

      @@user-kk6nr5hu6o это референс на идею парня из видео. Разумеется, есть много более адекватных вариантов даже без длины списка. типа my_list.reverse() или my_list[::-1] или [*reversed(my_list)]

  • @user-vk7tm8ox3v
    @user-vk7tm8ox3v 2 роки тому

    1. Sorted

  • @datascience5487
    @datascience5487 2 роки тому +3

    А можно ссылку на датасет, порешать эти задачки?

  • @bellamina
    @bellamina 2 роки тому +21

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

    • @47clere
      @47clere 2 роки тому +1

      Можно сгенерить набор случайных данных

  • @alekseyfomin7921
    @alekseyfomin7921 3 місяці тому +1

    Если кто-то захочет потренироваться в pandas, задания из видео можно выполнять на дата сете dt:
    import numpy as np
    import pandas as pd
    from datetime import datetime
    dt_size = 1000 #размер дата сета
    def random_date(start, end):
    pattern = '%Y-%m-%d'
    start = datetime.strptime(start, pattern).timestamp()
    end = datetime.strptime(end, pattern).timestamp()
    return(np.random.randint(start, end))
    id = np.random.randint(1, 51, dt_size)
    cats = ['music', 'message', 'feed', 'photo']
    section = np.random.choice(cats, dt_size, replace=True, p=[0.3, 0.30, 0.10, 0.30])
    time = [random_date('2021-02-15', '2022-08-21') for _ in range(0, dt_size)]
    dt = pd.DataFrame({'id': id, 'section': section, 'time': time})

  • @user-mf6sj9dm3l
    @user-mf6sj9dm3l Рік тому

    СTE надо аккуратно использовать, tmp можно быстро закончить...

  • @bristolzoo845
    @bristolzoo845 2 роки тому

    Можете ссылку кинуть датаферйма для выборки?

  • @user-cp5qh5uc9n
    @user-cp5qh5uc9n 2 роки тому +4

    Так первое задание же неправильно решено, он просто вывел индексы и это совпало ибо лист был [1, 2, 3, 4, 5].

  • @Egor1ctrl
    @Egor1ctrl 2 роки тому +1

    Я верно понимаю, что это только часть собеседования, именно на кодинг?
    Если да, то что было бы в следующем этапе? Вопросы по матстату и теории вероятностей?
    И взяли ли бы Вы ребят на работу после такого собеседования?

    • @karpovcourses
      @karpovcourses  2 роки тому

      Следующая серия могла бы быть вот такой - ua-cam.com/video/svk9GmIMR3U/v-deo.html
      И результат зависит бы суммарно от двух секций.

    • @Egor1ctrl
      @Egor1ctrl 2 роки тому

      @@karpovcourses спасибо. Сразу посмотрел после этого ролика.
      Ну если бы один отвечал за всех 4 человек, он бы попал к Вам в команду? Вроде как особых претензий у Вас к ним не было.

    • @karpovcourses
      @karpovcourses  2 роки тому +1

      @@Egor1ctrl в целом да, если усреднить всех четверых то это 4 из 5. Думаю, что если бы хорошо сделали тестовые я бы взял

    • @Egor1ctrl
      @Egor1ctrl 2 роки тому

      @@karpovcourses спасибо за ответ, хотелось бы посмотреть что-то подобное на мидл уровне :)

  • @user-nw9dx4fj9s
    @user-nw9dx4fj9s 2 роки тому +84

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

    • @petyap7600
      @petyap7600 2 роки тому +12

      Нужен просто опыт работы. Через год-два все придет.

    • @alexsavelov7429
      @alexsavelov7429 2 роки тому

      Целиком согласен

    • @MaruiInfantry
      @MaruiInfantry 2 роки тому

      Тоесть к тебе нельзя подойти во время работы и сказать "давай тут поправим". При этом, что ты BA, а не программист. Ахуенный BA. В BA нет спокойных обстановок. Вы сидите на звонке и бреинштормите по 6-8 часов.

    • @asma_asma90
      @asma_asma90 Рік тому +2

      @@MaruiInfantry что такое ВА

    • @marcusaurelius6418
      @marcusaurelius6418 Рік тому

      Что такое базовый курс логики? Если человек понимает работу обычного цикла, или условной конструкции, то он уже способен логично мыслить. В Аналитике нужно знать бизнес процесс, что, откуда и куда, это и есть логика. Аналитику пофиг что считать, бананы, семечки, количество пользователей, главное знать подходы, а это и есть инструменты и методы

  • @user-rx7uh6ze6s
    @user-rx7uh6ze6s Рік тому +1

    Кто ищет датасет, можно найти в чате (ссылка на чат под видео) по поиску "Всем привет. А где можно взять датасет с видео про тех собеседования джуна аналитика?"

  • @user-em5ep9zw4z
    @user-em5ep9zw4z Рік тому +1

    46:56
    Разве нельзя было написать
    select toDate(time) as day, action, count(*)
    from [table]
    group by day, action

  • @bratishkawatermelon3487
    @bratishkawatermelon3487 Рік тому

    На реальных собеседах реально так легко или зависит от работадателя?

  • @user-ub8se9xo7s
    @user-ub8se9xo7s 2 роки тому +3

    Анатолий, в очередной раз огромное вам спасибо за такой формат роликов! По контенту: соискатель, который не мог перевернуть список - удивил. Извините, но соглашусь с предыдущими мнениями - человек не знает основы. Возможно, сейчас и вправду упор на sql + bi, или эффект волнения всё же силён. Хотя, такое надо посреди ночи встать и ответить

  • @user-lo1pf5yg8q
    @user-lo1pf5yg8q 2 місяці тому

    Ds 5 в рос бигтехе и хз как половину решать😮

  • @Apxutektop21
    @Apxutektop21 2 роки тому +1

    Сколько зарабатывал такой специалист? Курсы, материалы для подготовки?

  • @rogostep4875
    @rogostep4875 Рік тому

    спс, но звук слабый.

  • @_Al_Kuznec
    @_Al_Kuznec Рік тому +1

    Про reversed() то забыл что ли?

  • @artur_alf
    @artur_alf 8 місяців тому

    на 1:01:45 сразу понял его ошибку. Не зря учился

  • @mariannanezhurina7399
    @mariannanezhurina7399 2 роки тому +46

    И это интервью на джуна аналитика? У меня на позицию стажера было сложнее. Там спрашивали помимо python, алгоритмы ml (мат часть), методы feature selection и data cleaning, docker, логические задачки давали. Плюс надо было знать англ минимум upper-intermediate. И все это за зарплату стажера 30 к в Москве (:

    • @ikspb
      @ikspb 2 роки тому +28

      В яндекс видимо стажировка была)

    • @glazastik86
      @glazastik86 2 роки тому +55

      И что? Ты решила выпендриться как у тебя сложно? Или как мало у тебя получают стажеры?

    • @mariannanezhurina7399
      @mariannanezhurina7399 2 роки тому +11

      Просто делюсь своим опытом

    • @HelgAscold
      @HelgAscold 2 роки тому +28

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

    • @VakaramGolang
      @VakaramGolang 2 роки тому +12

      У видео другая задача стоит. И они (авторы) на 100 процентов с ней справились. Ну а вообще я тоже самое заметил на зп 60-100 требуют +999 рук и много программ в совершенстве. А вот от зарплаты 250к то там три пять программы табло sql и будь здоров. Даже вышки не нужно.... Чекните сами.

  • @RockrideR6666
    @RockrideR6666 Рік тому

    Перевернуть список без реверса можно так:
    y=[]
    for i in range(len(my_list)):
    y.append(my_list[len(my_list)-i-1])

    • @pvarankin
      @pvarankin Рік тому

      my_list[::-1] и всё

  • @VakaramGolang
    @VakaramGolang 2 роки тому +1

    50 минута cte? PostgreSQL.

  • @bogdanslavnyi1287
    @bogdanslavnyi1287 2 роки тому +1

    Последнее задание - только Postgres, только Хардкор)
    SELECT
    DISTINCT user_id
    FROM (
    SELECT
    user_id
    , toDate(time) as day
    FROM simulator.feed_actions
    WHERE day = '2021-09-01'
    AND user_id IN (
    SELECT
    user_id
    FROM (
    SELECT
    user_id
    , count(*) as days_active
    FROM (
    SELECT
    user_id
    , toDate(time) as day
    , count(*) as actions
    FROM simulator.feed_actions
    GROUP BY user_id, day
    )
    GROUP BY user_id
    HAVING days_active = 1)))

    • @bogdanslavnyi1287
      @bogdanslavnyi1287 2 роки тому

      @@Sibbarb9 Почему? Запрос возвращает идентичный результат. У вас есть предложения как сократить код? Если представить, что в компании нет Clickhouse, а есть Postgres?

    • @user-vb7ms8yx8g
      @user-vb7ms8yx8g 2 роки тому

      Ахаха, больше селектов!!!!

    • @messiaheugene
      @messiaheugene 2 роки тому +8

      Кажется, вы перебарщиваете. Этого будет достаточно и на постгресе
      Select
      user_id
      From
      simulator.feed_actions
      Group by
      user_id
      Having 1=1
      and min(time) >= ‘2021-09-01’
      and max(time) < ‘2021-09-02’

    • @bogdanslavnyi1287
      @bogdanslavnyi1287 2 роки тому +3

      @@messiaheugene Благодарю. Очень элегантное решение. Да, нужно не пытаться сразу же с наскока решить задачу первым способом, который пришел в голову. Но я симулировал условия собеседования (ограничения по времени 5 минут) и это был единственный рабочий вариант, который мне пришел в голову за это время. Раком-боком конечно, но поставленную задачу я верно решил)

    • @bogdanslavnyi1287
      @bogdanslavnyi1287 2 роки тому

      А те токсики кто подкукарекивал, так свой код и не показали)

  • @user-yj9ol5vn6j
    @user-yj9ol5vn6j 2 роки тому +2

    Я что-то не пойму. Есть же reverse, чтобы написать лист задом наперёд. my_list.reverse() прекрасно с этим справляется.

    • @karpovcourses
      @karpovcourses  2 роки тому

      Да, это мог бы быть правильный ответ, но если забыли нужный метод, всегда можно сделать вручную!)