{"id":14277,"url":"\/distributions\/14277\/click?bit=1&hash=17ce698c744183890278e5e72fb5473eaa8dd0a28fac1d357bd91d8537b18c22","title":"\u041e\u0446\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c \u043b\u0438\u0442\u0440\u044b \u0431\u0435\u043d\u0437\u0438\u043d\u0430 \u0438\u043b\u0438 \u0437\u043e\u043b\u043e\u0442\u044b\u0435 \u0443\u043a\u0440\u0430\u0448\u0435\u043d\u0438\u044f","buttonText":"\u041a\u0430\u043a?","imageUuid":"771ad34a-9f50-5b0b-bc84-204d36a20025"}

Как твит и желание учиться втянули меня в авантюру с написанием онлайн-курсов

В 2013 году, когда я только начинал знакомиться с программированием, мне на глаза попался скриншот старого твита Майкла Блумберга. Думаю, многим этот человек больше известен как бизнесмен и владелец одноименного информационного агентства. Но мне он запомнился как медийная личность, которая неплохо прорекламировала указанный в твите ресурс и дала импульс моему не совсем обычному способу обучения.

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

Начало

Ресурс Codecademy, упомянутый Блумбергом, перевернул мое представление о способах обучения программированию и познакомил с новым для меня, да и для многих в то время форматом – онлайн-курсами. Думаю, как раз в эти годы такой формат стал набирать популярность и привлекать все больше людей и компаний, а успешные запуски платформ EdX, Coursera, Codecademy и многих других только способствовали развитию этой индустрии.

К счастью, мои знания английского языка сводились лишь к уверенному использованию онлайн-переводчика, поэтому я закончил свое обучение на Codecademy достаточно быстро… где-то на втором уроке.

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

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

Изначально сайт состоял из ответов поисковых систем на вопросы «Как сделать регистрацию на сайте?», «Как открыть сайт внутри сайта?» и прочих. В результате соединения путем проб и ошибок этих фрагментов появилась первая версия сайта, этакий неловко сшитый из разнородных лоскутов Франкенштейн, которому было суждено еще год терпеть эксперименты.

Использование фреймворков, CMS и прочих готовых решений, конечно, значительно бы упростило процесс и уменьшило время разработки, но такие решения не подходили, так как на первое место я поставил свое обучение, а не завершение проекта. Здесь к месту будут слова известного физика Ричарда Фейнмана: «Чего не могу воссоздать, того не понимаю».

Разумеется, всему есть предел и не во всем пришлось полагаться на чистый лист блокнота, да и не хотелось тратить уйму времени на изобретение «велосипеда», например, редактора исходного кода с подсветкой синтаксиса. Для этого отлично подошёл редактор Ace, функциональных возможностей которого хватает по сей день.

Сначала я не до конца понимал метод, по которому планировал обучаться и приступил к написанию курсов только по языку С++. Хорошо, что возникла нерешаемая для меня проблема и вынудила сосредоточиться на курсах по HTML и CSS. Почему написание курсов по HTML и CSS, как бы это парадоксально не звучало, имело положительный эффект на мое обучение будет в конце статьи, а проблеме с которой столкнулся, посвящен следующий абзац.

Для проверки заданий на языке С++ его необходимо для начала скомпилировать и полученную программу протестировать различными входными значениями, а для этого нужен выделенный сервер, знания и деньги. Кстати, позднее на GitHub появились два проекта, решающие данную проблему.

Если вам вдруг интересно как запустить код на С++ в браузере (т. е. на стороне клиента) без выделенного сервера, на котором будет происходить компиляция, то можете обратить свое внимание на проект с GitHub с названием JSCPP – простой интерпретатор C++, написанный на языке JavaScript. Такое же решение есть для языка Python – проект Brython.

После практически года переписывания первой версии сайта, наполнения его первыми уроками по HTML и долгими поисками ошибок и багов, сайт с названием Codebra (изначально Code Brain) отправился в свое первое долгое плавание с весьма топорным дизайном:

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

Первые дни проекта

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

Разумеется, это была не какая-то рассылка писем нерелевантной аудитории или оставление комментариев на сайтах с другой тематикой. Как правило, комментарии оставлялись под статьями и уроками по HTML-тегам или свойствам CSS органично и ненавязчиво с припиской, что на ресурсе Codebra можно помимо теории еще и попрактиковаться прямо на самом сайте. Спам это или нет, решать вам, но я все же склоняюсь к тому, что это полезная дополнительная информация для посетителей тех сайтов того времени. Причину, почему эта информация полезная, постараюсь объяснить в следующем абзаце.

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

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

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

Меня посетили смешанные чувства. Неужели это действительно DDoS-атака? В итоге совместных с поддержкой хостинга поисков проблемы был найден PHP скрипт, выполняющий проверку решения практического задания пользователем и, как задумывалось, срабатывающий после любого нажатия клавиши в активном окне редактора кода. Он запускался сотни раз в секунду!

Таким незамысловатым способом была проведена первая незапланированная и успешная DDoS-атака на ресурс Codebra c помощью разработчика сайта и ничего неподозревающих пользователей.

Этот случай был очень полезным для моего обучения и заставил в дальнейшем более глубоко разобраться с языком PHP, подходом AJAX, ответственно подходить к написанию кода и не спешить с загрузкой не протестированных обновлений.

Привлекаем/увлекаем

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

Так появилась реферальная программа на сайте, благодаря которой был привлечен каждый четвертый зарегистрированный пользователь. Немного позднее она помогла сайту не уйти в забвение, после того как он был заброшен мной на пару лет до появления COVID-19.

Наступил 2020 год и почти сразу напомнил мне о существовании заброшенного сайта с перспективной тематикой в карантинное время. Появившийся COVID-19 значительно поднял всю статистику сайта, а заодно и мою мотивацию.

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

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

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

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

Зачем все это затевалось?

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

Изначально я задумывал написать статью про метод Фейнмана, который, если кратко, можно описать двумя цитатами. Первая была упомянута ранее, а вторая принадлежит одному из героев романа Курта Воннегута «Колыбель для кошки»: «Доктор Хониккер любил говорить, что, если ученый не умеет популярно объяснить восьмилетнему ребенку, чем он занимается, значит, он шарлатан».

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

  1. определение темы/имеющихся знаний;
  2. обучение другого человека;
  3. выявление пробелов в знаниях;
  4. систематизация, упрощение и рассказ истории.

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

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

0
Комментарии
-3 комментариев
Раскрывать всегда