October 23, 2020

Как успешно пройти техническое интервью на позицию Python Developer

Готовимся к техническому собеседованию Junior Python-разработчика. К любому собеседованию нужно готовиться (да, да, к собеседованию с рекрутером тоже), поэтому держите свод вопросов, по которым Вы сможете подготовиться к собеседованию. 

Для достижения большей эффективности - попросите друга прособеседовать Вас по ним, если это Ваше первое собеседование и есть волнение)

Строки

Какие виды строк бывают в питоне?
Можно ли изменить отдельный символ внутри строки?
Как соединить список строк в одну? Как разбить строку на список строк?
Как кодировать и декодировать строки?
Прокомментировать выражение 'ABC' == u'ABC'
Списки, кортежи, словари, множества
Чем список отличается от кортежа?
Как сделать список уникальным (без повторяющихся элементов)?
Есть кортеж из трех элементов. Назначить переменным a, b, c его значения.
Как отсортировать список словарей по определенному полю?
Что может являться ключом словаря? Что не может? Почему?
Есть два списка – ключи и значения. Как составить из них словарь?
Где быстрее поиск элемента -— в списке или множестве?

Функции

Что такое args, *kwargs, в каких случаях они требуются?
Почему def foo(bar=[]): плохо? Приведите пример плохого случая. Как исправить?
Можно ли передавать функцию в качестве аргумента другой функции?
Можно ли объявлять функцию внутри другой функции? Где она будет видна?
Что такое лямбды? Каковы их особенности?
Допустимы ли следующие выражения?

Декораторы

Что такое декораторы? Зачем нужны?
Что может быть декоратором? К чему может быть применен декоратор?
Что будет, если декоратор не возвращает ничего?
В чем отличие @foobar от @foobar()?
Что такое фабрика декораторов?
Зачем нужен @wraps?

Итерация и генераторы

В чем отличие [x for x in y] от (x for x in y)?
Что особенного в генераторе?
Как объявить генератор?
Как получить из генератора список?
Можно ли извлечь элемент генератора по индексу?
Что возвращает итерация по словарю?
Как итерировать словарь по парам ключ-значение?

Классы, объекты

Как получить список атрибутов объекта?
Что такое магические методы, для чего нужны?
Как в классе сослаться на родительский класс?
Возможно ли множественное наследование? Что такое MRO?
Что такое миксины?
Что такое контекстный менеджер? Как написать свой?
Прокомментировать выражение object() == object()
Что такое _slots_? Плюсы, минусы.
В чем смысл параметров_vvalue, _lue

Многопоточность

Как в питоне реализуется многопоточность? Какие модули?
Что такое GIL? Как работает? Какие проблемы?
В чем отличие тредов от мультипроцессинга?
Какие задачи хорошо параллелятся, какие плохо?
Нужно посчитать 100 уравнений. Делать это в тредах или нет?
Треды в Питоне — это нативные треды или нет?
Что такое гринлеты? Общее понятие. Примеры реализаций.

Джанго

Что такое Middleware, для чего, как реализуется?
Назовите основные мидлвари? Зачем они нужны?
Опишите алгоритм работы CSRF middleware
Что такое сигналы? Зачем нужны? Назовите основные?

  • Как определить свои фильтры для шаблонной системы?
  • Что такое ORM? Как в Джанго организовать связь между моделями?

Как реализуется связь m2m на уровне базы данных?
Как разворачивали веб-приложения в продакшене?
Чем лучше отправлять форму — GET или POST?
Что такое REST?
Что такое XSS? Примеры? Как защитить приложение?

Тесты

  • Какие тулзы для тестов?
  • Как тестировать запросы в сеть, базу?

Веб-разработка

Что такое CGI? Плюсы, минусы?
Что такое CSRF?
Как защитить куки от воровства и от подделки?

HTTP

Как устроен протокол HTTP?
Как клиенту понять, удался запрос или нет?
Что нужно отправить браузеру, чтобы перенаправить на другую страницу?
Как управлять кешированием в HTTP?
Как кэшируются файлы на уровне протокола?

СУБД

Что делает оператор JOIN, какие виды бывают?
Что делает оператор HAVING, примеры?
В каких случаях вы бы предпочли нереляционную БД?
Что такое SQL-инъекции, какие меры против?
Что такое функциональный индекс?
Что такое транзакиця, ее свойства?
Что такое область видимости транзакции?

Джаваскрипт

Отличие == от ===?
Что такое замыкания, примеры?
Как реализовано ООП, особенности?
JSONP - в чем идея, как реализуется
На клиенте случилась ошибка, как известить сервер?
В чем разница function foo() {...} и var foo = function() {...}

Алгоритмы, структуры

Что такое рекурсия? Какие минусы, плюсы?
Что такое хвостовая рекурсия?
Опишите быструю сортировку. Какова ее сложность?