Пройди МОК-интервью с опытным разработчиком и получи готовую стратегию выхода на следующий грейд (1 на 1, без зрителей): https://clck.ru/3U6tsh
Наш сайт: https://clck.ru/3U6ttG
Интервьюер: Владимир Титов - ведущий разработчик в e-com
Таймкоды:
0:00 — Знакомство с интервьюером
0:19 — Знакомство с кандидатом
2:49 — Типы данных в Python | mutable vs immutable
3:52 — Сложность list.append()
4:33 — Тапл со списком внутри | хэшируемость, ключ словаря
5:27 — Метод _hash_ | ошибка у mutable типов, пользовательские классы
6:10 — Наследование от Object | _hash_ по умолчанию
6:28 — Метакласс в Python
6:53 — Сигнатура type() | имя, базовые классы, namespace
7:31 — Хэш-таблица | хэш-функция, коллизии, бакеты
9:09 — Открытая адресация в Python | статусы empty/occupied/deleted
10:03 — Разрешение коллизий | линейное, квадратичное, вторая хэш-функция
11:03 — Декораторы в Python | wrapper, синтаксический сахар @
12:01 — Применение декораторов
12:48 — Класс-декоратор | _init__, __call_
14:36 — Принципы ООП
15:34 — Method Resolution Order | порядок разрешения методов, _mro_
16:01 — Полиморфизм | единый интерфейс len(), разные типы
16:33 — Абстракция | ABC
17:17 — Инкапсуляция | одинарное/двойное подчёркивание, name mangling
18:20 — Итераторы vs генераторы | __iter__, __next__, yield
19:18 — StopIteration | когда next() исчерпан
19:55 — Методы генератора | yield from, send(), return, cancel
21:07 — Главное отличие | lazy evaluation, экономия памяти
21:21 — List comprehension | генераторное выражение в ()
22:01 — Асинхронность, многопоточность, мультипроцессинг
22:13 — I/O bound vs CPU bound операции
22:55 — Конкурентность vs параллельность | parallelism only with multiprocessing
23:42 — asyncio | event loop, корутины, Task
24:07 — GIL | потоки не могут быть параллельны
24:47 — Процесс vs поток | GIL, виртуальная память, стек вызовов
25:36 — Межпроцессное взаимодействие | Shared Memory, Queue, Pipe, BaseManager
27:14 — Локи и семафоры | Lock, RLock, Semaphore, Barrier
28:40 — RLock vs Lock | только захвативший поток может освободить
29:03 — Семафор | ограничение числа потоков/процессов
29:41 — Барьер | минимальное число потоков для продолжения
30:13 — Управление потоками | вытесняющая многозадачность, GIL, 5ms
31:04 — Атомарность байткода | x+=1 — не атомарная операция (4 инструкции)
31:31 — Атомарные операции | append, extend, добавление пары в dict
32:24 — Запуск нескольких корутин | asyncio.gather, return_exceptions
33:09 — Корутина vs Future vs Task | task работает в event loop
33:52 — Async vs многопоточность | корутина — лёгкий объект Python
34:14 — Зачем threading если есть asyncio | legacy-библиотеки без поддержки async
34:57 — Garbage Collector | управление памятью Python
35:07 — Устройство памяти | виртуальная память, арены, пулы, блоки
36:25 — Счётчик ссылок | reference counting, ref count = 0 → удаление
37:09 — Генерационный GC | три поколения, старые объекты проверяются реже
38:10 — Python 3.12+ | только два поколения (young/old)
38:21 — Поиск утечек памяти | gc.collect(), gc.get_stats(), tracemalloc
39:35 — HTTP библиотеки | aiohttp, httpx, IO Files
40:30 — Celery | очередь задач, отправка email, воркеры
42:09 — ACID | атомарность, консистентность, изоляция, надёжность
43:07 — Уровни изоляции транзакций | MVCC, снимки БД
43:52 — READ COMMITTED
44:07 — REPEATABLE READ
44:43 — Фантомное чтение | phantom read, строки исчезают между запросами
45:05 — Проблема N+1 в Django
45:47 — Оптимизация БД | EXPLAIN vs EXPLAIN ANALYZE | seq scan, index scan
46:44 — Индексы в PostgreSQL | B-tree, составной, частичный, GIN, GiST
47:44 — Индекс по выражению | Expression Index
48:18 — Когда не нужны индексы | write-heavy таблицы, маленькие таблицы
49:00 — SQL vs NoSQL | PostgreSQL, Redis, MongoDB, ClickHouse
51:19 — Связи в реляционных БД | one-to-many, one-to-one, many-to-many
52:41 — Views в PostgreSQL
53:20 — JOIN в SQL
54:36 — Нормализация и денормализация
55:13 — Брокеры сообщений | RabbitMQ vs Redis, гарантии доставки
56:01 — Продюсер-консюмер | архитектура очереди сообщений
57:38 — Фидбэк интервьюера
1:04:09 — Презентация Shortcat | менторская программа Python №1
1:11:51 — Советы по подаче на собеседовании
1:16:29 — Итоги стрима | благодарности
🎯 Цель этого стрима: показать, как выглядит реальное продвинутое собеседование.
🚀 Кому это будет полезно:
• Senior-разработчикам на Python, готовящимся к собеседованиям в FAANG, крупный IT или FinTech.
• Тимлидам, которые хотят понять, как проводить глубокий code review.
• Всем бэкендерам, кто хочет вывести свои навыки код-ревью и проектирования систем на новый уровень.
📈 После просмотра ты:
• Увидишь типичные ошибки даже опытных разработчиков.
• Поймешь, как мыслят инженеры уровня Head of Engineering.
• Получишь готовую структуру для анализа любого микросервиса.
• Узнаешь, какие non-technical skills критичны на высоком уровне.
#СобеседованиеPython #МокИнтервью #PythonMiddle #GIL #Декораторы #HashTable #AsyncIO #GarbageCollector #ACID #PostgreSQL #Shortcat