Сложность алгоритмов и Big-O нотация
Что такое обозначение $Big(O)$ [big O] и почему оно важно в анализе алгоритмов?
Как сложность по времени и памяти влияет на производительность бэкенд-приложений?
Подсказки:
Обозначение Big O описыв ...
Базовые структуры данных и их применение
Назовите распространённые структуры данных и объяснить их практическое применение в разработке программного обеспечения.
Подсказки:
Рассмотрите структуры, используемые для хранения коллекций элемент ...
Очереди и стеки
Можете объяснить структуры стек (stack) и очередь (queue) и где они используются?
Где каждая структура может быть наиболее подходящим выбором?
Подсказки:
Подумайте о природе стека LIFO (Last In, Fi ...
Основы индексов баз данных, их влияние на производительность запросов
Объясните что такое "индекс" в базах данных и их роль для приложений.
Как индексы баз данных помогают улучшить производительность запросов?
Подсказки:
Подумайте о том, как база данных искала бы зап ...
Сбалансированные деревья и хеш-таблицы, их области применения
Что такое сбалансированные деревья и почему они важны для производительности?
Когда следует выбирать сбалансированные деревья вместо хеш-таблиц в приложениях бэкенда?
Подсказки:
Подуймайте об опера ...
Внутреннее устройство хеш-таблицы
Как устроена хэш-таблица как структура? Как она работает?
Доп вопросы:
Приведите сценарий, в котором хэш-таблица была бы оптимальным выбором структуры данных.
Можете объяснить способы обработки кол ...
Массивы и связанные списки: что и когда лучше, почему
Какие основные различия между массивами (array) и связными списками (linked list)?
Дополнительные вопросы:
В чем разница между ними в отношении использования памяти и доступа к их элементам?
В каки ...
Бинарный поиск и его применения
Можете объяснить что такое "бинарный поиск" и рассказать где он может применяться на практике?
Давайте обсудим, как этот алгоритм может оптимизировать операции бэкенда, уменьшая пространство поиска.
...
Базовые структуры данных и выбор между ними
Можете описать свой опыт работы с встроенными структурами данных Python?
В каких сценариях вы бы выбрали списки, словари, множества или кортежи?
Подсказки:
Cловари для быстрого поиска, списки для у ...
Списки, кортежи и словари: ключевые различия и варианты использования
Какие основные различия между списками, кортежами и словарями в Python?
Как вы бы определили, какой из них использовать в конкретном сценарии?
Подсказки:
Учитывайте изменяемость этих типов данных.
...
Swallow копия vs Deep копия
В чем разница между shallow copy и deep copy в Python?
Когда следует использовать каждый подход для копирования структур данных?
Подсказки:
Подумайте о том, как copy.copy() и copy.deepcopy() ведут ...
Реализация быстрой сортировки (Quick Sort)
Реализовать алгоритм Быстрой сортировки (Quick Sort), объяснив каждый шаг.
Потом давайте проанализируем его временную и пространственную сложность в лучших, худших и средних случаях.
Мы можем обсуди ...
Абстрактные базовые классы для энфорсинга использования интерфейсов
Что такое абстрактные базовые классы (abstract base classes, ABC) в Python и какую проблему они решают? Объясните, как ABC можно использовать для обеспечения согласованных интерфейсов по всей кодовой ...
Распределенная обработка задач с гарантией "точно один раз" и S3
Необходимо спроектировать распределенную систему обработки задач (данных) на Python, где задачи хранятся в S3.
Можно использовать только S3, без развертывания или использования внешних сервисов. Вы м ...
Внутреннее устройство словарей Python
Объясните, как работает словарь Python изнутри. Какие стратегии он использует для обработки коллизий хешей?
Подсказки:
Подумайте, как словари хранят пары ключ-значение внутри.
Подумайте о временной ...
Стратегии обхода графа BFS и DFS: где используются, сложность и компромиссы
Объясните различия между алгоритмами поиска в ширину (Breadth-First Search) и поиска в глубину (Depth-First Search). В каких реальных приложениях вы бы выбрали один из них?
Подсказки:
Рассмотрите, к ...
Статический контроль типов и ошибки компилятора
Как TypeScript помогает предотвратить ошибки во время выполнения в JavaScript-приложениях? Объясните две конкретные особенности TypeScript, которые способствуют лучшей поддерживаемости кода в крупных ...
Продвинутая работа с типами в TypeScript
Создайте обобщённый тип, который сопоставляет свойства объекта их nullable-версиям. Как бы вы реализовали утилитный тип, который делает все вложенные свойства объекта необязательными, сохраняя при это ...
ООП в TypeScript: инкапсуляция классов, наследование и реализация модификаторов доступа
Для чего используются классы в TypeScript? Как они поддерживают принципы объектно-ориентированного программирования?
Подсказки:
Какова роль классов в инкапсуляции данных и поведения.
Подумайте о т ...
Статический контроль типов и вывода типов в динамическом языке
В чем основное различие между TypeScript и JavaScript относительно безопасности типов и как TypeScript это достигает?
Подсказки:
Знакомы ли вы с концепцией статической типизации и чем она отличается ...