MOCK-СОБЕСЕДОВАНИЕ с Сергеем | Знание Python, задачи на код, алгоритмические задачи
Полное мок-собеседование по Python и алгоритмическим задачам: теория языка, написание декоратора, разбор задач и итоговый фидбэк кандидату. В конце Сергей рассказывает о прохождении отбора в «Школу 21».
- Опубликовано на YouTube:
- Просмотры на YouTube: 3,1 тыс.
- Лайки на YouTube: 97
Таймлайн
Коротко о видео
Это мок-собеседование по Python и алгоритмам с Сергеем, который начал изучать программирование около полутора лет назад после работы в строительной сфере. В теоретической части разбирают типы данных, устройство списков, словарей и множеств, изменяемые аргументы по умолчанию и декораторы; затем Сергей с подсказками реализует декоратор повторных попыток. В алгоритмической части решают задачи на вывод «змейки», поиск числа по произведениям, оценку и преобразование квадратичного алгоритма, а также вызываемый объект-сумматор; в финале ведущий даёт развёрнутый фидбэк и обсуждает поступление Сергея в «Школу 21».
Затронутые темы
Что взять на заметку
- Для ответа о базовых типах Python полезно связывать изменяемость с применением: `tuple` и `frozenset` неизменяемы, `list` и `set` изменяемы; ключ словаря должен быть хешируемым, поэтому список ключом быть не может.
- Python-список обсуждается как динамический массив: вставка в начало или середину требует сдвига элементов и в среднем занимает O(n), а добавление в конец имеет амортизированную O(1) стоимость благодаря редкому перераспределению памяти.
- У `dict` и `set` в основе хеш-таблицы, поэтому поиск элемента или значения по ключу в среднем выполняется за O(1); кортеж может быть ключом только если все его элементы хешируемы.
- Изменяемый объект, например пустой список, не следует задавать аргументом функции по умолчанию: такой объект создаётся один раз при определении функции и сохраняет изменения между вызовами.
- Для декоратора повторных попыток нужны внешняя функция-декоратор, обёртка с `*args` и `**kwargs`, ограниченный цикл `for` на известное число попыток, возврат результата при успехе и осмысленное исключение после исчерпания попыток.
- При решении задач участники используют тестовые данные, печать промежуточных значений, сортировку и поиск закономерностей; ведущий отдельно отмечает это как сильную сторону подхода Сергея.
- Для входов масштаба до 10^12 полный перебор непригоден: задачу о количестве чисел с заданной суммой цифр нужно решать другим, не переборным способом.