MOCK-СОБЕСЕДОВАНИЕ с Эдуардом | Знания Python, задачи на код, алгоритмические задачи

Поділитися
Вставка
  • Опубліковано 20 чер 2023
  • В продолжение разработки линейки курсов "Поколение Python" запускаем новую рубрику - собеседование. В ней наши ученики будут погружаться в атмосферу реального собеседования на должность Python Junior Developer. Их ждут вопросы на знание Python, задачи на написание кода, а также алгоритмические задачи.
    В собеседованиях могут принимать участие студенты, которые прошли все наши актуальные курсы. 🙌

КОМЕНТАРІ • 84

  • @WellDone978
    @WellDone978 Місяць тому +2

    Очень глубокий, качественный разговор.

  • @user-fg4wm8hr7n
    @user-fg4wm8hr7n 7 місяців тому +18

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

    • @canal-bx8wr
      @canal-bx8wr 2 місяці тому

      два профи пообщались) как это поможет джуну на реальном проекте? которому нужна в первую очередь уверенность, а не теория?
      но такие видео ведут только на очередные ненужные курсы.
      Почему на курсах не уточняют, что из следующих 10 параметров используют только 1-й, очень редко еще и 2-й. А остальными 8-му не нужно забивать свою оперативку в голове. Но ты зазубрил все 10, но не знаешь даже главной особенности того 1-го, с которым ты и будешь постоянно работать первые 3 года)).

  • @kalbschulz4690
    @kalbschulz4690 Рік тому +12

    в поддержку канала ) надеемся на, то, что народ поддержит эту работу)

  • @viktorsk8202
    @viktorsk8202 Рік тому +14

    Таких бы видосов побольше.Тема собесов очень важна

  • @user-tq2qh4yq5e
    @user-tq2qh4yq5e Рік тому +3

    Класс, обязательно посмотрю:)

  • @Neistoviy
    @Neistoviy 5 місяців тому +5

    Я думал парня на синьора собеседуют, а потом «ну когда найдешь свою первую работу..»

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

    Рубрика огонь)) Больше подобных видосов Тимур)

  • @nik-ix2md
    @nik-ix2md 10 місяців тому +2

    шикарное интервью, больше похоже на интересную дискуссию

  • @AskarAlmazovich
    @AskarAlmazovich 9 місяців тому +3

    Очень полезное интервью и разбор вопросов. Спасибо за такое развернутое видео! Продолжайте в таком же духе!

  • @davidfisher3581
    @davidfisher3581 11 місяців тому +4

    Хороший собес! Респект ребятам, которые это делают, молодцы. Еще бы тайм коды на видео добавили - супер чудесно бы было. Сервис для перезентаций тоже понравился

  • @wrestler91100
    @wrestler91100 11 місяців тому

    Классные у вас курсы ребят, именно благодаря ним и выучил питон

  • @dmitryzdor3084
    @dmitryzdor3084 11 місяців тому +5

    Прошел три курса "Поколения Python" и привык к конкретным ответам, решая задачи. Точно такая задача про словарь из двух списков была у Пронина, я решил прям как на видео. А по итогу сказали надо расширять сознание, и если списки не равны нельзя терять данные. Необходимо при большем количестве ключей использовать например zip_longest. А если остались не используемые значения их например в отдельный список или в отдельный ключ.

  • @user-qj5mp3tv9z
    @user-qj5mp3tv9z 5 місяців тому +1

    Отличное видео, очень полезная информация и очень грамотно раскрыто, узнал для себя некоторые новые моменты)

  • @Julia-lw2sk
    @Julia-lw2sk Місяць тому

    Полезное видео. Спасибо!!!!

  • @bright2266
    @bright2266 6 днів тому

    контент хороший раньше не использовал decimal и не знал.
    для последнего задачи оптимальнее было бы:
    def foo(m):
    c = 0
    while m and m[0][0] == 0 and (l:=m.pop(0)):
    l.append(1)
    c += l.index(1)
    return c

  • @user-pi1ez7ju5x
    @user-pi1ez7ju5x 5 місяців тому +1

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

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

    Классный контент, с удовольствием посмотрел. Многое из внутренностей питона для меня оказалось открытием, а задачку в конце я решил за секунды после ее озвучивания. Но я понимаю, что смотрю это спокойно на диване, а в реале мог бы и потеряться. Даже еще бы предложил метод пузырьковой сортировки для более быстрого обегания границы между нулями и единицами. Т.е. найти последний 0 в первой строке и последний 0 в последней строке, посчитать средний наклон спуска по диагонали... Но в 999 из 1000 случаев это на самом деле не нужно. Тем более питон это не про скорость.

  • @avetbab1525
    @avetbab1525 10 місяців тому +1

    Приветствую. Как называется плагин автозаполнения для Pycharm ? Стандартно он вроде не так работает.

  • @kirilldegtyarev9754
    @kirilldegtyarev9754 11 місяців тому +39

    Я не понял - кто кого собеседовал...

  • @viacheslavgurov4371
    @viacheslavgurov4371 7 місяців тому +1

    Tough guys. Really.

  • @MiFix-sh7el
    @MiFix-sh7el 2 місяці тому

    шедевро питон

  • @mr.naotari
    @mr.naotari Рік тому +1

    🤟

  • @7IdE
    @7IdE 11 місяців тому +2

    Ого, вы теперь еще и собесы делаете - вообще респект.
    А кто ведущий? Не шахматный ли человек-матрица, случаем? :D
    P.S. А Эдуарду респект - сразу видно, что разбирается во внутрянке Питона. Зачет.

  • @dimarogov4687
    @dimarogov4687 5 місяців тому

    привет, а где страничка обещанная на 20:06 страничка?

  • @USER_____Oo_____USER
    @USER_____Oo_____USER 7 місяців тому

    Не увидел ссылку, которую говорил, что кинешь на 21.15мин, или просто не нашел

  • @succubuseva
    @succubuseva 6 місяців тому

    А где ссылка на статью про +=?

  • @MichaelSemikin
    @MichaelSemikin 5 місяців тому +2

    в целом интервью очень приятное.
    "рядовым программистам комплексные числа никогда не потребуются" -- но при этом пару минут убили на обсуждение... а в сумме на обсуждение float/decimal убили минут пять.
    интервьюер сильно влюбился в слова "гомо/гетерогенный". к чему бы это )))
    всегда поражает, как с одной стороны люди в матрице нули ищут, а с другой -- не знают, что такое "+=". и ещё более забавно, когда человек, писавший на с# говорит, что поведение "+=" неочевидно...

  • @user-uv2mh7qy5h
    @user-uv2mh7qy5h 6 місяців тому +1

    Про finally и отключение э-ва. Скорость света 300000 км/с. Или 300 км за 1 мс (милисекунду) - Если, допустим, электростанция находится от нас в 3000 км и на ней произошла авария, то свет у нас погаснет только через 10 мс. И если наш код выполняется быстрее, чем 10 мс - то finally имеет шансы быть выполненным.

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

    Вот мое исполнение:
    def count_zeros(arr: list):
    if len(arr) == 1:
    return arr[0].count(0)
    if len(arr[0]) == 1:
    return len(arr) - sum([x[0] for x in arr])
    c = 0
    for i in range(min(len(arr), len(arr[0]))):
    if arr[i][i]:
    break
    c += 1
    part1 = [row[:c] for row in arr[c:]]
    part2 = [row[c:] for row in arr[:c]]
    return c ** 2 + count_zeros(part1) + count_zeros(part2)

  • @rednil8242
    @rednil8242 2 місяці тому

    в матрицах в первом проходе можно и бинарным поиском найти) но это так, в порядке интереса

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

    еееееееееееееееееееееееее!!!!!!!!!!!!

  • @ithinkthereforeitalk935
    @ithinkthereforeitalk935 26 днів тому

    def foo(matrix):
    return len([i for sublist in matrix for i in sublist if i == 1] )

  • @sergiybustrov8831
    @sergiybustrov8831 Місяць тому

    2:47 в банковских системах обычно используют integer, и там нет такого понятия, как копейки и тому подобное

  • @user-bw5in2yo7s
    @user-bw5in2yo7s 9 місяців тому

    хороший собес

  • @akel-la
    @akel-la 7 місяців тому

    Как я решил задачу с матрицей:
    def count_zeros(m):
    c = 0
    i = len(a[0])
    for x in a:
    i = x[0:i].count(0)
    c += i
    return c
    В каждой строке количество нулей (которые только в начале) не больше, чем в предыдущей, таким образом, мы постепенно будем проверять все меньшую и меньшую часть (срез) строки, так как всю строку проверять смысла нет.
    Я не сделал никаких проверок на единицу в цикле, так как(по моему мнению) сами эти проверки отнимают время.
    Подскажите, какую скорость имеет данный алгоритм?

    • @user-de3op9hs4p
      @user-de3op9hs4p 5 місяців тому +2

      Это вообще работать не будет, поскольку "а" не определено. Ну и сложность О(n**2), потому что в цикле for на каждой итерации count, что тоже является циклом. Итого, цикл в цикле.

  • @ivanbarankin9927
    @ivanbarankin9927 2 місяці тому

    если сейчас такие джуны, то я сочувствую тем кто пытается войти в айти) чувак тянет на мидл + пятилетней давности

  • @julysss_
    @julysss_ 10 місяців тому +6

    Это точно на Джуна собес😮?

    • @Nina-hy4ql
      @Nina-hy4ql 6 місяців тому

      А где написано, что на джуна?)

    • @mormone123
      @mormone123 4 місяці тому

      @@Nina-hy4ql т.к. вопросы про азы, ну почти, и про фреймворки ничего не спросили, + задака на алогритмы не сложная, хотя, как уже сказано, это не собес)

  • @IvanDaVinci
    @IvanDaVinci 4 місяці тому

    видимо перенервничал Эдуард, на последнюю задачку можно было так же легко сделать с ходу используя индексы))) sum(row.index(1) for row in matrix)

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

    Помимо лайка, добавлю комментарий)

  • @andreymenskiy893
    @andreymenskiy893 4 місяці тому +1

    Задача с матрицей
    Ментр сообщает, что можно работать с индексами
    Тогда почему нельзя представить матрицу как typle
    a = ((0, 0, 1, 1), (0, 0, 1, 1), (0, 1, 1, 1), (1, 1, 1, 1))
    summ = 0
    а для подсчета сделать так?
    for i in a:
    summ += i.index(1)
    тут ведь так же сложность линеная

    • @rodkonst
      @rodkonst 4 місяці тому

      чувак, кажется ты гений

    • @MrVernuk
      @MrVernuk 4 місяці тому +1

      на сколько я знаю, сложность метода index() - O(n) в худшем случае, так как элемент с искомым индексом может быть в самом конце списка(кортежа) и в общем, в худшем случае, цикл for дает нам сложность O(n) и поиск индекса 1 нам тоже дает O(n). В сумме будет O(n2) ну или O(n * m) если матрица не квадратная.

  • @Anshegar
    @Anshegar 6 місяців тому +3

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

    • @rednil8242
      @rednil8242 2 місяці тому

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

    • @Anshegar
      @Anshegar 2 місяці тому +1

      @@rednil8242 Так а это чем не алгоритм с циклом то? я помню когда начинал учить питон столько велосипедов ненужных , работающих, но соверншенно ненужных, поизобретал что боольше чет и не хочется.

    • @rednil8242
      @rednil8242 2 місяці тому

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

  • @Andron4iKTV
    @Andron4iKTV 7 місяців тому

    С листами и кортежами слишком оверлоад. Не правильно так делать. Это лишь две "почти одинаковые структуры данных" Динамические масив для листа и статический для кортежа. И от туда уже выходит их юз кейс. Человек ответил что итерация через кортеж быстрее что не являеться правдой. ВО первых бенчмарк написать 30 секунд и посмотреть что они одинаковые и даже чаще выигрывает лист(но это зависит от рантайма). Второе чисто знать их структуру что тоже дает ответ что в инетрации как и аксесе нету быстрее или медленее. Пустую аллокацию лист не итерирует.

    • @Andron4iKTV
      @Andron4iKTV 7 місяців тому

      О хэш таблице. Человек рассказал о старом представлении хэш таблиц в пайтоне. + не рассказано о пробации\колизия\решению кол и тд. Тема очень глубокая. И если уже упоминать у то что знаешь глубь то или рассказывать детально или вообще не рассказывать а то порождает только непонимание.

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

    39:52 Проверил в VS code, вывело это:
    [10, 'a']
    [123]
    [10, 'a']
    Собственно, получается Тимур неправильно сказал, что в первом выводе будет только 10. Или в чем проблема?

    • @A.AA.A-qo6tw
      @A.AA.A-qo6tw Рік тому

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

    • @A.AA.A-qo6tw
      @A.AA.A-qo6tw Рік тому

      Хоть return и возвращает список, но функция на него продолжает ссылаться и в итоге в 3 её вызове список увеличивается и в list1 также.

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

      @@A.AA.A-qo6tw так задача стоит что выведет код, и вывело собственно, то что я написал. А не то что сначала выведет первый принт, второй и третий, и почему так произошло, если вывести сразу все.

    • @A.AA.A-qo6tw
      @A.AA.A-qo6tw Рік тому

      @@kostechkaS думаю, что суть данного вопроса состояло не тупо ответить, что выведет, а именно механизм работы в данном случае.

  • @Sergiypsm
    @Sergiypsm 7 місяців тому +3

    Постановка

  • @shadvcad
    @shadvcad 7 місяців тому

    def count_zeros(matrix):
    return sum(i.index(1) if 1 in i else len(i) for i in matrix)

  • @3realm734
    @3realm734 3 місяці тому

    кортЕжи

  • @random_act
    @random_act 8 місяців тому +1

    шарлотан

  • @talgis4169
    @talgis4169 9 місяців тому

    никогла не понимал, зачем на инженерном языке решать алгозадачи, вам java мозги жмёт?

  • @forgotten_forbidden
    @forgotten_forbidden 3 місяці тому

    def count_zeros(mat):
    zeroes = 0
    for i in range(len(mat)):
    for j in range(len(mat[i])):
    if mat[i][j] == 0:
    zeroes += 1
    else:
    break
    return zeroes
    так красивее , нет ?

    • @rednil8242
      @rednil8242 2 місяці тому +1

      так квадратичная сложность

  • @Hardy_21
    @Hardy_21 9 місяців тому +1

    27:40 какая компеляция? он о чем? питон интерпритируемый, там все во время выполнения делается

    • @Vladimir_Pismenskiy
      @Vladimir_Pismenskiy 9 місяців тому

      А что у нас хранится в папке pycache?)

  • @genylivnev7822
    @genylivnev7822 9 днів тому

    картежИ, без кортежЕй )) аж слух режет.

  • @alekseymelnik4398
    @alekseymelnik4398 Місяць тому

    К собеседованию ни какого отношения не имеет. Ни один, ни второй не программисты.

  • @oleksandrkhrashchevskyi5265
    @oleksandrkhrashchevskyi5265 10 місяців тому +1

    Нафига думать если есть консоль, с такими работодателями даже не общаюсь.

    • @A.AA.A-qo6tw
      @A.AA.A-qo6tw 10 місяців тому +1

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

    • @oleksandrkhrashchevskyi5265
      @oleksandrkhrashchevskyi5265 10 місяців тому

      @@A.AA.A-qo6tw я всегда смотрю консоль и в 100% всегда решаю сложные задачи. В любом другом случае все уже решено и нужно искать ответ в интернете. Либо читать документацию.

  • @AleksandrKokuashvili
    @AleksandrKokuashvili 10 місяців тому +1

    ЭлсЭ, прям коробит от этого косноязычия!! Else [els] Откройте словарь, все названия идут из английского. ну реально невозможно это слушать

    • @A.AA.A-qo6tw
      @A.AA.A-qo6tw 10 місяців тому +1

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

  • @olessiverskiy357
    @olessiverskiy357 7 місяців тому

    Ребята, ну выучите, наконец, как правильно произносить else и прочие английские слова! Так режет ухо, что хочется спросить кто вас так научил? Или сами решили за англичан так произносить? А самое страшное, что свою неграмотность вы ещё и мультиплицируете!

  • @fedor835
    @fedor835 9 місяців тому +5

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

    • @Nonstop4ik
      @Nonstop4ik 5 місяців тому

      как без знания тонкостей языка писать эффективный код?

  • @knarg4682
    @knarg4682 4 місяці тому

    И прямо со старта...
    >>> import decimal
    >>> a = decimal.Decimal(0.3)
    >>> b = decimal.Decimal(0.1)
    >>> a + a + a + b
    Decimal('0.9999999999999999722444243843')
    >>>
    >>> 0.3 + 0.3 + 0.3 + 0.1
    0.9999999999999999
    >>>
    Разницы в результате тупо нет, те же самые 16 девяток после точки, а потом неестественный хвост как бы приклеен. Ну, раз кому-то неправильный результат с колбасой в 28 знаков милее -- дело хозяйское. В данном случае "точность" означает "подробность", но никак не "правильность". Что в регистрах, что в ячейках оперативки одна и та же двоичная система, иначе и быть не может. Так что если считать десятичные дроби, нужен не компьютер, а калькулятор.
    И кортеж со списком длиной даже в миллион -- при линейном чтении разница в районе седьмого-восьмого знака после точки. А поиск элемента по индексу / индекса по значению в коллекции на 10 тысяч оказался тоже весьма неоднозначным.
    import random
    lst = [*range(10000)]
    random.shuffle(lst)
    tpl = tuple(lst)
    indexes = [*range(10000)]
    random.shuffle(indexes)
    @halt
    def list_item_by_index():
    for x in indexes:
    a = lst[x]
    @halt
    def list_index_of_item():
    for x in indexes:
    a = lst.index(x)
    @halt
    def tuple_item_by_index():
    for x in indexes:
    a = tpl[x]
    @halt
    def tuple_index_of_item():
    for x in indexes:
    a = tpl.index(x)
    list_item_by_index(), list_index_of_item()
    tuple_item_by_index(), tuple_index_of_item()
    Результаты:
    list_item_by_index time:
    00 h 00 min 0.00274250 s
    list_index_of_item time:
    00 h 00 min 1.06715661 s
    tuple_item_by_index time:
    00 h 00 min 0.00153810 s
    tuple_index_of_item time:
    00 h 00 min 1.17664792 s
    Ну и создание кортежа командой tuple из генератора тоже медленнее, чем comprehension. А что там насчёт преимуществе кортежа по памяти?
    >>> tuple([*range(1000000)]).__sizeof__()
    8000024
    >>> [*range(1000000)].__sizeof__()
    8000040
    >>>
    Есть разница))) Но это надо создавать списки/кортежи длиной в 1-3 элемента, а числом в легионы, чтобы профит ощутить.

    • @knarg4682
      @knarg4682 4 місяці тому

      13:00 "однотипность"... Сразу вспоминается функция all, которая любую пустую коллекцию (во всём остальном Питоне это False и даже для "напарницы" этой функции any) и заодно пустую строку воспринимает как True. Знаете, почему? А потому что "если в комнате нет ни одного человека, то можно утверждать, что каждый человек из находящихся в комнате -- француз. Или женщина". Я не шучу ни грамма. Это известное логическое утверждение называется "парадокс остроумного француза" (The Paradox of the Clever Frenchman) или "парадокс одинокого француза" (The Paradox of the Lonely Frenchman). А потому что в Нидерландах хорошие наркотики, вот почему.
      16:30 "список, его хэш-значение..."
      >>> s = [1, 2]
      >>> hash(s)
      Traceback (most recent call last):
      File "", line 1, in
      TypeError: unhashable type: 'list'
      Действительно.