- 13
- 140 546
Python собеседования
Russia
Приєднався 1 тра 2015
На этом канале будут выкладываться различные собеседования на позицию Python разработчика.
Собеседование на позицию Senior Python Developer 5000$ #12
00:00 - асинхронность
04:48 - redis
07:44 - celery
11:34 - load testing
13:05 - шардирование
15:25 - репликация
16:50 - оптимизация долгих запросов
19:32 - миграция больших данных
#собеседование #backend #python #асинхронность #async #redis #celery #loadtesting #шардирование #репликация #оптимизация #миграция #senior #сеньор #интервью #программирование #sql #review #dataMigration #optimisation
04:48 - redis
07:44 - celery
11:34 - load testing
13:05 - шардирование
15:25 - репликация
16:50 - оптимизация долгих запросов
19:32 - миграция больших данных
#собеседование #backend #python #асинхронность #async #redis #celery #loadtesting #шардирование #репликация #оптимизация #миграция #senior #сеньор #интервью #программирование #sql #review #dataMigration #optimisation
Переглядів: 2 844
Відео
Подборка практических задач с собеседований #1
Переглядів 2,8 тис.Рік тому
Небольшая подборка лайф-коддинга с различных собеседований на позиции middle/senior python developer. 00:00 - throttling декоратор 32:57 - retry декоратор 42:56 - сжатие строк 51:40 - multiarg декоратор
Собеседование на позицию Senior Python Developer 4000-5000$ #11
Переглядів 11 тис.Рік тому
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 - к...
Собеседование на позицию Senior Python Developer 350т.р. #10
Переглядів 15 тис.Рік тому
00:00 - первая задача по python 01:05 - вторая задача по python 02:31 - третья задача по python 05:00 - что такое асинхронность 07:02 - что такое django middleware 08:21 - запрос на sql 10:08 - отличие реляционной базы от нереляционной 12:43 - минусы использования индексов 13:16 - задача на архитектуру #собеседование #backend #python #senior #сеньор #интервью #программирование #sql
Собеседование на позицию Senior Python Developer 4000$ #9
Переглядів 15 тис.2 роки тому
[Python] 00:00 - какие бывают типы данных 00:53 - как устроен список [Задачи] 04:22 - как можно развернуть список 06:12 - как пересечь 2 массива [Python] 07:25 - лямбда-функции 09:20 - замыкания 11:15 - менеджеры контекста 15:00 - исключения 17:23 - ООП 20:45 - MRO2 vs MRO3 23:15 - mixins 24:17 - абстрактный класс 27:22 - полиморфизм 28:27 - мета-классы 29:57 - функциональное программирование v...
Собеседование на позицию Backend Developer Python Middle #8
Переглядів 8 тис.2 роки тому
По результатам собеседования был получен оффер в размере 140 т.р. Тайминги [Общие вопросы] 00:00 - что такое HTTP протокол 01:07 - отличия GET от POST запроса [Python] 01:40 - типы данных 03:20 - ООП в питоне 05:20 - наследование 06:13 - абстракция 06:52 - полиморфизм 07:33 - как создать контекстный менеджер 08:17 - магические методы [Django] 09:20 - django middleware 10:49 - наследование модел...
Собеседование на позицию Backend Developer Python Middle #7
Переглядів 19 тис.2 роки тому
Python 00:00 - принципы ООП 01:56 - миксины 02:19 - виды сокрытия 02:46 - магические методы 04:17 - PEP8 04:46 - асинхронность GIL 12:39 - датаклассы namedtuple 14:34 - MRO 15:30 - stderr 16:36 - slots 17:19 - декораторы classmethod и staticmethod 18:41 - моржовый оператор 20:09 - метаклассы 22:45 - asyncio Django 24:32 - IntegerChoices для чего используется 25:35 - insert/update (как джанга оп...
Практические задачи с собеседования Backend Developer Python Middle #6
Переглядів 5 тис.2 роки тому
Шестой выпуск из серии собеседований на позицию middle python разработчика. Снова собеседование, состоящее из практических задач. 00:00 задача на условия 08:44 задача про отрезки 29:14 код ревью #собеседование #backend #python #middle #мидл #программирование #лайфкодинг #практическиезадачи
Собеседование на позицию Backend Developer Python Middle #5
Переглядів 5 тис.2 роки тому
00:00 - Уровни изоляции транзакций 03:06 - asyncio 04:44 - GIL 06:17 - WebSocket 11:16 - Разработка веб-сервера 19:30 - System Design (переход от монолита к микросервисам) Полезные ссылки по вопросам, которые были на собеседовании: 1. Уровни изоляции транзакций postres - postgrespro.ru/docs/postgrespro/9.5/transaction-iso 2. asyncio - habr.com/ru/post/337420/ 3. GIL - tproger.ru/translations/gl...
Практические задачи с собеседования Backend Developer Python Middle #4
Переглядів 7 тис.2 роки тому
Четвертый выпуск из серии собеседований на позицию middle python разработчика. В этот раз собеседование состояло из практических задач и лайф кодинга. 00:00 задача по sql 10:45 копирование списков 11:26 лямбда-функция 13:27 mro3 14:44 преобразование многомерного массива в одномерный 18:58 проверка анаграмм #собеседование #backend #python #middle #мидл #программирование #лайфкодинг #практические...
Собеседование на позицию Backend Developer Python + FastAPI Middle #3
Переглядів 11 тис.2 роки тому
Третий выпуск из серии собеседований на позицию middle python разработчика. В этот раз в компании на бэкенде используется FastAPI. Также было немного лайф-кодинга. Python 00:00 инкапсуляция 01:37 модули и пакеты 02:12 наследование 03:35 приватность в питоне 05:10 магические методы 06:40 исключения 09:30 comprehensions 10:10 рекурсия vs итерирование 12:19 декораторы практическая реализация 14:42...
Собеседование на позицию Backend Developer Python + Django Middle #2
Переглядів 12 тис.2 роки тому
Второй выпуск собеседования на позицию middle python разработчика. Общие вопросы 00:00 логи 00:48 отличия git merge от git rebase Python 01:11 отличия is от 01:27 lambda функции 02:03 генераторы и итераторы 04:16 контекстный менеджер 05:03 множественное наследование 06:10 hash map 08:36 метаклассы 10:53 многопроцессорность, многопоточность, асинхронность 13:31 SOLID 15:17 сложности алгоритмов 1...
Собеседование на позицию Backend Developer Python + Django Middle #1
Переглядів 25 тис.2 роки тому
Пример собеседования на позицию middle python разработчика. Python 00:00 отличия new от init 01:33 слоты 02:30 метаклассы 04:20 SOLID Django 13:00 наследование моделей 15:00 где лучше расположить логику (модели vs сериализаторы) 18:30 где лучше расположить логику (модели vs менеджеры) 20:30 django middleware 21:25 drf permissions Общие вопросы 24:52 REST API 28:09 индексы в postgres 29:40 celer...
По-моему, слишком много теоретических вопросов и мало тех ,которые показали бы реальный опыт кандидатов. Я когда проводил собеседования, предпочитал обратный подход. Так можно взять ботана или гуглильщика.
54:25 - о чем он спросил? Неразборчиво продиктовано
Tortoise ORM
Я бы за такой собес попросил зп не менее 500к
3 собес: интервьюер приебался что получение элемента по индексу долго работает хотя это константа и это быстро. Не факт что перезапись переменной для хранения предыдущего значения будет быстрее чем за константу. Надо было спросить у него че замеры есть? Что за идиоты собесят аж тошнит от таких. Да и в принципе вторая задача в 3 собесе была идиотская))
- вы занимались фронтендом? - нет - но давайте представим, что вы фронтендер 😂
Спасибо большое автор!! Продолжая в том же духе❤
Какое же бессмысленное собеседование, жуть. Переплюнуть этот бред можно только лайвкодингом.
- Зачем состриг? - Базар гастрит
Кто тоже смотрит собесы на сеньора, чтобы в 2024 пройти на джуна? 🙋♂
Только не на джуна, а на стажика)
Ya!
собеседующего понять можно. Ему деньги платят, сиди и задавай вопросы. Потом тебе за это время заплатят. Но лично мое мнение, что так глубоко спрашивать не надо. Лучше наверно понять какой у человека тип мышления, сможет ли он разобраться в чем-то, если срочно нужно. А тут да, как на экзамен пришел и тебе вместо 3 вопросов попался билет, где все 150. В любом случае, ты приходя в компанию, в первый день не будешь лезть на прод и что-то менять. Недельку тебе дадут осмотреться и если с чем-то не знаком, как раз будет время ознакомиться
Все конечно интересно но музыка и видео на нервы действует, пришлось включить и смотреть на комменты
Этот канал заслуживает большего) Нажмите там на кнопки под видео
Набрел на канал. Супер полезный. Спасибо!
На счёт poetry не соглашусь - pip сейчас сам хорошо справляется с выбором нужной версии библиотеки. Основная и главная фишка poetry, pipenv, pdm и прочих подобных пакетных меннаджеров - это избегание ситуации, когда какой-нибудь малолетний дебил в твою зависимость версии берёт и форспушит. lock-file - это то, ради чего стоит использовать эти штуки. И по этому, когда в какой-то момент на проде у тебя не собирается пакет из-за проблем с зависимостями - не поленись и посмотри что там отъебнуло, вместо удаления и создания заново локфайла, анон!
Со всем уважением, но как по мне, так все заданные вопросы должен знать мидл. С сеньором стоит разговаривать на более фундаментальные темы или про интересные фишки.
полностью согласен
Во ты наваливаешь, я аж со стула каждый раз падаю XD
4:40 Пустой словарь как bool, будет как True или False ? Ответ False И интервьюер говорит такой: НЕПРАВИЛЬНО. Мой ахуй в ахуе.
Кролик это Rabbit Mq?
Да
Новый видосик, круто! Как вы там поживаете?
Да все хорошо вроде) Работа работается и ладно
Прикольно. Вопросы не сложные, но то, как уверено ты говоришь наверняка является большим плюсом, чем знание
Автор красава. Судя по интонации интервьюров - токсичный климат в комманде. Не особо хочется им этим всем заниматься и новых людей в комманду набирать. Ну раз уж начальство из-под палки заставило то что поделать....
ребят, если это на $5000 то это просто смех ебаный)
Годный контент! Спасибо!
На субтитры лучше не опираться: селери - сцена, воркеры - бургеры =D А так спасибо, интересно!
Да, должно быть yield вместо elt в самом начале и т.д. :)
Уже на сеньора) какая была обратная связь от компании? Вроде отлично на все ответил
Абстрактная с "не готовы пригласить вас дальше"
Ну взяли тебя или как?
нет)
@@python_interview Я бы тебя тоже не взял. Похоже что там какая то унылая компания, так что для тебя это даже к лучшему.
@@user-xg8qt8ky1s почему не взял бы?
@@dot.4069 Он SQL не знает.
Ура
вопросы ни о чем, ответы тем более
Я уже кидал год назад задачку от Сбера, привожу один из ответов, который на данный момент не был описан. "# Задача: найти 1 уникальное значение, дубликатов всегда по 2: values = [1, 1, 2, 2, 3, 3, 4, 5, 5, 6, 6]" Как многие догадались, можно и через dict, counter, дополнительные структурки для временного хранения (в тот же список добавлять элемент, если его в списке нет, убирать если есть), и всё идёт к вопросу алгоритмической сложности. Сам виноват с условием, что не указал про элементы - исключительно цифры (со строками не сработает) Один из ответов - использовать xor (^, крышечку): values = [1, 1, 2, 2, 3, 3, 4, 5, 5, 6, 6] def find_unique(values: list) -> int: result = 0 for elem in values: result = result ^ elem return result print(find_unique(values)) Прикол данного решения заключается в том, что написав такой ответ можно показать себя "шибко умным" в контексте собеса на определённую должность, и из-за этого не пройти, т.к. написанный вами код должен понимать другой разработчик, а не все вспомнят про XOR. Так что необходимо будет хотя бы обозначить этот момент при прохождении интервью
офер дали в итоге?
Нет
почему так плохо слышно отвечающего то:(печаль
Мамкины собеседователи
это мок-интервью или настоящее? ощущение будто друг другу не особо рады)
Настоящее)
@@python_interview если нужны такие интервью, можем слелать колл, думаю ответы будут хорошего качества. Посмотрим докуда можно планку повысить. Я senior, пишу 15+ лет
@@python_interview гоу к вам приду на собес, чисто для контента. обещаю качественные ответы, хочу посмотреть до каких рамок можно себя толкнуть. Senior Python Engineer, 15+ опыта
Мне всегда казалось что требования для мидла гораздо выше. Теперь не так страшно идти на собес..
не смотрел все, тыкнул случайно, на 1:01:00 . ну как сказать в чем проблема? видно, что спрашивающие сами несильно дотягивают до уровня сеньоров ибо в этой шаблонке куча проблем и намеренный мистайпинг, это малая часть этих проблем. там с ООП все очень плохо, зачем-то передается структура данных со свойствами, которая внутри размазывается на публичные поля (что создает потенциально сильную связность, если у вас прям логика завязана на эти данные ну так запихните их в класс, как это стандартно делается в питоне). класс Dog без особых на то причин нарушает интерфейс публичный Animal добавляя новое свойство , при этом нигде не описывается, что такое новое поведение добавлено, аля какое-нибуль breedable . Вершина ужаса это класс Коровы, которая вообще ничего не делает только добавляет публичные методы несовместимые с интерфейсом (базовым классом). т.е. написана ниочемная логика, а уже поломано поведение т.о. что придется на каждом участке программы писать кучу проверок, что за класс, и что он умеет. подобный код сразу в помойку. совет новичкам - когда пишете сразу думайте о двух вещах - как вы это тестировать будете (пускай даже гипотетически) и как вы этим пользоваться будете в разичных сценариях программы. данным кодом пользоваться нельзя, тут ООП (наследование) не помогает , а делает все только хуже, ибо написано криво
ааааа, выключите музыку!!!!
Приоткрыл балкон, все равно не помогло, душно) офер то дали?
Не помню уже) скорее всего нет
Сложилось впечатление что собеседующий сам плохо понимает celery и все что рядом с ним)
Обратная связь от меня, раз уж вам компания ничего не дала :) 2. 01:05 Плаваете в поведении стандартных методов, но имхо, это не то, что должно от зубов отскакивать 3. 02:31 Ошибки. Интервьювер рассказал про обе. 4. 05:00 Объяснение с фактическими ошибками, без указания на ключевые отличия разных моделей выполнения 6. 08:21 Второй запрос не заработает, если там просто айдишник на имя заменить 9. 13:16 Мне кажется интервьювер дал задачу не на архитектуру, а на общий проблем солвинг и хотел узнать как ты бы подошёл к решению, не уверен мне послышалось или нет, но вроде он упомянул SQL, возможно он хотел узнать, как бы ты подошёл к отладке и оптимизации запроса. В целом я думаю норм, я бы взял, но даю моменты для развития: - Пробежаться ещё раз по Лутцу, чтобы знать как работают условные extend / and и т.д. - Подтянуть asyncio, можно написать свой реактор на генераторах например, чтобы лучше разобраться во внутренностях и особенностях - Docker тоже хорошо было бы подтянуть - Не совсем уверен в текущем уровне, но рекомендовал бы поботать system design (или хотябы подтоговиться к system design интервью)
Я в начале непонял, разница между изменяемыми и неизменяемыми, он сказал что первые передаются по ссылке а вторые по значению(это как вообще)? А разве не все данные из памяти передаются по ссылке? З.Ы. Слушаю собес, думаю чет както сложноваты вопросы, я большую часть знаю но некоторые прям заставляют задуматься, тяжеловато для собеса на Джуна.. и тут я вижу что я оказывается на90% вопросов собеса Синьера знаю ответы XD
так вопросы в большинчтые одинаковы, отличие джуна от сеньора в глубине ответа либо заучивается, для cpu bound юзайте multiprocessing, а для io - asyncio/threading, либо рассказывается а почему, почему дороги контекст свичи в тредах и выгоднее запустить один тред , который будет из event loop таски для выполнения брать(механизм , что asyncio реализует) также для сеньора архитектурные вопросы задают, как задизайнить систему, а почему ты выбираешь эту бд, а не ту и тд
@@kafychannel а , ясно.
Привет, у меня такой вопрос, коммерческого опыта нет, знаю C, люблю Computer Science. Хочу в backend, выбираю между Python, Java, C#, Golang что посоветуете, чтобы легче было устроиться на работу, слышал, что Python-программистов уровня Junior слишком много и труднее будет устроиться?
Привет, я к сожалению не специалист в этой теме. Скорее всего да, много джунов на питоне, т.к. язык простой для входа в IT. Но лучше посмотреть статистику) Если есть знания, то я бы посоветовал смотреть в сторону GO. Он щас активно развивается, и будут открываться новые вакансии. Плюс он достаточно новый, а значит у всех небольшой опыт работы с ним, и меньше конкуренция)
@@python_interview спасибо большое за ответ
судя по вопросм на собесе, можешь сразу идти на пайтон синьора
на 4 минуте подумал, что тут собеседование по 1С проходят)
На 3 собесах на джуна меня спрашивали то же самое
Люди просто ищут мидла на зп джуна
Извените, Я бы хотел узнать ваше мнение. Как вы относитесь к накрутки опыта в разработке? Если другие варианты? У меня сейчас 2 резюме и единственное, что в них различается, это количество опыта, но на одном 2 отлика (о опыта), а на другом 26 (1.6 опыта).
Зависит от ситуации. Если у тебя год опыта, но знаний на 3 года, то не будет ничего плохого, если ты эти 2 года накрутишь, чтобы пройти отбор в лице HR. Если ты знаешь больше своего опыта, то работодатель не расстроится) Другое дело, если знаний на 1 год, а пишешь, что опыт 5 лет. Тогда тут тебя раскроют на собеседовании, и получится, что зря потратил время интервьювера.
@@python_interview спасибо за ответ. Я не хочу накручивать более 2 лет, это не очень:) Я просто хочу сделать своё резюме, где 1.6 - основным и подаваться по нему. Не очень кайфово, когда проходишь интвью во 'фейку', а по реальному тупо не зовут. Как вы считаете это можно сделать?) Извените за обилие текса. Спасибо!
@@quansumonner отчаянные времена требуют отчаянных мер) не вижу в этом чего-то криминального, но и не мне судить
@@python_interview Cпасибо, мне действильно было это интересно, Последний вопрос, вы бы так сделали?
@@quansumonner ну я несколько месяцев прибавлял как-то к опыту, чтобы солиднее выглядело)
Зачем адекватному разработчику знать, что будет, если применить булевые операции к данным небулевых типов? Адекватный программист такой код сам не напишет, и другому такое запушить в продакшн не даст
Предлагаю такой подход к первой задаче (сделал более адванст версию) У нас есть фабрика, которая может сделать декоратор под разные лимиты. def limit_function_fabric(limit): def limit_function(func): times = [] def wrapper(): nonlocal times if len(times)>=limit: # Clear extra items (no need store more than limit) times = times[-limit:] if time.time()-times[-limit] < 1: print('Skip function') return func() times.append(time.time()) return wrapper return limit_function @limit_function_fabric(4) def func(): print('Executed') func() func() func() func() func() func() time.sleep(2) func() func() func() func()
def dec_f(func: Callable) -> Callable: count = 0 last_call = time.time() def inner_func(*args, **kwargs): nonlocal count nonlocal last_call if time.time() - last_call < 3 and count >= 3: print(f'Вызов функции пропущен, {func.__name__}') return func(*args, **kwargs) count = count + 1 if count < 3 else 1 last_call = time.time() return inner_func
Очень улыбнул момент, когда после вопроса о корутинах, тасках и футурах, перешли к Джанго) почему так-то вообще? Как это связано
это постирония)
Музыка на фоне совершенно лишняя
Назовите админские команды - это шедевр
Вопросы уровня мидл.