Вернуться в видеотекуКоротко о видео
Мок-собеседование на позицию Python Junior Developer: участник отвечает на вопросы о типах данных, коллекциях, исключениях, аргументах, хеш-таблицах, range и декораторах. Затем он решает две практические задачи на Python и алгоритмическую задачу подсчёта нулей в отсортированной бинарной матрице. В финале интервьюер субъективно положительно оценивает знания кандидата и рекомендует усилить алгоритмическую подготовку.
Затронутые темы
Что взять на заметку
- Для денежных расчётов обсуждается Decimal, поскольку float подвержен погрешностям двоичного представления; точность Decimal можно настраивать через контекст.
- Кортеж подходит для неизменяемых данных и может быть ключом словаря или элементом множества, если все его элементы хешируемы; для именованных полей полезен namedtuple.
- Срез за границами последовательности возвращает пустую последовательность, а обращение по отсутствующему индексу вызывает IndexError; синтаксис среза передаёт объект slice.
- Оператор += для изменяемого списка внутри кортежа успевает изменить список, после чего попытка переприсвоения элемента кортежа приводит к TypeError.
- Для подсчётов и значений по умолчанию лучше применять Counter и defaultdict, а не вручную воспроизводить их через обычный dict.
- Изменяемые объекты не стоит использовать как значения аргументов по умолчанию: значение создаётся при объявлении функции; типичный безопасный вариант — None с созданием списка внутри функции.
- Для сборки строки из последовательности следует использовать ''.join(map(str, range(...))), а не многократно конкатенировать строки через +.
- В задаче о бинарной матрице с сортировкой по строкам и столбцам можно двигаться от правого верхнего угла влево или вниз и посчитать нули за O(n) для квадратной матрицы.