Quantcast
Channel: Найцікавіше на DOU
Viewing all articles
Browse latest Browse all 8115

DOU Проектор: Codeasy.net – изучить C#, спасая человечество

$
0
0

В рубрике DOU Проекторвсе желающие могут презентовать свой продукт (как стартап, так и ламповый pet-проект). Если вам есть о чем рассказать — приглашаем поучаствовать. Если нет — возможно, серия вдохновит на создание собственного made in Ukraine продукта. Вопросы и заявки на участие присылайте на editors@dou.ua.

Привет всем! Я Дима, уже около 6 лет работаю в области software development. Начинал карьеру в Киеве, затем перебрался в Стокгольм. Я — соучредитель и руководитель проекта Codeasy.net.

Идея

Codeasy.net — это курс программирования, проходя который, вы спасете мир играючи...

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

Мы провели анализ рынка и нашли совсем мало хороших курсов. А особенно курсов по 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.

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

Реализация

Главный вопрос, который мы задавали себе на протяжении первых 5-10 уроков:а хорошая ли это вообще идея — учить программирование, читая приключенческую историю?

Наши коллеги JavaRushсделали попытку в этом направлении, создав отличный курс, который, как и наш, начинается с истории. Но по ходу уроков сюжет плавно теряется, и в конце концов остаются лишь шутки, «понятно» и «повтори еще раз, пожалуйста». Мне, как программисту, сюжет показался бы лишним, потому что я привык сразу докапываться до сути, не отвлекаясь ни на что. Но Codeasy.netсоздан не для программистов, а для будущих программистов...

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

Трудности

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

Одной из них было решение использовать Angular 2 сразу после его релиза. Позже, когда мы занялись SEO, оказалось, что нам неплохо было бы добавить Server Side Rendering. Пробовали связку ASP.NET Core с Node.js, которая также оказалась крайне нестабильной в продакшене. Сделали для себя вывод, что не всегда нужно гнаться за самыми последними и модными фреймворками. В общем, это потянет на отдельную историю от Лёши, оставим для будущих (технических) постов.

Еще одним испытанием был код раннер — собственноручно написанный сервис для компиляции и валидации пользовательского кода. Да, мы используем Docker. Да, вы все равно можете его сломать. Нет, пробовать ломать не надо, я и так верю :) Те, кто занимался вопросом, знают, что запуск внешнего кода у себя на сервере — исключительно неблагодарное занятие.

Еще одной сложностью, которую мы успешно побороли, было то, что пользователи «отваливались» после первых 3-4 уроков.Чтобы понять, в чем дело, мы постоянно мониторили пользовательские варианты решения задач и делали выводы, что именно им непонятно. Иногда эти пользователи заходили к нам в Slack-группу, и тогда мы уже сами могли их спросить. Итеративно, задача за задачей, объяснение за объяснением мы «вылизали» курс, чем значительно повысили успеваемость спасателей мира на Codeasy.net. Это очень воодушевляющий процесс, когда наблюдаешь за тем, как в самом начале человек не знал, какие кавычки использовать для строки и что такое переменная, а через 2 недели он уже решает задачки на массивы и удаляет двойные пробелы в строках!

Я очень сильно волновался по поводу своего уровня английского. Тут же не сухой технический текст писать, а художественный. Это оказалось куда сложнее... В результате писал, как умел, после чего давал читать как можно большему количеству людей «со всего мира»: англичанину, американцу, австралийцу, испанцу, украинцу... Также мы собирали отзывы пользователей, а потом я много правил-правил-правил. Нашли ошибки в тексте? Пишите в комментах!

Почему мы выбрали 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!

Давайте учить и учиться вместе!


Viewing all articles
Browse latest Browse all 8115

Trending Articles