Файлы Блэкхэвн — SQL-детективы для аналитика

Дождь над портом, ночные смены, журналы архива. SQL не как скучный учебник, а как инструмент следователя.

«Файлы Блэкхэвн» — это серия из восьми интерактивных детективных историй, где каждое преступление расследуется через SQL-запросы к реальной базе данных архивов порта Блэкхэвн 1934 года. Вместо учебных задач «найдите топ-10 студентов» вы получаете живую задачу следователя: «кто работал на причале № 7 в ночь убийства?» — и сами строите JOIN журналов смен и сотрудников, чтобы получить ответ.

Чему учит игра

Глава 1 «Алый рассвет» проводит через 14 SQL-шагов нарастающей сложности — от базового SELECT FROM до CTE с оконной функцией RANK() OVER (PARTITION BY). Каждый шаг — это конкретный вопрос расследования. Вы не учите синтаксис абстрактно: вы видите, зачем нужен LEFT JOIN ... IS NULL (чтобы найти подозреваемых, у которых нет алиби), зачем GROUP BY (чтобы посчитать недостачу по логистам за квартал), зачем BETWEEN (чтобы выделить все пропуска через ворота в окно ±15 минут от убийства).

Это ровно тот навык, который ежедневно использует продуктовый аналитик: перевод бизнес-вопроса в SQL. С той лишь разницей, что вместо «retention пользователей за Q4» — «маршруты подозреваемых через ворота порта». Структура мышления одна.

Главы (8)

Начать первое дело →

Темы SQL по главам

№001 · SELECT · WHERE · JOIN · LEFT JOIN · GROUP BY · IS NULL · BETWEEN · COUNT/MIN/MAX №002 · GROUP BY, COUNT, HAVING №003 · Subqueries, IN/NOT IN №004 · JOIN — все типы №005 · Window: LAG, LEAD №006 · RANK, ROW_NUMBER, partitions №007 · CTE, recursive CTE №008 · Всё вместе

Часто задаваемые вопросы

Что такое нуар-детектив на SQL?

«Файлы Блэкхэвн» — это серия SQL-задач, оформленных как расследование преступлений в портовом городе 1934 года. Вы получаете базу данных архивов (смены, инциденты, улики, журналы) и распутываете дело через SQL-запросы. Каждое дело — отдельная глава с уникальной БД, своим сюжетом и набором подозреваемых.

Это бесплатно?

Да, полностью бесплатно. Все 8 глав без paywall и без обязательной регистрации — это лид-магнит для тех, кто хочет учить SQL через сторителлинг, а не через сухие учебные задачи. Регистрация только для синхронизации прогресса между устройствами.

Какой SQL я изучу?

Глава 1 проводит через SELECT, WHERE, JOIN, LEFT JOIN, GROUP BY, IS NULL, BETWEEN, COUNT/MIN/MAX, CTE и оконные функции (RANK OVER PARTITION BY). Каждая тема привязана к шагу расследования — вы видите зачем нужна конкретная конструкция, а не учите её в абстракции. Главы 2-8 покрывают подзапросы, рекурсивные CTE, LAG/LEAD, ранжирование, FULL JOIN.

Сколько глав готово?

Глава 1 «Алый рассвет» — играбельна полностью (14 SQL-шагов, 6 подозреваемых, 11 таблиц БД, 4 эндинга в зависимости от вашего обвинения). Главы 2-8 — в разработке, в каталоге показаны как анонсы с темами.

Сколько времени занимает прохождение?

Глава 1 — 30-60 минут в зависимости от уровня SQL. Junior может занять до 90 минут с подсказками — это нормально. Финальное обвинение требует не только синтаксиса, но и аналитического мышления: данные могут вводить в заблуждение, очевидное решение бывает ловушкой.

Где сохраняется прогресс?

Прогресс автоматически сохраняется в браузере (localStorage), а у зарегистрированных пользователей дополнительно синхронизируется с сервером. Можно вернуться к расследованию через неделю — все открытые улики, решённые шаги и история запросов останутся на месте.

Зачем учить SQL через игру?

Аналитик постоянно переводит бизнес-вопрос в SQL: «кто купил товар А, но не товар Б за последний месяц». В игре вы тренируете именно это: следователь задаёт вопрос («кто работал в ту ночь?»), а вы превращаете его в JOIN с фильтром по дате. Это намного ближе к реальной работе, чем абстрактные задачи на «найдите топ-10 студентов с самой высокой оценкой».

Подходит ли для полного новичка?

Да. Первые 4 шага главы 1 — это базовый SELECT, ORDER BY, простой JOIN и WHERE с двумя условиями. У каждого шага есть три уровня подсказок: лёгкая (направление), средняя (структура запроса) и сильная (почти готовое решение). Можно пройти главу даже если ваш предыдущий SQL-опыт — пара уроков на YouTube.

Для кого эта игра

Для начинающих аналитиков, которые открывали учебник по SQL и закрывали через 20 минут — потому что «JOIN это про две таблицы» это правда, но это не объясняет зачем оно нужно. В игре вы сначала видите вопрос («кто работал ночью?»), потом понимаете, что одна таблица не отвечает, потом сами догадываетесь, что нужен JOIN. Это работает.

Для middle-аналитиков, которые хотят прокачать продуктовое мышление: данные не нейтральны. В деле № 1 очевидный подозреваемый (Хэнк Дойл — публично угрожал жертве, его кисет найден у тела) — это подстава. Чтобы найти настоящего убийцу, нужно сопоставить пять разных журналов и заметить, что в одном из них баланс «вход/выход» через ворота не сходится. Этот навык переносится на работу: cherry-picked метрики могут лгать, корреляция в одном дашборде маскирует выбросы в другом.

Для тех, кто готовится к собеседованию: финальное обвинение в каждой главе — это упражнение на структурированный ответ. Вам нужно не просто назвать имя, но и обосновать его через факты, которые вы извлекли SQL-запросами. Точно так же вы будете защищать выводы своего анализа перед продакт-менеджером или техническим директором.

Что внутри главы 1 «Алый рассвет»

Сеттинг: ночь с 14 на 15 октября 1934 года, порт Блэкхэвн, причал № 7. Бригадир Эдвард Кейн найден в воде с разбитой головой и запиской «86/84» в кармане.

База данных: 11 таблиц с реальными взаимосвязями — workers (сотрудники), shifts (журнал смен), incidents (инциденты), testimonies (показания свидетелей), evidence (улики у тела), cargo_log (журнал грузов), forensics (криминалистика), gate_log (пропуска через ворота), keys_log (журнал ключей) и другие.

Подозреваемые: 6 человек с детальными досье — мотивы, алиби, противоречия. У каждого досье открывается по мере прохождения SQL-шагов. К финалу нужно уметь обоснованно исключить пятерых.

4 эндинга: правильный (вы нашли убийцу), очевидно неправильный (взяли подставленного Хэнка), просто неправильный (любой другой невиновный) и саркастичный (если обвинить детектива самого).

SQL-конструкции по шагам: SELECT FROM, ORDER BY, JOIN, WHERE A AND B, JOIN+date filter, LEFT JOIN+IS NULL, GROUP BY+COUNT/MIN/MAX, BETWEEN, multi-table JOIN, JOIN cargo_log, JOIN forensics, CTE+RANK() OVER PARTITION BY.

Связанные разделы

Игра разработана командой Заскуль Питона. Сюжет адаптирован из дизайн-документа «Blackhaven Files». Полностью бесплатно, без paywall и без обязательной регистрации.