Вернуться в видеотеку

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

Полное мок-собеседование по Python и алгоритмическим задачам: теория языка, написание декоратора, разбор задач и итоговый фидбэк кандидату. В конце Сергей рассказывает о прохождении отбора в «Школу 21».

Источник: Поколение Python

Открыть на YouTube

Таймлайн

Коротко о видео

Это мок-собеседование по Python и алгоритмам с Сергеем, который начал изучать программирование около полутора лет назад после работы в строительной сфере. В теоретической части разбирают типы данных, устройство списков, словарей и множеств, изменяемые аргументы по умолчанию и декораторы; затем Сергей с подсказками реализует декоратор повторных попыток. В алгоритмической части решают задачи на вывод «змейки», поиск числа по произведениям, оценку и преобразование квадратичного алгоритма, а также вызываемый объект-сумматор; в финале ведущий даёт развёрнутый фидбэк и обсуждает поступление Сергея в «Школу 21».

Затронутые темы

Что взять на заметку

  • Для ответа о базовых типах Python полезно связывать изменяемость с применением: `tuple` и `frozenset` неизменяемы, `list` и `set` изменяемы; ключ словаря должен быть хешируемым, поэтому список ключом быть не может.
  • Python-список обсуждается как динамический массив: вставка в начало или середину требует сдвига элементов и в среднем занимает O(n), а добавление в конец имеет амортизированную O(1) стоимость благодаря редкому перераспределению памяти.
  • У `dict` и `set` в основе хеш-таблицы, поэтому поиск элемента или значения по ключу в среднем выполняется за O(1); кортеж может быть ключом только если все его элементы хешируемы.
  • Изменяемый объект, например пустой список, не следует задавать аргументом функции по умолчанию: такой объект создаётся один раз при определении функции и сохраняет изменения между вызовами.
  • Для декоратора повторных попыток нужны внешняя функция-декоратор, обёртка с `*args` и `**kwargs`, ограниченный цикл `for` на известное число попыток, возврат результата при успехе и осмысленное исключение после исчерпания попыток.
  • При решении задач участники используют тестовые данные, печать промежуточных значений, сортировку и поиск закономерностей; ведущий отдельно отмечает это как сильную сторону подхода Сергея.
  • Для входов масштаба до 10^12 полный перебор непригоден: задачу о количестве чисел с заданной суммой цифр нужно решать другим, не переборным способом.

Рекомендуем посмотреть