Чему вы научитесь
- Читать EXPLAIN (ANALYZE, BUFFERS) и называть причину, по которой запрос по таблице в пять миллионов строк идёт четыре секунды вместо сорока миллисекунд
- Подбирать индекс под конкретный запрос, объяснять, почему существующий не берётся, и считать его цену на записи
- Защищать запись от гонок: уникальное ограничение, ограничение исключения, ON CONFLICT, блокировка строки, версия строки, идемпотентный повтор
- Говорить, что именно видит транзакция на каждом уровне изоляции, и узнавать deadlock — потому что устроил его своими руками
- Проектировать схему под запросы, которые к ней пойдут: нормальные формы, осознанная денормализация, типы PostgreSQL, jsonb, массивы и диапазоны
- Писать SQL любой рабочей сложности — от JOIN и агрегатов до оконных функций, рекурсивных CTE и LATERAL
- Переносить схему на живой базе, не заблокировав сервис: миграция в несколько шагов, двойная запись, переливка партиями, индекс без блокировки
- Находить и устранять N+1 — по логу запросов, на любом ORM и любом языке
- Строить поиск по описаниям: полнотекстовый на tsvector и семантический на pgvector — и называть границы обоих
- Выносить файлы сервиса в объектное хранилище: спроектировать ключи и доступ, отдавать по временным ссылкам, держать базу согласованной с бакетом
- Применять Redis по назначению: структура данных под задачу, TTL и вытеснение, инвалидация — и запрет делать кэш источником истины
- Выбирать хранилище с числами в руках и выдерживать встречные вопросы — на ревью и на собеседовании
О курсе
Для кого этот курс
Начальные требования
Что нужно знать
- Программировать на каком-либо языке: функции, типы, коллекции, циклы, условия. Какой именно — неважно.
- Работать в терминале на базовом уровне: запустить команду, прочитать вывод.
Что нужно на машине
- Docker Desktop или Docker Engine с плагином compose — ставится по ходу курса, перед первым стендом.
- Памяти виртуальной машине Docker — около 4 ГБ. Полный стенд к концу курса занимает меньше половины, и в шагах сказано, что останавливать, если памяти меньше.
Преподаватели курса
Как проходит обучение
Формат. Курс полностью текстовый: 17 модулей, 93 урока, 1159 шагов. Видео нет — есть текст, запросы, вывод команд, планы и разбор ошибок.
Проверка знаний. 446 шагов из 1159 — проверяемое задание: 77 SQL-задач и 369 вопросов с выбором, сопоставлением и порядком.
SQL решается прямо на платформе. Пишешь запрос, движок Stepik исполняет его на настоящих данных, ты сразу видишь результат — ставить для этого ничего не нужно. Одна честная деталь: тренажёр Stepik построен на MySQL 8, а курс про PostgreSQL. Поэтому задачи написаны в пересечении диалектов, и там, где диалекты расходятся, курс говорит об этом в том же шаге, где конструкция появляется. Переносимый SQL — рабочий навык, а не компромисс.
Квизы-диагностики. Дан план запроса, лог блокировок, схема или метрика — назови причину, а не определение. Каждый неверный вариант — типичная ошибка, и к нему написан разбор, почему так рассуждать не выходит.
Стенд на твоей машине — и это главное про формат. 192 шага-инструкции: сгенерировать пять миллионов строк, снять EXPLAIN, устроить deadlock, посмотреть вытеснение в Redis, переехать со схемой на живой базе. Автопроверить это платформа не может — серверов баз данных в её песочнице нет, и симулировать их на Python было бы нечестной формой. Поэтому вместо автопроверки: точные команды, дословно приведённый ожидаемый вывод, 61 блок «Проверь себя» и квизы на результат наблюдения.
Проектные шаги. Начиная с четвёртого модуля каждый заканчивается собственным проектом — 15 за курс, по условию и чек-листу «готово, когда»: что денормализовать, какие индексы нужны сервису, как защитить запись, как переехать со схемой незаметно, какое хранилище выбрать и чем за это платить.
Капстоун. Финал — спроектировать хранение под незнакомый сервис и защитить решение: разбор по ролям, индексы с обоснованием, план роста на десятикратном объёме и трёхминутная защита. Три варианта на выбор, включая «своё решение по своему проекту».
Сообщество. Проходить курс в одиночку не обязательно — у него есть «Гильдия вайба»: помощь, когда застрял, разбор чужих и своих решений по хранению, план, в котором оценка не сходится с фактом, поиск тиммейтов и вопросы с собеседований, на которые не нашлось ответа. Чем активнее участвуешь — тем больше берёшь от курса
Что вы получите
- Локальный стенд на Docker Compose, собранный по ходу курса: PostgreSQL 18 и pgvector, MinIO, Redis, MongoDB, Elasticsearch, ClickHouse, DuckDB — вместе с данными, запросами и экспериментами он остаётся у тебя
- Капстоун: решение по хранению для сервиса, разложенное по ролям, с числами, планом роста и защитой на три минуты — файл, который читается без тебя
- Пройденный руками стек из вакансий: SQL и PostgreSQL, индексы и планы, транзакции и блокировки, объектное хранилище, Redis, MongoDB, Elasticsearch, ClickHouse
- Ответы на вопросы секции по данным — от механизма, а не от заученной формулировки: в 27 шагах отдельно разобрано, почему эту тему спрашивают и что на самом деле засчитывают
- 446 проверяемых заданий и 15 проектных шагов с чек-листами самопроверки
- Умение объяснить своё решение по данным: что оптимизируем, чем платим и каким требованием это оправдано
- Сертификат Stepik по итогам курса
- Доступ к сообществу «Гильдия вайба» в Telegram и Discord