Виталий Лихачев, Павел Мальцев: Публичное собеседование Senior Python Engineer

Поделиться
HTML-код
  • Опубликовано: 21 ноя 2024

Комментарии • 48

  • @alexanderastashov6046
    @alexanderastashov6046 9 месяцев назад +11

    Я просто оставлю это здесь:
    ➜ ~ python --version
    Python 3.12.1
    ➜ ~ python -m timeit "words = ['a', 'b', 'c']; [i.upper() for i in words]"
    1000000 loops, best of 5: 254 nsec per loop
    ➜ ~ python -m timeit "words = ['a', 'b', 'c']; list(map(str.upper, words))"
    500000 loops, best of 5: 421 nsec per loop
    ➜ ~ python -m timeit "words = ['a', 'b', 'c']; [str.upper(i) for i in words]"
    1000000 loops, best of 5: 272 nsec per loop

    • @MrLotrus
      @MrLotrus 8 месяцев назад

      получается или устаревшая оптимизация, или изначально что-то не то придумали

    • @oguretsagressive
      @oguretsagressive 6 месяцев назад

      Часто забывают что O(n) - это на самом деле "O(n) + const". И если n маленькое, то const может оказывать ощутимое влияние на результат.
      $ python --version
      Python 3.11.2
      $ python -m timeit -s "words = ['a', 'b', 'c'] * 100" "[i.upper() for i in words]"
      20000 loops, best of 5: 15.5 usec per loop
      $ python -m timeit -s "words = ['a', 'b', 'c'] * 100" "list(map(str.upper, words))"
      20000 loops, best of 5: 12 usec per loop
      $ python -m timeit -s "words = ['a', 'b', 'c'] * 100" "[str.upper(i) for i in words]"
      20000 loops, best of 5: 17.3 usec per loop
      $ python -m timeit -s "words = ['a', 'b', 'c'] * 100; sup = str.upper" "[sup(i) for i in words]"
      20000 loops, best of 5: 16 usec per loop
      $ python -m timeit -s "words = ['a', 'b', 'c'] * 100" "list(i.upper() for i in words)"
      10000 loops, best of 5: 20.6 usec per loop
      $ python -m timeit -s "words = ['a', 'b', 'c'] * 100" "[*map(str.upper, words)]"
      20000 loops, best of 5: 12 usec per loop
      И совсем уж head scratcher (ага, медленнее 3.11-го):
      Python 3.12.3
      20000 loops, best of 5: 16.3 usec per loop
      20000 loops, best of 5: 16.2 usec per loop
      20000 loops, best of 5: 18.6 usec per loop
      20000 loops, best of 5: 17.2 usec per loop
      10000 loops, best of 5: 25.9 usec per loop
      20000 loops, best of 5: 16.2 usec per loop

  • @user-qj8fv8zd1f
    @user-qj8fv8zd1f Год назад +15

    Задавать задачку на собеседование а-ля "это то, что я узнал вчера". Вопрос, нахрена это надо ?

    • @MrLotrus
      @MrLotrus 8 месяцев назад

      Это базовый вопрос на самом деле, который часто спрашивают

    • @alexanderandryukov2187
      @alexanderandryukov2187 4 месяца назад

      Подтверждаю

  • @ubuhobbit
    @ubuhobbit Год назад

    It would be great if We will see Vitaly Likhachov's Technical interviews in here again !

  • @gaxeliy
    @gaxeliy Год назад +5

    Слышу "Зачем писать на Python, если есть Go" - готовлю гневный Go-хейтерский пост в блоге =DDD

  • @illiakaltovich
    @illiakaltovich Год назад +7

    Ожидал разговор немного про другое, честно говоря, но да ладно
    P. S. Где-то на 1:01:05 стало интереснее

  • @__init__.
    @__init__. Год назад +9

    Ради интереса замерил, что будет быстрее для word.upper()
    Для 50 миллионов значений:
    for took 3.159 seconds
    list_comp took 3.371 seconds
    map took 2.777 seconds

    • @4aidze
      @4aidze 4 месяца назад

      то есть это 50 млн операций обработалось примерно +- за 3 секунды?)
      и где тут реальная оптимизация?)

    • @__init__.
      @__init__. 4 месяца назад

      @@4aidzeмап быстрее лист компрехеншена на 19%

    • @4aidze
      @4aidze 4 месяца назад +1

      ​@@__init__. да, но на 50 млн записях, с такой скоростью быстрой. Это такая оптимизация, на которой можно забить. и писать как в команде принято так чтобы читабельно было и исправить баг, если появится.

    • @__init__.
      @__init__. 4 месяца назад

      @@4aidzeтак мы тут о сухих цифрах, а не о конкретном примере, вроде как.

  • @semyonpupkov
    @semyonpupkov Год назад +10

    Если на реальных собесах сейчас спрашивают то, что тут - все это очень печально

    • @4aidze
      @4aidze 4 месяца назад +2

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

    • @pavelyurkevich8693
      @pavelyurkevich8693 4 месяца назад

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

  • @victorbrylew1775
    @victorbrylew1775 8 месяцев назад +5

    Собеседование в стиле "красноглазики пиписьками меряются". Из всего что прозвучало к практике разработки с натяжкой относится только контекстный менеджер в конце разговора. Ну вот обсудили про то как строки в 4к+ символов длиной начинают себя вести немного по-другому и хранятся раздельно. И что? Как это сакральное знание поможет вовремя закрыть таски в спринте?

    • @oguretsagressive
      @oguretsagressive 6 месяцев назад

      А какое знание поможет?

    • @victorbrylew1775
      @victorbrylew1775 6 месяцев назад +2

      Циклы vs рекурсия и их влияние на алгоритмическую сложность. Кеши, их виды и как выбрать лучший под задачу. Потоки vs процессы vs асинхронщина, что лучше использовать в каких случаях. ОРМ vs чистый sql, что лучше в каком случае. И продолжать можно бесконечно. Вопросов куча.

  • @MrLotrus
    @MrLotrus 8 месяцев назад +1

    В "го ооп больше чем в питоне" - это конечно очень спорное утверждение

  • @TheTmntmike
    @TheTmntmike Год назад +5

    1) Что за мода пошла делать list | None? Для этого есть Optional
    2) 45:36 Для этого случая в питоне есть partial из functools. Как по мне это первое что должно было прийти в голову. Для меня показалось странным, что не упомянули.
    По результату хз. Без негатива, но моему человек максимум стремящийся мидл.

    • @AndreiPautov-h9c
      @AndreiPautov-h9c Год назад +3

      уточка подъехала

    • @mrKazzila
      @mrKazzila Год назад +5

      А в чем проблема с list | None?😬 Единственное, что работает с 3.10+ версии, а так из тайпинга тащить не нужно лишнее
      При просмотре собеса также подумал, что ответы не уровня синьера, но, возможно, на практике чел шарит больше чем в теории.
      Ну и сами вопросы из разряда "топ 50 вопросов на python developer позицию" все тоже самое спрашивают на стажеров\джунов, а хотелось бы что-то релевантное на высокую позицию😔

    • @MrLotrus
      @MrLotrus 8 месяцев назад +1

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

  • @igorratnik2357
    @igorratnik2357 Год назад +1

    Это собес на синьора, написать контекстный менеджер😅😅😅 . Кстати не первый собес вижу подобный. Вопрос именно по ним.

  • @TeppopucT
    @TeppopucT День назад

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

  • @gunlinux
    @gunlinux 9 месяцев назад

    Тема с append не раскрыта

  • @Andron4iKTV
    @Andron4iKTV Год назад +7

    Задачки не интересные. Такие смысл задавать ноль. Они не показывают в какой области человек силен. А только показывают помни ли он как что-то делаеться. Лучше или алго задачи либо уже спрашивать про штуки under the hood. Сорри но человек который проходит явно очень слабенький кодер. Его знания слабо связаны между собой и сразу видно что комп сайенс он плохо шарит. Честно я как человек который собеседования проводит не оценил бы человека выше мидла.

  • @clever_taussig
    @clever_taussig 11 месяцев назад +2

    Честно говоря смог только 30 минут.

  • @ubuhobbit
    @ubuhobbit Год назад +4

    Paren kotoriy otvechaet na voprosi vedyot sebya kak budto on senior no na samom dele on junior, nichevo ne znaet no umnichaet ))

    • @CrazyElf1971
      @CrazyElf1971 Год назад +2

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

  • @SergeyBaruzdin
    @SergeyBaruzdin Год назад

    Из ребат кто-нибудь менторством занимается?

  • @wiktorbgu
    @wiktorbgu 7 дней назад

    Смотреть это пустая трата времени

  • @zevsnoe
    @zevsnoe Год назад +1

    Парень слабоват откровенно.. Половина вопросов - для мидлов.

    • @igorratnik2357
      @igorratnik2357 Год назад

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

    • @hellothere6696
      @hellothere6696 10 месяцев назад

      @@igorratnik2357а что нужно спрашивать на «сеньерском» уровне?

    • @How_is-x5b
      @How_is-x5b 10 месяцев назад

      ​@@igorratnik2357 Ну дак завтра скажут, что джун должен разбираться и в ml, заменить девопс инженера, знать фронт. Бизнесу главное поменьше платить и чтоб джун всё знал. Просто идеальный работник

    • @daniyarkalmanbetov7271
      @daniyarkalmanbetov7271 7 месяцев назад +1

      @@hellothere6696 как написать питончик на чистом си

  • @ironbondar
    @ironbondar 8 месяцев назад +2

    какой мерзкий интервьюируемый. (извините)

  • @КАИКАИ-ъ9о
    @КАИКАИ-ъ9о Год назад +3

    досмотрел до 22:10 дальше нет смысла, кандидат даже на джуна не знает:
    вопрос про list comprehensions для сеньора должен быть как минимум про nested comprehension, где сеньор должен рассказать, что оно быстрее append, потому что оно функция, после чего рассказать про итераторы, генераторы, лямбды, монады и т.д.
    про range сказал, что оно генератор с какой-то оптимизацией - тушите свет, range - это sequence type.
    про dict'ы - хэш-таблица со слотами, к которым привязываются ключи через хэш-функцию, значение может быть только одно, разрешение коллизий происходит за счёт открытой адресации с пробированием, не знать про слоты в питоне в 2023 - кринж, интервьюер тоже слабак за "слишком много коллизий".
    дальше, похоже, ещё печальней.
    И вот с этими двумя я должен конкурировать?

    • @How_is-x5b
      @How_is-x5b 10 месяцев назад +9

      Не душни. Разумничался тут

    • @ДаниилСапунов-б4ц
      @ДаниилСапунов-б4ц 9 месяцев назад +1

      Подскажешь, где так подшарить для джуна)

    • @ypohut1673
      @ypohut1673 8 месяцев назад +1

      Ты миддл?

    • @forbidden_content
      @forbidden_content 8 месяцев назад +1

      ты джун?

    • @aydarkamaltdinov3832
      @aydarkamaltdinov3832 16 дней назад +1

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