SQL Academy — тренажёр по написанию SQL-запросов, которым приятно пользоваться

Проект появился из-за отсутствия удобного сервиса для совершенствования навыков составления SQL-запросов и нацеливался восполнить данный вакуум. В этой статье я хочу поделиться историей его развития — от зарождения идеи до будущих планов.

Идея

Первые мысли о создании данного сервиса появились на студенческой скамье, с курса по SQL — обязательного элемента всех образовательных программ, хоть как-то связанных с информационными технологиями.

На нашей кафедре для практики SQL-запросов использовалась кривоватая реализация на Delphi, сделанная еще в эпоху динозавров. Она откровенно выглядела устаревшей и с переменным успехом проверяла запросы. Поиск хороших альтернатив не увенчался успехом.

Вот что тогда я нашел из более-менее подходящего.

Абсолютный лидер по посещаемости среди SQL-тренажеров. Имеет большую базу заданий и десятилетнюю историю. Но качество используемых баз данных, вырвиглазный интерфейс и море рекламы вынуждают от него отказаться.

Пошаговый интерактивный учебник. Для самых-самых начинающих, один из лучших, которые я видел. Но для ребят посильнее хочется видеть задачи, более приближенные к реальным и не привязанные к конкретной теме. А такого сервис предоставить, к сожалению, не может.

К слову, есть очень похожий проект от русских ребят — learnDB. К моменту возникновения идеи он не был виден на горизонте. Что, наверное, хорошо, иначе бы я не стал развивать идею дальше. Но все же это другой сегмент, сегмент пошаговых инструкций для знакомства с SQL. Отточить навык составления запросов на такого рода ресурсе невозможно.

Крупная платформа для практики и изучения языков программирования, решения алгоритмических задач. Есть блок, посвященный SQL. У них прекрасный тренажер с технической точки зрения. Но какая-то разрозненная база заданий, мне совсем не понравилась.

Итого, перебрав конкурентов и не найдя чего-либо сносного, закатал рукава и сел разрабатывать свой взгляд на данный продукт.

Первый прототип

Запуск первой версии состоялся 24 июля 2019 года.

Тогда сайт представлял собой главную страницу в виде корявой заглушки (дизайнеров в команде никогда не было). И, пожалуй, самого главного элемента — онлайн-тренажера.

Было мало вопросов, только две самые простые базы данных, но уже тогда тренажер был лучше большинства решений: в нем были внятные задания, удобный текстовый редактор с автодополнением и работой с несколькими вкладками.

Первая запущенная версия тренажера
Первая запущенная версия тренажера

С запуском встала задача привлечения первой аудитории. Получить ее я планировал путем добавления статей по SQL в учебник.

P. S. Статья ведется от первого лица, но за проектом стою не только я. За разработку, помимо меня, отвечает еще один разработчик, а за идеи для фич, наполнение материала и подметки технических ошибок — десятки других лиц. Всем огромное спасибо!

Развитие и рост аудитории

Статьи росли, добавлялись новые задания, но аудитории не было. А без аудитории кажется, что ты в пустую тратишь время и силы. Тогда, пытаясь рассказать людям о сервисе, я нашел возможность опубликовать статью в proglib.io, у них огромная аудитория начинающих разработчиков или тех, кто хочет им стать.

Кроме того, у них есть возможность написать статью, и после модерации она окажется доступной на сайте, в пабликах социальных сетей и будет перепечатана другими изданиями.

И это был успех!

За пару недель число ежедневных посетителей увеличилось с 15–20 до 100. Когда появилась аудитория, проект начал активный рост.

За октябрь — ноябрь 2019 года:

  • Появляется система профилей.
  • Появляется рейтинговая система для создания соревновательного эффекта.
  • Значительно расширяется количество учебного материала.
  • Происходит редизайн в первую очередь лендинга.
Новый вид лендинга, который до сих пор актуален
Страница профиля
Рейтинговая система

За два месяца на сервисе регистрируются более 450 пользователей, хотя большая часть функциональности доступна без регистрации. Со средним показателем аудитории в 150 человек в день заканчивается 2019 год.

Попытки коммерциализации

В самом начале проекта не было мыслей о том, чтобы на нем заработать. Хотелось просто сделать хороший продукт для тех, кому нужно отточить свои навыки в SQL. Но по мере развития, когда я все больше уделял внимание проекту, стали возникать мысли о дальнейшей монетизации.

Первая попытка

Когда сервисом пользовались порядка 100 человек в день и уже был разработан профиль и система рейтинга, возникла идея в выдаче сертификатов для тех, кто смог решить все или почти все задания с тренажера. Ну как возникла: sql-ex же выдает, чем мы хуже?

Понятно, что этот сертификат ничего не значит и никак не подтверждает навыки сдающего, но для самых начинающих аналитиков и разработчиков это возможность хоть что-то добавить в свое резюме. Это может послужить некоей наградой для самого себя, отметкой, что ты смог прорешать все задания.

Пример выдаваемого сертификата

За получение сертификата была назначена символичная сумма — 249 рублей. Но за пять месяцев его приобрели всего шесть раз.

Вторая попытка

Почему бы не попробовать поставить рекламные баннеры? Сейчас те, кто хоть немного разбирается в доходах на рекламных баннерах, должны ухмыльнуться. Поймите меня правильно: для меня это был первый опыт размещения рекламы. Реклама провисела месяц, вот статистика по доходам.

За март доход составил 350 рублей

Статистика по посещаемости за данный период

Посещаемость за март 2020 года

После месяца размещения рекламы я ее прикрыл. Толку от нее нет, только портит впечатления.

Третья попытка

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

Ответов не было в публичном доступе. Но была большая доля пользователей, желающих получить ответы к заданиям. Некоторые спрашивали в личных сообщениях о возможности покупки ответов.

Так зародилась идея о создании премиум-аккаунтов, предоставляющих дополнительные возможности, в том числе доступ к решениям. Кроме того, премиумы получат сертификат об окончании, а также будут выделяться специальным образом в знак благодарности материальной поддержки проекта.

Как выглядят премиумы

Премиум-аккаунты появились относительно недавно — 22 мая, поэтому сложно говорить об эффективности данного способа монетизации. Но что уже точно понятно — это пока самый эффективный из ранее опробованных методов.

Цена такого премиум-аккаунта — 600 рублей.

Вот некоторая статистика: за 18 дней — около 6000 рублей

Кажется, выглядит неплохо, но такой рост значительно замедляется. Пока нет объяснений, с чем это связано и насколько эффективным окажется третья попытка. Но мы продолжим развивать идею с премиум-аккаунтами.

Заключение

Спасибо большое, что дочитали! Я рад тому, что есть сейчас, но пока у нас по-прежнему очень маленькая аудитория (разница с тем же sql-ex.ru раз в десять).

SQL Academy определено есть куда расти, но мы должны создавать эту почву для роста. Проект однозначно ждет продолжение, поэтому я был бы рад, если бы вы поделились идеями для дальнейшего развития продукта. Для меня пока — будущее в создании на базе тренажера системы пользовательских тестов по SQL.

Update:
Продолжение истории развития сервиса

Эволюция SQL Academy. От SQL тренажера до онлайн-курса с сообществом

С момента написания прошлой статьи, где описывалось самое зарождение сервиса, прошло уже 3 года 🙀. Пришло время напомнить о нашем сервисе и поделиться, что мы осознали за это время.

0
84 комментария
Написать комментарий...
Alexey Laptev

Лучший тренажер - реальная потребность.

Базовый SQL - учится за вечер, а дальше идешь решаешь задачи, для которых учил.

Смысл тренажера - непонятен.

Ответить
Развернуть ветку
Николай Ладанов
Автор

Написать SELECT * FROM X или научиться просто вставлять новую запись в БД, действительно, занимает немого времени. Но как показывают отзывы, обратная связь и мой опыт, чтобы разобраться с агрегацией, группировками, слиянием и преобразованием неких бизнес-требований вида "Какой(ие) кабинет(ы) пользуются самым больших спросом ?" в структурированный запрос требуется 1-3 недели в зависимости от способностей учащегося.

Ответить
Развернуть ветку
7 комментариев

Комментарий удален модератором

Развернуть ветку
10 комментариев
Михаил Алекперов

Полагаю, чтобы стартовать. Реальная потребность это хорошо, только как ты ее создашь? Pet project'ы?

Ответить
Развернуть ветку
8 комментариев
Ол Б

Тут проблема кроется в том что не всегда можно найти реальные задачи.

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Николай Ладанов
Автор

Спасибо!

Ответить
Развернуть ветку
3 комментария
Nickolai Vasiliev

А мужики в курсе?

Ответить
Развернуть ветку
Yes, Your Grace

Нормально посветили персональными данными :D

Ответить
Развернуть ветку
5 комментариев
Alexey P

Спасибо, однозначно попробую. Успехов в развитии. 

Ответить
Развернуть ветку
Андрей Никифоров

Мне это не надо, но могу подсказать, ищем клиентов там где они есть, а где они есть, правильно, там где изучают SQL, а где изучают SQL, правильно, в ВУЗах, выходим на преподавателей дисциплины и дальше раскручиваем как учебное пособие. Удачи. 

Ответить
Развернуть ветку
Prolis Labkk

Нет гарантии в виде договора, что после включения использования сервиса в учебный план он не исчезнет, не ограничит доступ или не изменит содержание. А договор тянет за собой серьезные обязательства в виде доступности сервиса, технической поддержки и объектов авторского права на учебные материалы. Обязательства тянут расходы, которые учебные заведения не станут компенсировать,  так как они не добавляют ценности их учебному процессу.

Ответить
Развернуть ветку
Николай Ладанов
Автор

Учебные организации - это большая аудитория, но не платежеспособная. Они не могут просто так выделить средства, а если выделят тут включаются обязательства, как верно подметил Prolis Labkk.
Пока видится перспективы в развитии создании пользовательских тестов для задач рекрутинга: преотбор на позиции начинающих разработчиков и аналитиков. Типо google form с конструктором с аналитиком, но под задачи проверки знания базового SQL.

Ответить
Развернуть ветку
1 комментарий
Ол Б

Молодцы! Желаю успехов и продвижения!

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Irina Mozharova

Николай. Рискую быть закиданной чем-нибудь, но все-таки выскажусь. 
Мне, как руководителю, совершенно неинтересен какой-то там заумный тренажер, чтобы меня челленджили, опять и снова учили думать и проч. Поверьте, я думаю, порой даже одна и за всех, и мозг мой перегружен. Еще на заре карьеры это все, пусть и в других формах, учила. Но забывается все. Сейчас мне нужно очень просто и конкретно. Обязательно сразу с доступами к ответам и очень четким, желательно интерактивным объяснением синтаксиса, прямо до знака в ответе. И с примерами данных, хотелось бы четкости. В sql-exe они чудовищно представлены. Что-то забыли указать, видимо, в уме у программиста или где-то, непонятно только где эти входные детали. И вообще порой ощущение, что кто-то очень-очень умный показывает, насколько. А нам не надо. Мы верим, что программисты умные. Уважаем очень. Но у нас задачи другие, поверьте. 
В общем, что предлагаю: сделать отдельный блок по основным базовым экономическим задачам, с очень простыми и четкими примерами. С вариантами ответов со сверх подробной расшифровкой.  И желательно, выпадающими списками какими-нибудь, чтобы я открыла и потренировалась.
Цену какую-нибудь реальную, для широкого круга аудитории, типа 1 тысяча за подписку. И чтобы дней за 5 основной круг стандартных задач.

Ответить
Развернуть ветку
Алексей Ермаков

Проработайте мобильную адаптацию вашего ресурса. И траффик минимум у за несколько месяцев.
Куча народа сидит в сети через мобилки.

Ответить
Развернуть ветку
Андрей Кормилицын

sql на мобилках писать - ну такое. Что-то сродни сидению на заборе с колышками. я думаю, правки мобильной верстки не в приоритете здесь :)

Ответить
Развернуть ветку
1 комментарий
Null

Сайт очень красивый, красавцы!

Ответить
Развернуть ветку
Лёха Вованыч

Работаю в MSSQL с 2003 года. Уже чего только не писал и не делал в нем. И главное не селект написать, а сделать что бы процедуры быстро работали, а не по пол часа с одним селектом в котором вложенных подзапросов 20 штук! 

Ответить
Развернуть ветку
Nickolai Vasiliev

Кстати, зарегался через гугл-аккаунт, получил сообщение об ошибке. Но аккаунт при этом был зарегистрирован.

Ответить
Развернуть ветку
К М

Бро, где ты был раньше?

Ответить
Развернуть ветку
Раися Вперде

конечно максимально гнилой подход к конвертации юзера

сначала сказать что нужно авторизоваться для посмотра решения, а после авторизации добавить что нужен премиум аккаунт

Ответить
Развернуть ветку
Foma Kiniaev

А есть хардкорные задачки как на sql-ex?

Ответить
Развернуть ветку
Николай Ладанов
Автор

Попробуй! Задачи разбиты на сложность от 2 до 9 (пока так). Начиная с задач со сложностью 5-6, приходится задумываться над решением. Хотя это все индивидуально.

Ответить
Развернуть ветку
Egor Feoktistov

Посмотрите на datacamp, там есть как продвинутые, так и базовые курсы по SQL. В целом реализация очень похожая получилась, но пока по объему контента сильно им проигрываете. Попробуйте как-нибудь ввести подписку аналогично их подписке, либо с коротким пробным периодом, либо оставив лишь пару упражнений в открытом доступе. 
P.S. Мне бы не понравилось, что мои данные в виде той же почты висят на главной - закройте что ли рейтинг для тех, кто не зарегистрировался.

Ответить
Развернуть ветку
hakhagmon
Ответить
Развернуть ветку
ЯжПрограммист

+1 

Ответить
Развернуть ветку
Sergei Sumarokov

Отличный проект, можно классно развивать добавляя постепенно другие БД mongo, mssql и тд!

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
globalstocks

На каком фреймворке сделан сайт? Если не секрет, конечно.

Ответить
Развернуть ветку
Николай Ладанов
Автор

React, Node(Koa), Mongo, MySQL (среда выполнения)

Ответить
Развернуть ветку
Alexander Belousov

По поводу монетизации - можно делать не один общий курс, а специализированные -
Sql для веб-разработчика
Sql для продукт-менеджера
Sql для маркетолога и тд.

Часть курса доступна бесплатно, остальная - за деньги.

Ответить
Развернуть ветку
Petr

А где кнопка с CTA на главной? Зашёл и не понял куда далее идти

Ответить
Развернуть ветку
F. K.

sql-ex лет 8 назад мне зашёл, до сих пор запросы пишу разной сложности более менее уверенно благодаря задачкам на том ламповом ресурсе

Ответить
Развернуть ветку
Georgy Smirnov

вот такой бы тренажер по фротэнду (css особенно  )

Ответить
Развернуть ветку
Oleksandr Havrylei

Есть сервис CSS Battle, на нем можно потренироваться в написании чистого и эффективного CSS. Главная фишка сервиса это соревнования друг с другом в написании самого эффективного и чистого CSS за что юзеры получают баллы в общей таблице :)

Ответить
Развернуть ветку
Алексей Ермаков

Верстка лендинга на мобилке - поехавшая.

Ответить
Развернуть ветку
Nikita Borisov

Надо сделать 2 кнопки как в datacamp. Одна Run Query, Другая Submit Answer. Каждый раз видеть что ответ неправильный когда я просто на промежуточном этапе неприятно)

Ответить
Развернуть ветку
Виталий Ерошенко

Не знаю есть ли, сужу по первой анимашке на главной, есть ли вывод ошибок, как в клиентах мол не знаю такого-то столбца, таблицы и пр, а не просто верно/неверно? Стандартные системные ошибки от самой БД, чтобы как наводка была, а не ломать глаза или мозг опечатался ты или реально в логике косяк...

Ответить
Развернуть ветку
Николай Ладанов
Автор

Есть такое)

Ответить
Развернуть ветку
Грачёв Иван

Что-то вы плохо искали, уже давно есть https://shultais.education/courses/sql и на Stepik https://stepik.org/course/51562 - там и видео-курс, и SQL тренажер.

Ответить
Развернуть ветку
Белек Абылов

У вас не работает Google Sign In. При выборе профиля срабатывает редирект снова на выбор профиля.

Ответить
Развернуть ветку
Vladimir Marchenko

В тренажёре IMHO несколько раздражающая авто-подстановка. Пришлось немного побороться с редактором, чтобы написать простую строчку "SELECT * FROM Trip AS T"

Ответить
Развернуть ветку
Лысенко Григорий

Ребята, у вас куча ошибок в заданиях.
Например: Вывести все названия самолётов, на которых можно улететь в Москву (Moscow)
Ответ:  
select plane
from trip
where town_to like 'Moscow'
а Правильный ответ оказывается такой:

select distinct (plane)
from trip
where town_to like 'Moscow'

А где хоть слово в запросе про уникальность? Там наоборот сказано "ВСЕ"

Ответить
Развернуть ветку
Alexander Shatskikh

Вот ещё один интересный тренажер: https://stepik.org/course/63054/syllabus

Ответить
Развернуть ветку
Елизавета Баранова

тренажер отличный, мне кажется похожих очень мало - либо платно, как степик, либо неудобно. тут и ux отличный, удобно, вывод ERR-диаграмм порадовал! спасибо!

Ответить
Развернуть ветку
Kirill Orlov

отличный тренажер! купил и не жалею

Ответить
Развернуть ветку
Slava Rozhnev

Ещё один хороший сайт где можно практиковаться в написании запросов SQL с практическими заданиями: https://sqltest.online

Ответить
Развернуть ветку
81 комментарий
Раскрывать всегда