Александров Сергей (Ярославль) Собеседование python разработчик

แชร์
ฝัง
  • เผยแพร่เมื่อ 2 ธ.ค. 2023
  • t.me/TH-camPronin
    Чат для общения python разработчиков и им сочуствующих. Свободное общение, тестовые и вопросы с собесов и прочее. Заходите, там вам рады.
    Поддержать канал: www.tinkoff.ru/rm/pronin.andr...
    Обычно денежка идёт на книжки про питончик. Но иногда на светлое и тёмное.
    Если Тиньков не даёт перечислить, стукните в личку телеги andpronin, придумаем что нибудь
    Виш лист
    Хорошие книги по Питончику, которые могу рекомендовать (и хочу купить с вашей помощью).
    Изучаем Python. Двухтомник. Марк Лутц. Очень подробно и структурно (Хочу дождаться 6го издания.. )
    • Изучаем Python с Марко...
    Читаем и разбираем ее тут
    Куплено (огромное спасибо зрителям)
    Знакомство с Python | Бейдер Дэн (2023) - выглядит приятно для новичка
    Чистый Python. Тонкости программирования для профи | Бейдер Дэн (2022) - хорошо для продолжения
    Высоконагруженные приложения. Программирование, масштабирование, поддержка | Клеппман Мартин
    Python. К вершинам мастерства | Рамальо Лучано - 2е издание - сложно для новичка, но интересно
    Паттерны разработки на Python: TDD, DDD и событийно-ориентированная архитектура -- хорошо про то, когда какой фреймворк применять
    Видимо, дальше появтся еще нескромные желания. Но пока - так
    Моя тележка andpronin -- стучите, если что.
    Мой канал про обучению python с нуля и до мидла Андрей+=Пронин
    / @pypronin
    Я в других сетях
    🔗Вконтакте: CaptPronin
    🔗Дзен: zen.yandex.ru/id/5fbd33919412...
    #python #питон #программирование #Андрей_Пронин #собеседование #

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

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

    Побольше собесов с Олегом. Мужик реально топчик. 👍👍👍

  • @user-ye1tr8fn6b
    @user-ye1tr8fn6b 6 หลายเดือนก่อน

    Очень интересно было посмотреть!

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

    Спасибо за видео)

  • @user-bi9lt8fh3g
    @user-bi9lt8fh3g 6 หลายเดือนก่อน +2

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

  • @mikeofs1304
    @mikeofs1304 5 หลายเดือนก่อน +6

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

    • @user-bk7xo4nb5b
      @user-bk7xo4nb5b 7 วันที่ผ่านมา

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

  • @alchi_alchi_
    @alchi_alchi_ 6 หลายเดือนก่อน +4

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

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

    Еще наверное стоило бы упомянуть , что использование хэшей меняет стоимость в "процессорном времени" на стоимость "в памяти". И если по памяти есть ограничения, то тогда упростить алгоритм можно отсортировав оба массива, и двигаясь от начала сравнивать элементы и их индексы, тогда бы получили 2 n log n

  • @7IdE
    @7IdE 6 หลายเดือนก่อน +4

    Ну, крайне неуверенный в себе чувак, конечно, но отдать должное - инженерные мозги у него точно есть. И он ими даже пользоваться может.
    Да, тут сразу чувствуется, что алгоритмической подготовки у него особой нет - но при этом очень и очень здраво размышляет, а не гадает.
    Особенно после фразы Олега "мб лучше думать, а не вспоминать?"
    Но это все фиксится за месяц-два чтения Кормена и решения Литкода.
    Также весьма бодро пишет код - явно "не в первый раз" пишет.
    Множества активно применяет - это тоже найс.
    Ну и в конце, когда получил подсказку насчет словарей - сразу же сходу придумал корректный алгоритм.
    Из минусов - 1-2 раза, когда он сказал "нужно использовать множество", мне показалось, что это он "просто сказал", а не "увидел возможное решение".
    Ну и то, что изначально он хотел оптимизировать место с сортировкой, а не цикл - это было странно, с учетом того, что уравнение-то он корректное написал.
    Так что, весьма неплохо, как по мне.
    P.S. Итоговая сложность его алгоритма будет
    О( n * m ) + O( 2 * n ) + O( n * log(n) ) O( n * m + n * log(n) )
    Где O( 2 * n ) O( n ) и O( n ) + O( n * log(n) ) O( n * log(n) )
    А убрать сложность сортировки тут нельзя, т.к. относительно n сортировка имеет самую высокую скорость роста.
    Ну а сказать, что это все эквивалентно О(N^2), где N = max(n, m) - это уж очень грубая оценка. Ибо с тем же успехом можно было бы сказать, что финальная сложность 0(N!).
    Соррян, но надо было подушнить. :D

  • @yemtsev-dmytro
    @yemtsev-dmytro 5 หลายเดือนก่อน

    А если в первом 5555 а во втором 5777? Нужно 5777 на вьіходе?

  • @IvanIvanov-xd2rb
    @IvanIvanov-xd2rb 6 หลายเดือนก่อน +3

    Сидя дома на диване сразу приходят нужные идеи, а вот на собеседовании все по другому . Как с этим бороться ?

    • @AndyPronin
      @AndyPronin  6 หลายเดือนก่อน +2

      практикой

    • @IvanIvanov-xd2rb
      @IvanIvanov-xd2rb 6 หลายเดือนก่อน +4

      @@AndyProninя думал может таблетки посоветуете 😂

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

      @@IvanIvanov-xd2rbпивка бахни перед собесом

  • @Maine__Coon__1
    @Maine__Coon__1 6 หลายเดือนก่อน +4

    Приветствую

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

    Фух, решил рассмотреть вариант с библиотекой, пол дня убил на функцию которая выдаст остаток вычитания списков
    def listaminuslistb(a:list,b:list):
    #не хотел трогать изначальный лист
    #программа выдасть разницу
    a1=a.copy()
    b1=dict.fromkeys(b,0) #создаем словарь
    for i in b:
    b1[i]+=1 # значения в б и их количество
    zzz=list(b1.keys()) #значения в списке
    kkk=list(b1.values()) #кол значений в списке
    for i in range(len(zzz)):
    for j in range(kkk[i]):
    if zzz[i] in a1:
    a1.remove(zzz[i])
    #удаляем значения из а ,если есть по кол раз в б
    return a1 #остаток а после вычитания

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

    "Найдите элементы, которые не повторяются, но повторяются".

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

    Вот смотрю периодически и как в поговорке у меня: "чужую беду, руками разведу", а по факту наверное нет

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

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

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

    list(set(arr1).difference(set(arr2))) это чит?
    А, досмотрел до 24 минуты и понял что чит...
    В условиях не звучало "с сохранением дублей"!

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

    From collections import Counter)

  • @yemtsev-dmytro
    @yemtsev-dmytro 5 หลายเดือนก่อน

    Ведучий запутал в первом вопросе… сказал что если в первом 555, а во втором 5. Велущий тупо путает

  • @user-dg2gh9kr4h
    @user-dg2gh9kr4h 5 หลายเดือนก่อน +1

    def some_foo(arr1, arr2) -> list:
    return list(set([num for num in arr2 if num not in arr1]))

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

      Тоже сразу такое пришло в голову

    • @user-de3op9hs4p
      @user-de3op9hs4p 4 หลายเดือนก่อน

      Неправильно. Если arr1 = [5, 5], а arr2 = [5, 5, 5], то функция вернёт пустой список, а нужно чтоб вернула [5].

  • @user-vw4ds3tg8t
    @user-vw4ds3tg8t 2 หลายเดือนก่อน +1

    res = [i * (arr2.count(i) - arr1.count(i)) for i in set(arr2) if arr2.count(i) > arr1.count(i)]

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

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

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

      Полностью согласен. Там надо просто цифры через двоеточия минута:секунда, и описание того, что в это время происходит. Сможете сделать?

    • @lesbian_economy
      @lesbian_economy 5 หลายเดือนก่อน +3

      @@AndyPronin пассивная агрессия это одна из скреп всего it сообщества

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

    def your_func(a, b):
    res = []
    for num in a:
    if num not in b:
    res.append(num)
    return res

  • @user-yd4wd9bb6q
    @user-yd4wd9bb6q 2 หลายเดือนก่อน

    def some_func(arr1: list, arr2: list):
    rounds = len(arr1)
    for round in range(rounds):
    for elem in arr1:
    if elem in arr2:
    arr1.remove(elem)
    arr2.remove(elem)
    return arr2
    arr1 = [7, 2, 5, 3, 5, 3]
    arr2 = [7, 2, 5, 4, 6, 3, 5, 3, 5] # вернуть элементы, отсутствующие в arr1 -> 4, 5, 6
    print(some_func(arr1, arr2))

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

      Кубическая сложность по времени

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

    from collections import Counter
    def arr_dif(arr1, arr2):
    return list((Counter(arr2) - Counter(arr1)).elements())

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

      а если без Counter?

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

    Еще наверное стоило бы упомянуть , что использование хэшей меняет стоимость в "процессорном времени" на стоимость "в памяти". И если по памяти есть ограничения, то тогда упростить алгоритм можно отсортировав оба массива, и двигаясь от начала сравнивать элементы и их индексы, тогда бы получили 2 n log n

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

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