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

แชร์
ฝัง
  • เผยแพร่เมื่อ 19 ธ.ค. 2024

ความคิดเห็น • 48

  • @alexanderastashov6046
    @alexanderastashov6046 10 หลายเดือนก่อน +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 7 หลายเดือนก่อน

      Часто забывают что 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 5 หลายเดือนก่อน

      Подтверждаю

  • @victorbrylew1775
    @victorbrylew1775 9 หลายเดือนก่อน +5

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

    • @oguretsagressive
      @oguretsagressive 7 หลายเดือนก่อน

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

    • @victorbrylew1775
      @victorbrylew1775 7 หลายเดือนก่อน +2

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

  • @__init__.
    @__init__. ปีที่แล้ว +9

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

    • @4aidze
      @4aidze 5 หลายเดือนก่อน

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

    • @__init__.
      @__init__. 5 หลายเดือนก่อน

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

    • @4aidze
      @4aidze 5 หลายเดือนก่อน +1

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

    • @__init__.
      @__init__. 5 หลายเดือนก่อน

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

  • @semyonpupkov
    @semyonpupkov ปีที่แล้ว +10

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

    • @4aidze
      @4aidze 5 หลายเดือนก่อน +2

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

    • @pavelyurkevich8693
      @pavelyurkevich8693 5 หลายเดือนก่อน

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

  • @illiakaltovich
    @illiakaltovich ปีที่แล้ว +7

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

  • @ubuhobbit
    @ubuhobbit ปีที่แล้ว

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

  • @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

  • @gaxeliy
    @gaxeliy ปีที่แล้ว +5

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

  • @TeppopucT
    @TeppopucT 29 วันที่ผ่านมา

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

  • @MrLotrus
    @MrLotrus 8 หลายเดือนก่อน +1

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

  • @igorratnik2357
    @igorratnik2357 ปีที่แล้ว +1

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

  • @gunlinux
    @gunlinux 10 หลายเดือนก่อน

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

  • @clever_taussig
    @clever_taussig ปีที่แล้ว +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

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

  • @Andron4iKTV
    @Andron4iKTV ปีที่แล้ว +7

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

  • @КАИКАИ-ъ9о
    @КАИКАИ-ъ9о ปีที่แล้ว +3

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

    • @How_is-x5b
      @How_is-x5b 11 หลายเดือนก่อน +9

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

    • @ДаниилСапунов-б4ц
      @ДаниилСапунов-б4ц 10 หลายเดือนก่อน +1

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

    • @ypohut1673
      @ypohut1673 9 หลายเดือนก่อน +1

      Ты миддл?

    • @forbidden_content
      @forbidden_content 9 หลายเดือนก่อน +1

      ты джун?

    • @aydarkamaltdinov3832
      @aydarkamaltdinov3832 หลายเดือนก่อน +1

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

  • @SergeyBaruzdin
    @SergeyBaruzdin ปีที่แล้ว

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

  • @wiktorbgu
    @wiktorbgu หลายเดือนก่อน

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

  • @zevsnoe
    @zevsnoe ปีที่แล้ว +1

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

    • @igorratnik2357
      @igorratnik2357 ปีที่แล้ว

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

    • @hellothere6696
      @hellothere6696 11 หลายเดือนก่อน

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

    • @How_is-x5b
      @How_is-x5b 11 หลายเดือนก่อน

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

    • @daniyarkalmanbetov7271
      @daniyarkalmanbetov7271 8 หลายเดือนก่อน +2

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

  • @ironbondar
    @ironbondar 9 หลายเดือนก่อน +2

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