В рубрике DOU Проекторвсе желающие могут презентовать свой продукт (как стартап, так и ламповый pet-проект). Если вам есть о чем рассказать — приглашаем поучаствовать. Если нет — возможно, серия вдохновит на создание собственного made in Ukraine продукта. Вопросы и заявки на участие присылайте на editors@dou.ua.
Привет всем! Я Дима, уже около 6 лет работаю в области software development. Начинал карьеру в Киеве, затем перебрался в Стокгольм. Я — соучредитель и руководитель проекта Codeasy.net.
Идея
Codeasy.net — это курс программирования, проходя который, вы спасете мир играючи...
Идея родилась, когда моя жена меняла квалификацию — из менеджера в программисты. Она нашла какой-то курс по программированию в интернете и... запуталась спустя
Мы провели анализ рынка и нашли совсем мало хороших курсов. А особенно курсов по C#. «Почему бы и нет, ведь обучение программированию — это сейчас хайп», — подумал я и сел за написание своего курса. Болезнь всех программистов: если тебе что-то не нравится — напиши свое.
Как только первая глава была готова — я показал ее жене, спросил: «Ну как, что скажешь?». Ответ был: «Ты пишешь очередную скучную книгу по программированию. Такого полно!». Это был вызов...
А что если изучать программирование по ходу дела приключенческой истории? Например, главный герой будет сражаться за судьбу всего человечества в постапокалиптическом мире, а делать это — с помощью программирования. Эта мысль засела глубоко в моей голове, и я решил ее проверить. Вот так и родилась идея Codeasy.net. Но не сам проект, а лишь идея, ведь для полноценного проекта нужна команда!
Команда Codeasy.net
Лёшуя знаю давно, мы вместе ходили в походы... Он — full stack разработчик. Я рассказал ему о Codeasy.net, и он моментально загорелся идеей. «Мы сможем по ходу истории вставлять маленькие игры! Мы сделаем это лучшей обучающей платформой с геймификацией! А что если делать разные ветви сюжета, как в играх делают? И шутки, обязательно нужны девелоперские шутки!» — его было сложно остановить. Другими словами, нас было уже двое в команде.
Вскоре после начала проекта мы решили немного почерпнуть опыта у коллег из Кремниевой долины и прошли online-школу от Y Combinator для стартапов. Это был незабываемый опыт, куча новых знакомств и тем для размышления. Мы выделили главную метрику нашего стартапа, изучили юридические вопросы создания компании, обсудили наем персонала и многое другое. Перед нами выступали СЕО Slack — Stewart Butterfield, Docker — Solomon Hykes и другие люди, достигшие успеха. Тогда же мы решили, что для того, чтобы чувствовать себя всесторонней командой, нам нужен человек, который сможет заниматься SEO/PR/Marketing и который не будет программистом.
Юля — online marketing manager — третье звено нашей команды. Она отлично влилась в коллектив двух программистов, что сделать совсем не просто! Первой ее реакцией было: «Что они вообще делают?!». Но уже через неделю она писала на форумах о новых подходах в изучении программирования, которые мы проповедуем в Codeasy.net.
Дизайн сайта и иллюстрации для проекта создавала Таня, а моя жена Лена все время поддерживала и помогала разрабатывать курс.
Реализация
Главный вопрос, который мы задавали себе на протяжении первых
Наши коллеги JavaRushсделали попытку в этом направлении, создав отличный курс, который, как и наш, начинается с истории. Но по ходу уроков сюжет плавно теряется, и в конце концов остаются лишь шутки, «понятно» и «повтори еще раз, пожалуйста». Мне, как программисту, сюжет показался бы лишним, потому что я привык сразу докапываться до сути, не отвлекаясь ни на что. Но Codeasy.netсоздан не для программистов, а для будущих программистов...
Сейчас со всей уверенностью могу сказать, что подход приключенческой истории сработал. Мы получили довольно много позитивных отзывов от наших пользователей о сюжете, балансе между историей и учебным материалом и о сайте в целом. Мы также думаем сделать короткую версию «для программистов» — без истории.
Трудности
На пути к светлому будущему Codeasy.netмы успели наступить на много граблей, но шишки, к счастью, проходят и болят уже не так, как раньше.
Одной из них было решение использовать Angular 2 сразу после его релиза. Позже, когда мы занялись SEO, оказалось, что нам неплохо было бы добавить Server Side Rendering. Пробовали связку ASP.NET Core с Node.js, которая также оказалась крайне нестабильной в продакшене. Сделали для себя вывод, что не всегда нужно гнаться за самыми последними и модными фреймворками. В общем, это потянет на отдельную историю от Лёши, оставим для будущих (технических) постов.
Еще одним испытанием был код раннер — собственноручно написанный сервис для компиляции и валидации пользовательского кода. Да, мы используем Docker. Да, вы все равно можете его сломать. Нет, пробовать ломать не надо, я и так верю :) Те, кто занимался вопросом, знают, что запуск внешнего кода у себя на сервере — исключительно неблагодарное занятие.
Еще одной сложностью, которую мы успешно побороли, было то, что пользователи «отваливались» после первых
Я очень сильно волновался по поводу своего уровня английского. Тут же не сухой технический текст писать, а художественный. Это оказалось куда сложнее... В результате писал, как умел, после чего давал читать как можно большему количеству людей «со всего мира»: англичанину, американцу, австралийцу, испанцу, украинцу... Также мы собирали отзывы пользователей, а потом я много правил-правил-правил. Нашли ошибки в тексте? Пишите в комментах!
Почему мы выбрали C#
Этому есть несколько причин, но главная: мы считаем, что новички должны начинать изучение программирования с современного языка, который легко применить на практике и который имеет спрос на рынке ИТ. Мы убеждены, что C# идеально подходит под это описание. Кроме того, за ним стоит мощный стек, при помощи которого можно создавать игры, десктопные и мобильные приложения, а также веб-ресурсы. C# объединяет элементы функционального и объектно-ориентированного программирования, имеет мощное комьюнити, а теперь уже развивается в сторону Open Source и мультиплатформенности. А что еще нужно для полного счастья?
Говоря языком чисел, язык C# находится на 9 позиций выше Java и на 7 позиций выше С++ в рейтинге Stackoverflow Developer survey«Most Loved programming languages»!
И совсем небольшая поправка на то, что мы с Лёшей давно имеем дело с С#...
Как работает сервис
На сегодняшний день наш ресурс — это история из 10 глав, объединенных единым сюжетом, в каждой из которых несколько историй. В процессе чтения вы смотрите на мир глазами главного героя, путешествуете в будущем, которое не такое уж светлое, а прямо скажем апокалиптическое. Искусственный интеллект захватил мир, вокруг свирепствуют роботы, а судьба человечества под угрозой... И только главному герою Тео под силу спасти человечество, как вы догадались, научившись программировать. А как еще победить ИИ? :)
Это был краткий тизер, об остальном приглашаем узнать на Codeasy.net ;)
Сейчас весь курс — более 140 практических задач, которые начинаются с совсем базовых и плавно ползут вверх по уровню сложности. Самые сложные — задачки с собеседований, такие как удалить двойные пробелы в строке, проверить число на простоту или вывести n первых чисел Фибоначчи.
После регистрации каждый пользователь получает на свой счет Codeasy.net 60 вирусов. Вирусы — внутренняя валюта Codeasy.net, при помощи которой пользователи открывают новые главы истории и задают вопросы менторам в Slack. Каждая задача в свою очередь — восполняет баланс вирусов так, чтобы их всегда хватало для борьбы с роботами. Если задачи сложны и потребовалось слишком много вирусов на помощь менторов, то всегда можно докупить вирусы за реальные деньги.
Кроме увлекательного футуристического приключения Codeasy.netпредлагает:
- написать ваш первый код \ решить задачу в онлайн-компиляторе;
- автоматически проверить созданный вами код и сразу же отобразить результат;
- воспользоваться подсказкой, если вы не разобрались, как решить задачу;
- подсмотреть, как эту задачу решили ваши коллеги из Codeasy.net;
- воспользоваться помощью лучших менторов-профессионалов в Slack-чате и стать частью Codeasy.net-комьюнити;
- просмотреть таблицу лидеров и увидеть, на кого равняться.
У каждого есть шанс попасть в ТОП — нужно лишь усердно заниматься и решить все задачки на Codeasy.net!
Результаты и планы
Наши усилия в SEO и SMM дали первые ощутимые результаты. Сайт пробился в ТОП-10 Google по некоторым целевым запросам, и сейчас наш курс проходят более 50 учеников ежедневно! В скором времени мы планируем запуск русскоязычной версии курса, которая будет не менее увлекательной по сюжету. Сотрудничаем с переводчиками с целью сделать Codeasy.netдоступным для пользователей других стран.
Мы планируем покрыть все уровни изучения языка C#, ведь ивенты, делегаты, лямбда выражения, многопоточность и куча других вкусностей — еще впереди! Сейчас Codeasy.net — базовый бесплатный курс. В будущем мы планируем его развивать и дополнять новыми полезными для пользователей фичами и уровнями сложности.
Также мы постепенно начинаем внедрять модель монетизации. Мы долго думали об этом и решили использовать механизм внутренней валюты (in-game currency), которую мы назвали «вирусы». Пока что наша идея в том, чтобы оставить пользователю шанс пройти курс бесплатно. Поэтому базовый курс построен таким образом, что пользователь, решивший все задачи, заработает достаточно «вирусов», чтобы открыть следующую главу истории и продолжать учиться. Кроме того, пользователь сможет заработать дополнительные вирусы за репосты Codeasy.netв соцсетях, рекомендуя нас другу, возможно, помогая нам в переводе истории Тео на родной язык ;)
А если у пользователя что-то не получается и ему необходима помощь, то за вирусы можно купить индивидуальную консультацию у ментора. В таком случае вирусов не хватит, и их можно будет докупить за реальные деньги. В дальнейшем мы планируем добавлять новые способы потратить и заработать вирусы, такие как пригласить друга или открыть дополнительные задачи по теме. История Тео будет продолжаться, пока человечество и машины не обретут мирное сосуществование в будущем!
Также есть идея разработать параллельный курс на Python... Но пока это лишь в мечтах, поскольку идей и задач много, а времени и ресурсов — мало. Вот если бы нашелся Python энтузиаст...
Мы приглашаем к сотрудничеству партнеров и инвесторов, заинтересованных в развитии или рекламе нашего проекта.
Если кто-то из ваших знакомых только начинает свой путь в программировании, предложите им попробовать Codeasy.net. Sharing is caring!
Давайте учить и учиться вместе!