Собеседование на позицию Senior Python Developer 4000-5000$ #11

Поделиться
HTML-код
  • Опубликовано: 25 ноя 2022
  • 00:00 - как сделать select из 2 таблиц одним запросом
    01:31 - как работает индекс в БД
    02:36 - как найти медленный запрос
    04:00 - что такое транзакция
    04:51 - блокировки в БД
    08:50 - как посмотреть список процессов
    09:43 - что такое pid
    10:58 - разница между процессом и потоком
    12:04 - как посмотреть кол-во свободной оперативки
    14:20 - что такое docker
    15:40 - что такое docker-compose
    16:35 - какие есть логические операции
    16:55 - какие есть встроенные типы данных в питоне
    17:29 - какие есть последовательности
    17:49 - разница между изменяемыми и неизменяемыми типами
    18:37 - дефолтный параметр - пустой список в функции
    19:30 - f-строки
    19:56 - как перевести строку в байты
    20:25 - decimal
    21:21 - datetime и timezone
    23:24 - enum
    24:10 - исключения
    26:01 - разница между статической и динамической типизацией
    26:55 - аннотации
    28:09 - magic-методы
    30:10 - как проверить, что значение есть в словаре
    30:20 - enumerate
    30:35 - как проверить, что объект класса является потомком другого класса
    31:15 - как сделать копию словаря
    32:00 - вложенность в словарях
    34:22 - чем отличается класс от объекта класса
    34:56 - может ли метод класса вернуть класс
    35:15 - наследование
    36:06 - интерфейсы
    36:57 - mixins и mro
    38:18 - queryset и его методы
    41:16 - Q
    41:38 - views
    46:05 - migrations
    46:53 - middleware
    48:25 - python wheels
    49:27 - как указать версию в pip
    49:50 - poetry
    50:35 - is vs ==
    51:00 - monkey patching
    52:55 - metaclass
    53:17 - code review docker-compose
    56:12 - code review python
    01:02:19 - code review django
    #собеседование #backend #python #django #ооп #senior #сеньор #интервью #программирование #sql #review

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

  • @alexdzehil7194
    @alexdzehil7194 8 месяцев назад +25

    Собес на 5к - "приходилось ли юзать f строки"🤣

  • @user-kg3kl4sy1w
    @user-kg3kl4sy1w Год назад +1

    Спасибо за контент!

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

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

  • @Alex.M.
    @Alex.M. Год назад +7

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

  • @Jackson-mn3oj
    @Jackson-mn3oj 7 месяцев назад +1

    Ребята, вместо того, чтобы коннектиться к инстансам и что-то там в терминале писать и разглядывать htop, возможно имеет смысл наладить мониторинг нормальный? Ну или выполнять профилирование при помощи специализированных инструментов например.

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

    некоторые вопросы прям совсем примитивные (не простые, а именно примитивные, как будто сначала просят решить квадратное уравнение, а потом спросить, что означает маленькая двойка в правом верхнем углу от икс), а некоторые вполне норм
    в любом случае интервью больше как экзамен, подготовили 100 вопросов, из которых многие ваще не нужны (ощущается, что ребята натренировались интервьюить джунов, но не поняли, что для интервьюирования синьоров не достаточно просто добавить вопросов)
    примеры для ревью они тоже конечно так себе составили)
    автор молодец, не считая душку вначале про консольные утилиты (я тоже согласен, что это очень субъективные вопросы и гуглятся на раз два) и немного базы - все збс ответил

  • @Alex.M.
    @Alex.M. Год назад +3

    Декоратором роутинги над функциями, если память не подводит, такого нет в джанго, зато есть во фласке.

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

    Спасибо за отличное видео. Если не ошибаюсь CharField создает поле VARCHAR в бд, а TextField - TEXT

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

      Проверил, да действительно, я ошибался)

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

    Как я скучаю по собеседования в России, было всё так просто.
    А были ли более углублённые вопросы касательно опыта/команды и тд?

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

      Именно на этом вроде не было, хотя обычно на этих вопросах делают акцент

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

    о прикольно, почти все знаю, 80% точно могу ответить. хотя не писал на нем лет 7.. считаю пока себя джун уровнем в нем. талант не пропьешь!)))) такое впечатление что те кто спрашивают, знают меньше чем тот у кого спрашивают.😂

  • @user-qe3dn1bi3t
    @user-qe3dn1bi3t Год назад +3

    привет! по идее ты бываешь на собесах достаточно часто. какой их процент в среднем заканчивается оффером для тебя? спасибо за контент )

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

      Привет! Зависит от ситуации на рынке. Раньше были часто офферы, примерно 50/50. Последний раз когда недавно проходил собесы, то наверное процентов 20 успешных только было)

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

    Докер не обязательно развернется одинаково на всех средах, например тенсорфлоу и процессор м1

    • @codingjerk
      @codingjerk 5 месяцев назад

      Хорошее замечание, ещё ядра всё же могут отличаться в разных средах, ибо контейнер это не виртуалка

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

    Классный контент
    А какой фидбек от интервьюэров получил?

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

    (непрошеный совет)
    я присоединюсь к мнению из комментов на счет того, что даешь слишком быстро ответы. вопробуй как-нибудь по-другому, ради эксперимента
    смотри, у тебя на интервью (предположим) 1 час. ты можешь либо быстро ответить на 30 вопросов, либо ответить на 10 вопросов, но развернуто и уйти вглубь. таким образом ты во-первых покажешь, что ты более задрот и обожаешь выжигать код глазами (это плюс для интервьюирующего), во-вторых возможно тебе не успеют задать какой-нить душный вопрос, на который ты не знаешь ответ, в третьих (возможно) сможете зацепиться и развить тему, перейдя из режима экзамена в режим ламповой беседы.
    из минусов, конечно, если интервьюрующий тоже шарит и вы зайдете слишком глубоко и ты где-то потеряешься, но имхо тут это стоит того)
    спасибо, за то что заливаешь интервью, очень познавательно! продолжай в том же духе!

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

      Спасибо, в след раз попробую такой подход)

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

    Вы отвечаете на вопросы МАКСИМАЛЬНО сжато. Это намеренная стратегия? :) Т.е. вы рассуждаете так: если краткий ответ входит в ожидаемый развернутый ответ, то это должны принять?

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

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

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

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

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

      Хорошо, когда вначале говорят, какие ответы нужны и не приходится угадывать. Часто предупреждают, что если будут слышать правильное начало развернутого ответа, то перебьют, чтобы не тратить лишнее время. А если хотят услышать больше, то задают дополнительные наводящие вопросы)

  • @user-no5hc7eo8t
    @user-no5hc7eo8t 5 месяцев назад

    на 4 минуте подумал, что тут собеседование по 1С проходят)

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

    не смотрел все, тыкнул случайно, на 1:01:00 . ну как сказать в чем проблема? видно, что спрашивающие сами несильно дотягивают до уровня сеньоров ибо в этой шаблонке куча проблем и намеренный мистайпинг, это малая часть этих проблем. там с ООП все очень плохо, зачем-то передается структура данных со свойствами, которая внутри размазывается на публичные поля (что создает потенциально сильную связность, если у вас прям логика завязана на эти данные ну так запихните их в класс, как это стандартно делается в питоне). класс Dog без особых на то причин нарушает интерфейс публичный Animal добавляя новое свойство , при этом нигде не описывается, что такое новое поведение добавлено, аля какое-нибуль breedable . Вершина ужаса это класс Коровы, которая вообще ничего не делает только добавляет публичные методы несовместимые с интерфейсом (базовым классом). т.е. написана ниочемная логика, а уже поломано поведение т.о. что придется на каждом участке программы писать кучу проверок, что за класс, и что он умеет. подобный код сразу в помойку.
    совет новичкам - когда пишете сразу думайте о двух вещах - как вы это тестировать будете (пускай даже гипотетически) и как вы этим пользоваться будете в разичных сценариях программы. данным кодом пользоваться нельзя, тут ООП (наследование) не помогает , а делает все только хуже, ибо написано криво

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

    Кстати, то, что User ссылается на Wallet по связи FK - это ж вроде некорректно. Должно ведь быть, что у ЮЗЕРА может быть несколько КОШЕЛЬКОВ, а не у КОШЕЛЬКА несколько ЮЗЕРОВ.

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

      Верно, я не заметил этого)

    • @codingjerk
      @codingjerk 5 месяцев назад

      Зависит от желаемого поведения, может иметь смысл даже many-to-many, а-ля кошельки с совместным владением.

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

    Привет, расскажи почему ты ходишь на собесы? Сначала у тебя были мидловые, теперь сеньорские. Ты в поисках работы или просто качаешь бицуху в собесах?

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

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

    • @user-xg8qt8ky1s
      @user-xg8qt8ky1s Год назад

      Да контент он пилит. Разве не понятно?

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

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

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

      @@denismerigold486 навык не теряется, если не прокрастинировать на работе)

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

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

    • @user-tm2og6kk9b
      @user-tm2og6kk9b 6 месяцев назад +1

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

  • @user-ez1ni2jj6t
    @user-ez1ni2jj6t 4 месяца назад

    Мамкины собеседователи

  • @neoblackhat1798
    @neoblackhat1798 Год назад +3

    норм! Пили еще! у меня года два назад более хардкорное интервью было. на алгоритмах пролетел и чертовых брокерах типа кролика. а вообще судя по уровню вопросов парни на проводе явно не сеньоры. первое, что у меня спросил сеньор на собесе - почему интерпретатор твой враг?

    • @Antonio-ib6ii
      @Antonio-ib6ii Год назад

      автор тоже отвечает на уровне жуниора если честно. Давно не собесился видимо.

    • @NoName-ky2eq
      @NoName-ky2eq 7 месяцев назад

      А что по rabbitmq спрашивали?

    • @neoblackhat1798
      @neoblackhat1798 7 месяцев назад

      чем отличается от kafka и как правильно использовать@@NoName-ky2eq

  • @molochnikzero
    @molochnikzero Месяц назад +1

    На счёт poetry не соглашусь - pip сейчас сам хорошо справляется с выбором нужной версии библиотеки. Основная и главная фишка poetry, pipenv, pdm и прочих подобных пакетных меннаджеров - это избегание ситуации, когда какой-нибудь малолетний дебил в твою зависимость версии берёт и форспушит. lock-file - это то, ради чего стоит использовать эти штуки. И по этому, когда в какой-то момент на проде у тебя не собирается пакет из-за проблем с зависимостями - не поленись и посмотри что там отъебнуло, вместо удаления и создания заново локфайла, анон!

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

    спасибо что пофиксил звук) оффер получил?

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

    Является ли нормальным тот факт, что класс Cow наследует класс Dog?

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

      Думаю, что нет, но я не совсем понял суть задания. Нужно ли было оценивать это как абстрактный код и искать только ошибки по питон коду? Или с точки зрения проектирования и реализации методов? Мне вроде сказали представить, что с методами все норм, они просто выполняют какую-то функцию. И я пытался ревьювить, отталкиваясь от этого, не обращая внимания, что принтится по логике там не то, за что должен отвечать метод, и что корова наследуется от собаки, а не от животного. Я вырезал рассуждения о том, что по такой логике у коровы будет порода (breed), потому что сказали, что с этим все ок)

  • @Antonio-ib6ii
    @Antonio-ib6ii Год назад +6

    Первые пол часа вопросы на уровень Джуна. Надеюсь дальше интереснее

    • @gvadellupa9335
      @gvadellupa9335 Год назад +6

      Мне кажется, не совсем корректно говорить "вопросы уровня Джуна". Тут скорее дело в ответе. Джун ответит по-своему, мидл/синьор - уже по-другому. Грубо говоря, чем выше грейд, тем более детальное понимание должно быть той или иной технологии, соответственно и ответ более развёрнутый

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

      Странное суждение, ведь на втором вопросе про индексы БД автор смешивает хэшмату и B-Tree. Хотя это, конечно, разные структуры, в которых поиск происходит за разное время O(1) / O(log).
      Про одни индексы можно рассказывать и рассуждать минут 10 на интервью

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

      @@ChannelYoJo тут не только разное время, хеш поддерживает только оператор equality. Еще можно добавить, что индекс хранится отдельно от таблицы, и если мы выбираем поле (на котором висит индекс), то запроса в основную таблицу может и не быть.

  • @user-rx2gq9ly5h
    @user-rx2gq9ly5h 8 месяцев назад +2

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

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

    не совсем понятен вопрос про процессы.. процессы где в linux или в Python? как и потоки. ибо это прям сверх разное.)) потоков ограничение минимум-5, максимум-50 и работают они с общей памятью. процессы могут быть любого количества главное чтоб хватило ресурса и работают как отдельный процесс со своим GIL, если ядер не хватает будут исполняться конкурентно. с потоками не совсем так в python, они со своими особенностями и количество потоков не равно "быстрее выполнится", в отличии от процессов. потоки надо подбирать по количеству для производительности, в разных задачах они по разному будут отрабатывать. тоеcть если у нас 10 потоков то 5 может оказаться быстрее чем 10, или 7. и на них не рекомендуется выполнять счетные операции, каки анализ данных, их лучше на процессах делать, так быстрее. это я про python процессы и потоки.)) вдруг кому пригодится. а то часто пользуются потоками для вычисления. а они блочат GIL и выполнение медленное на выходе.. на процессах такое выполняйте, будет вам шастье.))) и python не будет медленным.)))

  • @user-rp6cz7gf8d
    @user-rp6cz7gf8d 2 месяца назад

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

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

    Вопросы уровня мидл.

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

    это мок-интервью или настоящее? ощущение будто друг другу не особо рады)

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

      Настоящее)

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

      @@python_interview если нужны такие интервью, можем слелать колл, думаю ответы будут хорошего качества. Посмотрим докуда можно планку повысить. Я senior, пишу 15+ лет

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

      @@python_interview гоу к вам приду на собес, чисто для контента. обещаю качественные ответы, хочу посмотреть до каких рамок можно себя толкнуть. Senior Python Engineer, 15+ опыта

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

    Мне кажется, этот интервьюер очень хорошо знаком, компания случайно не в Армении/Грузии?

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

      Неа

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

      @@python_interview Вероятно, что показалось.
      И да, если вы сейчас в РФ, то как-бы вы оценили сегодняшние реалии рынка?

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

      @@nicsolov9821 Я сейчас не в РФ, но мне кажется, что рынок перегружен.
      1. Раньше тех. собес пытались назначить как можно раньше, сейчас чуть ли не на след. неделе только слоты свободные
      2. Частенько после созвона с hr долго откладывали тех собес, а потом либо игнорили, либо писали спустя несколько недель, что вакансия закрыта.
      Это мои субъективные ощущения, может у кого-то по-другому)

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

      @@python_interview Мне кажется, что на рынок идёт кризис по всему миру, это печалит. А ещё просто сумасшедший поток новичков. Можно ли узнать, куда вы перебрались?

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

      @@nicsolov9821 В Грузию

  • @user-dh5ip3uu8k
    @user-dh5ip3uu8k 3 месяца назад

    офер дали в итоге?

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

    Духота

  • @user-zt2ob3le7e
    @user-zt2ob3le7e Месяц назад

    Со всем уважением, но как по мне, так все заданные вопросы должен знать мидл. С сеньором стоит разговаривать на более фундаментальные темы или про интересные фишки.

  • @Antonio-ib6ii
    @Antonio-ib6ii Год назад

    Слабо про линукс и субд

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

    какой senior… это слабый junior

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

      и где он слабьій junior?

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

      @@ivan2885 все вопросы про синтаксис питона, основы бд и чуть-чуть linux. это trainee

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

      @@saralightbourne и солид на примерах тоже trainee, если єто трейни то тогда какие вопросьі должньі бить на senior?

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

      @@ivan2885
      junior - какие-то конкретные технологии (python, django)
      middle - независимость от конкретных технологий, лучшее знание альтернатив (плюсы / минусы подходов). но им нужен senior для координации
      senior - понимание доменной области, когда какие технологии и архитектуры использовать, умение направлять и решать бизнес-проблемы
      я проходила интервью на senior, меня даже ни одного вопроса по python не спросили. всё время обсуждали разные бизнес кейсы, опыт в деталях и какие бы решения я приняла в таких-то ситуациях

  • @user-hp7pc3lv3v
    @user-hp7pc3lv3v Год назад +3

    Чел, по Линуксу и докеру твои ответы - это трыедец. Дальше пока не смотрел)
    А вообще, такое впечатление, что тебе на них так же пох, как и им на тебя)
    По питону чёт тоже не особо, изменяемые и неизменяемые типы - незачет...

    • @python_interview
      @python_interview  Год назад +3

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

    • @user-yj8kp1kx6x
      @user-yj8kp1kx6x Год назад +1

      @@python_interview не понятно зачем так душили по линуксу, как по мне это реально очень странно

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

      @@python_interview Ну я не совсем соглашусь с этой позицией, то что ты не знал команды top ps df это показывает что ты редко ходишь куда-то по ssh, а для бекенд разработчика это бывает нужно
      Поинт про загуглить был б актуален если б они тебя попросили что-то не тривиальное для отображать список всех запущенных дискрипторов или что-то в таком духе
      Просто почему в их глазах ты получил минус за такой ответ > разработчик который все время гуглит тривиальные действия это медленный разработчик
      Ну и про БД как раз видно что с высокой нагрузкой ты не работал потому что не сталкивался с проблемами которые могут вызвать неправильно вызванный уровень изоляции например, такие вещи все же лучше умело скрывать на собесе начитавшись теории и от зубов рассказывая что такое serializable read uncommited read commited и reperable read
      если что замечание не уменьшить мотивацию а попытка раскрыть почему за те или иные вопросы ты получал минусы в глазах собеседующего

  • @user-zx9el2ld7g
    @user-zx9el2ld7g Год назад +1

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

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

      Вспомнил, как я проходил однажды через кадровое агентство, где при ответе на вопрос не было не то что диалога, а вообще полный "разрыв связи":
      - Что делает этот код?
      - _рассказываю_
      *пауза в 15 секунд*
      - Алло?
      - Да?
      - Я ответил
      - Хорошо, следующий код.
      И так далее.

  • @user-cx8kh4sb2i
    @user-cx8kh4sb2i 2 месяца назад

    ребят, если это на $5000 то это просто смех ебаный)

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

    Кринж. И это синьёр?

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

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