Собеседование Python. Разбор вопросов
00:00 Agenda
00:41 Как справиться со стрессом
04:00 Начало собеседования
13:37 Типы данных в Python
22:46 Lambda-функции
24:40 Тернарный оператор
26:50 Глубокая и поверхностная копия
28:40 Виртуальные окружения
33:45 Big O Notation
41:48 Классы
48:35 Декораторы
56:53 Абстрактные классы
59:57 Метаклассы
1:02:52 ООП
1:10:24 MRO
1:13:00 Итератор
1:14:24 Генератор
1:17:00 ОФФТОП
1:31:07 Конкурентность, асинхронность
1:36:20 Тестирование кода
1:43:32 ORM
1:46:34 Best practices
1:55:35 Базы данных
2:04:48 Git
2:07:28 Docker
2:12:37 Web
2:19:24 Linux
2:23:10 ОФФТОП
Пікірлер: 353
Хорошая шпаргалка перед собесом что-бы системазировать и повторить базовый пайтон👍🙂
Очень полезная и качественная информация. Благодарю!
Спасибо большое за практически исчерпывающее объяснение базовых вопросов по Питону.
Спасибо. Видос просто отличнейший. Обновил знания и добавил немало новых )
Спасибо за видео! Очень полезно освежить знания перед собеседованиями.
Спасибо, классный обзор. Понятно куда двигаться
Спасибо, отличное видео. Понял, что много чего еще надо подтягивать))
Спасибо за видос, очень круто, ровно то что нужно, ни больше ни меньше!
Спасибо большое, очень интересный и важный видос)
Супер🔥🔥🔥🔥🔥 Я сейчас набираюсь знаний в области DS, не хватало как раз вот таких основ именно самого языка. На курсах по ml и dl обычно много времени уделяется математической составляющей и работе с фреймворками, но вот про сам язык обычно говорят мало. Знания о языке я собирал по крупицам и давно хотелось структурированно по всему пройтись. В общем ещё раз спасибо 👍
Это потрясающе, именно то, что мне больше всего было нужно. Огромное спасибо!
@zefirka4386
2 жыл бұрын
как твои успехи)?
@mlr__roal_6867
Жыл бұрын
Ну как, устроился уже?
@stefanlight
Жыл бұрын
Согласен
@positive6329
3 ай бұрын
@@mlr__roal_6867Всё ещё от потрясения отходит😂
Спасибо за это классное видео! Сам мидл и почти на всё знаю ответ, но было полезно послушать как красиво/структурированно отвечать на вопросы, на которые уже столько раз давал ответ)
@positive6329
3 ай бұрын
Какой ты мидл, если знаешь ответы 'почти на все' вопросы к junior-ам?
Очень полезный подбор. Спасибо.
Спасибо, очень плотно и по делу.
Огромное Вам спасибо! 🙏
Это прямо в закладки! Спасибо!
Офигенный видос, спасибо!
Большое спасибо! Очень хорошо структурированная информация в роликах. Сижу мучаюсь с ответом на вопрос "Расскажите о себе". Не знаю говорить ли об опыте работы до программирования. Я switcher, и хотя у меня уже больше года коммерческого опыта, почти нет опыта собеседований, так как дважды легко попадал на низкооплачиваемую работу как бы "по знакомству" через техзадание. А теперь нужна ЗП получше- пришла пора мучений.
Это самый лучший видос по собесам. 100500 лайков.
Хорошее видео. Спасибо! От себя изучающим питон порекомендую книгу Effective Python.
Спасибо, отличный разбор
@user-pg6mb6il1c
2 жыл бұрын
@@rineisky скинь плиз тг канал. Хочу ворд достать
Спасибо, было познавательно!
Спасибо большое за видео!
Шикарный видос, кому надо будет проходить собес как раз самое то
Отличное видео, спасибо
Спасибо, полезно!
Спасибо, очень полезное видео
Хорошо все объяснил, респект.
Фантастический разбор
Почти все вопросы были понятны. Спасибо за информацию, кое-что для себя узнал нового
спасибо Вам за видео
чтобы бороться со стрессом на собесах, на них нужно ходить. и будьте собой.
@gulandom6737
2 жыл бұрын
Владисоав Гришин. Вы абсолютно правы!!! Спасибо за короткий ,полезный и очень конкретный совет. Легче всего быть собой и не врать. Спасибо большое Вам!!!
@AntiBandera
Жыл бұрын
только первые 10 собесов стресс
@alazarnfreeman9216
Жыл бұрын
@@AntiBandera хз, у меня стресс пропадает после 1-2
@user-vn5ep8pn8c
Жыл бұрын
@@alazarnfreeman9216 пропадает? не в прошедшем времени?)
@alazarnfreeman9216
Жыл бұрын
@@user-vn5ep8pn8c если не ходить несколько месяцев, то навык теряется. Это не велосипед
Спасибо за Видео!. Правда я думал у меня матрица полетела на компе). Справа сверху на видосе пятня какие-то. Видос Тема!!!!
Огонь! Спасибо!!
лайк за подробнейший разбор!!! и не просто лайк, а лайк от СЕООНЛИ - гуру в вебмастеринге
Отличное видео, это запись с вебинарам какого-то?
Привет спасибо за видео было очень интересно!! Просто хотел спросить а на каком уровне джун к примеру должен уметь решать задачи к примеру codewars или leetcode ?
Хорошая и понятная подача. Я так понимаю это выкладка с какого-то курса. Я бы даже записался годик назад, но сейчас если только на определенные блоки)
Спасибо большое.
Здравствуйте. Можно ссылку на Ваш вордовский документ который открыт в видео?
Это поистине полезный видеоматериал. Его спокойно можно использовать в качестве лекций при обучении программистов в технических университетах.
@w04m1
Жыл бұрын
Месяц назад числанулся, пните, когда такой хороший материал до вышек дойдёт, поступлю ещё раз, проверю
@alazarnfreeman9216
Жыл бұрын
@@w04m1 это ты зря
@eugenegallas2340
Жыл бұрын
@@w04m1 всм?
@w04m1
Жыл бұрын
@@eugenegallas2340 ты учился в высшем учебном заведении на специальности, которая позиционирует себя как "будете программистом или типа того"?
@eugenegallas2340
Жыл бұрын
@@w04m1 Не, я ток 9 класс окончиваю
Наверно лучшее видео по собеседованию на junior. Сам устраивался месяца 3 назад, если бы его посмотрел до собеса, было бы спокойнее.
@user-yz1go9bt9w
2 жыл бұрын
если не секрет что спрашивали?
@user-jk8bu2dr7o
2 жыл бұрын
@@user-yz1go9bt9w вопросы из видео, пару простых запросов на sql, и много про асинхронность/многопроцессность/многопоточность.
@user-yz1go9bt9w
2 жыл бұрын
@@user-jk8bu2dr7o спасибо
@lauriekatan4927
2 жыл бұрын
А где учился?
@user-dx4wt7yh6o
Жыл бұрын
Кирилл, здравствуйте. А можно как-то с вами связаться? Телеграмм, ватсап? Хотел задать вопросы про работу, про получение опыта
Очень полезно !
МОЩНЫЙ ВИДОС
А точно для джунов эти вопросы, просто огомный объем информации и вопросов....
@elkins87
6 ай бұрын
Нет. просто рынок в рф переполнен джунами и соответственно требования к джунами увеличили до уровня мидлов.
@alexforeverbestinthewest353
5 ай бұрын
Оу, спасибо за инфу, получается, что "хер вкатишься" в отрасль((@@elkins87
Я думаю, что эти вопросы более нацелены на мидлов. У меня многие вопросы из данного списка спрашивали именно на данную позицию. Отличный ролик!
@darkvibes2870
2 жыл бұрын
У меня на галере эти вопросы едва ли на джун+ спрашивают…
@Nice_One_Me
2 жыл бұрын
@@darkvibes2870 у меня их на 1с спрашивают )
@rumya2841
2 жыл бұрын
Знать ООП, слабую и строгую типизацию, инкапсуляцию это дело мидлов? XD Мне 15. Я сам пишу на С++. Параллельно учу ассемблер, а также в планах освоить OpenGL на GLAD и WinApi. Можешь мне объяснить, почему для вас, надеющихся устроиться на зарплату 300 тыс. такие вещи кажутся сложными? Также считается нормой не знать собственный язык. Разве вы не должны всё это на зубок знать?
@illiakaltovich
Жыл бұрын
@@rumya2841 Ты молодец
@AleksandrIvin
Жыл бұрын
@@rumya2841 Сейчас твой мозг как губка впитывает все что нужно и не нужно. С возрастом эта способность теряется и человек запоминает только то, что использует, а что не использует быстро забывает. Парадигмы в программировании меняются, создаются новые и отмирают старые. Через 10 лет профессиональной деятельности, мозг очень быстро адаптируется к реалиям, зачем на зубок что либо знать, если в нужный момент можно прочитать документацию и решить задачу. Вообще само словосочетание "учить python" или любой другой язык программирования довольно странное. Нужно читать доки, смотреть видео и разбираться как это работает на практике, решая какие либо прикладные задачи. И этот современный процесс собеседования похожий на экзамен тоже какая-то дичь. Оно понятно, большие деньги притянули магнитом кого-попало и нужна фильтрация. А вот 20-30 лет назад в программисты шли люди по призванию, работа не была престижной и все эти экзамены были просто не нужны.
Классное видео, спасибо автору. Хотелось бы word документ прикреплённый к видео. И это точно на джуна, а то как то жирно?)
@front_praxis
2 жыл бұрын
@@rineisky Добрый день! Не могу найти ваш телеграм канал ( дайте пожалуйста линк. Спасибо.
Вроде все и так знал, но часть уже забыл Надеюсь поможет в сегодняшнем собесом🙏
@irinaseroshtanova4972
Жыл бұрын
ну как, помогло? встречались похожие вопросы?
@romanvishnyakov6835
Жыл бұрын
@@irinaseroshtanova4972 больше его никто не видел)))
@user-gb5op3sc4i
Жыл бұрын
Ахаха
хорошее видео, не могли бы вы прислать текстовку вордовского файла или сам файл прикрепить?
Какая самая сложная задача, отвечаю: переучиться на программиста, в течении года. Вот вам в помощь.
Отличное видео. Автору искреннее спасибо за труды. Касательно Linux, нынче в Win 10/11 уже виртуалка с Lin даже лишнее, на мой взгляд (если нужно изучение терминальных команд). Так как, практически из коробки, уже есть WSL.
@user-pf6sj8cn2n
2 жыл бұрын
Но а вдруг человек который принимает собеседование старомоден? Всякое бывает.
@user-pw9sn6ih9e
11 ай бұрын
@@user-pf6sj8cn2n старомоден и сидит на winXP )
А байты и мемори вью не типы данных больше?
Спасибо за отличное видео! Как насчёт того, чтобы провести фиктивное собеседование на позицию python junior developer? Ну и конечно выложить это все на твой Ютуб канал. Если что готов быть интервьюируемым)
@AndyPronin
2 жыл бұрын
ПРошу прощения, что честно заимствовал идею и сделал такое видео.
@AntiBandera
Жыл бұрын
@@AndyPronin нет тебе прощения Пронин !
чел хорош!
Супер
Большое спасибо за столь подробное видео! Кстати, вопрос: Часто ли джуна по Докеру сильно спрашивают, или нет?
@rineisky
Жыл бұрын
докер - это базовая тема, так что стоит ожидать любых вопросов по нему. Чтобы его понять, не потребуется много времени, за одни выходные с нуля до профи легко осилить
где можно увидеть ссылку на Ваш гитхаб?
Чітко і структуровано. Респект автору.
Резко позвали на повторное собес завтра вот готовлюсь :)
@royalea9354
2 жыл бұрын
Как прошло?
про GIL еще неплохо бы знать\спрашивать - в каких случаях GIL работает а в каких нет? например если питонячий код вызывает системную либу которая не изменяет питонячую область памяти, то GIL для такого процесса "выключается", а также есть либы типа NumPy которые умеют "выключать" его для ускорения вычислений
@supers4391
2 жыл бұрын
@@rineisky Можно ссылку на этот файл с вопросами?
@awdawdawdbfw
Жыл бұрын
Зачем это джуну?
@mihailbury240
3 ай бұрын
Чтобы знать, что такое существует. Нужно разбираться в инструменте с которым работаешь@@awdawdawdbfw
@awdawdawdbfw
3 ай бұрын
@@mihailbury240 ага. Таким же аргументом можно обосновывать требования знаний ассемблера
MRO3 несколько неточно объяснён. там не просто поиск в ширину.
отличное видео, а как можно получить эту таблицу в документе?
Чтобы запомнить фамилию Берна, надо соединить СТРАУС и ТРУП == СТРАУСТРУП
thx!
Топчик
а где нибудь есть текстовая версия?
Тернарный оператор - это скорее короткая запись подстановки значения в зависимости от условия. А не тот извращённый смысл который используется в питоне. Смысл не в записи в одну строчку. А именно как подстановка в формулы. Ну например на языке lua это выглядело бы так: x = isLikeble and 1 or 0 * 10 - isNalogable and 1 or 0 * 5 print(x)
@rineisky
Жыл бұрын
В Python есть принцип, что читаемость имеет значение. Если тернарный хорошо читается, то его можно всунуть, но иногда я предпочитаю написать обычный if в угоду читаемости кода
@qwertymangames1800
Жыл бұрын
@@rineisky вот в python как раз тернарный оператор ужасен. Я без понятия кто придумал его именно так использовать. Как обычное условие. Я писал на C# и lua. И там и там короткий и понятный тернарный оператор который можно даже в математические формулы спокойно использовать. Но в python он ужасно читаем
Так-с, я пока только учусь и ещё не работал с ORM, Django и поэтому ответил на всё до вопроса про ORM, ну и на несколько после него. Месяца 2 ещё поработаю с SQL, ORM и Django, сделаю несколько проектов и буду искать работу )
@harlok13
Жыл бұрын
привет, как успехи?)
@rostikniks
Жыл бұрын
@@harlok13 Привет, освоил SQL, ORM, Django. Сделал проект - сайт на Django. Еще пару недель на DRF, сделаю ещё один проект, разберусь в асинхронности и многопоточности, ну и буду выходить на рынок) А, ну и ещё английский апнул с низкого А2 до среднего B1)
@harlok13
Жыл бұрын
@@rostikniks отличные результаты) желаю успехов на рынке, да и в изучении😁есть желание в телеге пообщаться? можно было бы делиться успехами хехе я как раз на том же пути @harlok
@mihailbury240
3 ай бұрын
Ну что, как сейчас?@@rostikniks
Насчет mock'ов. По идее, тестируемый метод - это метод, не вызывающий сторонних методов напрямую. То есть если он что-то снаружи дергает, то только через абстрактные методы (в "джавке" - интерфейсы), тогда у нас будет возможность тестировать только логику этого метода, не трогая ничего больше. Ну, он может дергать другие методы класса, например, но к ним такое же требование. И при юнит-тестировании мы ДОЛЖНЫ mock'ать все эти абстракции, иначе о детерменированности можете забыть, а это основной критерий тестируемого метода вообще-то.
@ted_res
2 жыл бұрын
Отсюда же вытекает и то, что непосредственно в коде создавать новые объекты - не круто. Как минимум потому, что на них заглушки не навесить так просто.
1:37:54 , 1:38:11 мне кажется вы интеграционные тесты называете функциональными а тесты касаемые доступов называете интеграционными
Башка к концу видео лопнула. Завтра пересмотрю
про декораторы супер объяснение, но ничего не понятно )
Заиметь бы такой файлик с вопросами...)
один з найкраших оглядів співбесід, який коли не будь бачила
Спасибо! Что за больница ?
Вы можете сделать такое же видео только конкретно по web-python? разобрать вопросы по http, frameworks, backend, архитектуру, как-нибудь супер основательно?
@sobaka600
2 жыл бұрын
*КОНЕЧНО, А ПОТОМ РАБОТАТЬ ЗА ТЕБЯ ПОЙДЕТ!*
@lizenox
Жыл бұрын
@@sobaka600 вообще супер будет
Все аргументы передаются по ссылкам! Проверяется функцией id
может кто то объяснить инкапсуляцию? про сокрытие данных я и так знаю а вот про методы и свойства с общей идее не совсем понял
Готовтесь к порке
Про аннотацию не совсем так. Если есть два класса описанных в двух разных файлах и подключенных через import друг к другу. То такой код может стартовать. Если же добавить в аргумент одного из методов первого класса аннотацию, что он принимает класс второго. А у второго в конструкторе, что он принимает класс первого. То будет ошибка что возникла цикличная зависимость. Хотя без аннотаций всё работает. Но почему pycharm до запуска программы не даёт предупреждений??? Всё ведь нормально работает если аннотации убрать и ошибок нет
Очень мало видео на канале, но каждый по ценности превосходит другие условно 50 видео в совокупности.
Ну вообще, в основном выделяют три вида полиморфизма: полиморфизм подтипов, параметрический полиморфизм и ad-hoc полиморфизм. Также у этих трех основных видов полиморфизма выделяют ещё подвиды и их очень много. Знать подвиды основных видов полиморфизма уже точно не стоит рядовому программисту. В любом случае спасибо автору за видео. Очень классное. По нему готовлюсь к собеседованию (уже взяли, но продолжаю) -- разбираю вопросы, читаю дополнительно теорию и выписываю всё себе в заметочник.
@andreyilin6609
2 жыл бұрын
Про MRO тоже не совсем верно. Python знал три различных алгоритма MRO: classic, Python 2.2 new-style и Python 2.3 new-style (он же C3). В основе classic MRO (для версии python 2.1 и ниже) использовался алгоритм DFS (поиск в глубину). Для Python 2.2 new-style (имеется ввиду классы нового стиля, которые наследовались от object, например: class A(object):; в python версии 3.0 и выше это наследование происходит не явным образом, то есть class A:) использовался алгоритм BFS (поиск в ширину). Начиная с версии python 2.3 и выше используется алгоритм C3-linearization (C3-линеаризация). Этот алгоритм по прежнему используется в Python 3.0 и выше.
50-100 строк кода это адекватно?
Где можно сами вопросы найти?
Про тулзы ещё можно спросить про ёлку, сентри, трейсинг и тд
бро, а почему нет какого-то контакта на телегу чтоб вопросы задать?
@rineisky
11 ай бұрын
Есть ссылка, если перейти на страницу канала
В Python аргументы в функцию передаются ВСЕГДА по ссылке. Строки, кортежи и т. д. нельзя изменить внутри вызываемой функции потому что они как раз НЕИЗМЕНЯЕМЫЕ, а не потому что какой-то механизм есть отдельный для передачи по значению или ссылке.
@markervictor
2 жыл бұрын
@@rineisky в контексте типов вроде кортежей, строк и т.д. не имеет значения какая ссылка передается, потому что в них уже нельзя ничего присвоить или изменить , поэтому как раз они передаются по обычной ссылке. Можете посмотреть id объектов, они не изменяются до передачи в функцию и внутри функции.
@markervictor
2 жыл бұрын
@@rineisky много где говорят про неизменяемость типов именно на примере передачи их в функцию, это много кого вводит в заблуждение, будто в питоне как в Java есть список неких особых типов, передающихся по значению, но это не так.
@nazarkhort4362
2 жыл бұрын
@@rineisky Здравствуйте! Меня заинтересовал ваш диалог. Я не знаю, как правильно задать вопрос, поскольку я начинающий. Не могли бы Вы както попроще для меня объяснить, как будет работать такой код. def some_function(some_arg=1): print(id(some_arg)) some_arg = some_arg + 1 print(id(some_arg)) return some_arg print(some_function()) # 121 122 2 print(some_function()) # 121 122 2 print(some_function()) # 121 122 2 Я предполагаю, что some_arg это ссылка на объект id которого 121 и значения 1. Мы создаем этот объект в момент определения функции (не вызова)? А что дальше? Переприсваиваем some_arg значение some_arg + 1 и это будет совсем другой объект (id=122) ссылку на который мы возвращаем вызвав нашу функцию?
@nazarkhort4362
2 жыл бұрын
@@rineisky Тоесть some_arg теперь является ссылкой на объект 122. Я знаю, что код работает следующим образом: Если ссылка на объект удалена, то сборщик мусора просто удаляет объект, потому что считает его ненужным. Поскольку мы переприсвоили some_arg (id=122), то ссылка на id=121 удалена? Тоесть объект 121 больше не существует? Я знаю, что мое представление может быть совершенно абсурдным, но буду очень благодарен за любые объяснения. Спасибо!
@nazarkhort4362
2 жыл бұрын
@@markervictor Здравствуйте Виктор! Не могли бы вы взглянуть на мой код тоже. Буду благодарен за объяснение.
У Лутца и в официальной доке (в словарике) иммутабельные типы: числа, строки и кортежи. Кому верить?)
Насколько я понимаю оператор in работает с итератором, поэтому сложность и для списка и для множества будет всегда одинаковая O(n). Так как под капотом делается вот так: 2 in iter([1,2,3]) 2 in iter({1,2,3})
@kra1dex
7 ай бұрын
Нет. Посмотри про хештаблицы
@WounderVaflel
6 ай бұрын
Сколько бы ни было элементов в словаре, хеш любого из них посчитается с одной скоростью
Это что за тема такая для vscode?
По вопросу аннотации типов. А singledispatch как же?
не ужели кто то такое спрашивает, это же все самый начальный уровень....
Сейчас к джуну требования даже выше, чем к мидлу
50-100 строк кода на тестовой задаче на собеседовании? это в какой вселенной так? :)
44:46 *обязательных параметров нет. Ведь так?
Это на всех собеседованиях вопросы тестов суперважные?
@Das.Kleine.Krokodil
2 жыл бұрын
@@rineisky Спасибо
тапл = tuple = !тьюпл! фикс тур = fixture = !фиксча! (см транскрипцию в словаре)
Подскажите, немогу понять 22:14 Выполняются кем? Фронтами? Вардами?
@rineisky
Жыл бұрын
линтерами
Можно ссылку на этот файл с вопросами?
@supers4391
2 жыл бұрын
@@rineisky спасибо =)
16:00 а почему это не работает с цифрами? В примере ниже выполнятся оба блока. Неужели пайтон при обнаружении значения, которое уже есть в памяти просто наводит туда новый указатель? Если да то почему с массивами так же не работает? Если учитывать что массивы изменяемы и потенциально могут измениться, то почему просто не внедрить CoW, оставив фичу экономии памяти? num1 = 3 num2 = 3 if num1 == num2: print('equal') if num1 is num2: print('equal')
@peskovdev
Жыл бұрын
Спустя время пишу ответ: хэшируемость элементов. В питоне неизменяемые типы данных хэшируются. Если мы пробуем присвоить значение чему-либо когда хэш от этого значения УЖЕ находится в памяти - питон просто туда сошлется. В свою очередь массивы это изменяемый тип данных, соответственно нехэшируемый. Что касается CoWa - постоянно пересчитывать хэш от изменяемого типа данных слишком дорого, отсюда от этого и отказались.