Серия «Как я делаю онлайн-курс, пока делается.»

5

Как я, Java разработчик, делаю курс для Java разработчиков? Выпуск #3

Серия Как я делаю онлайн-курс, пока делается.

В этом посте поговорим о том какого это делать онлайн-курс по программирования одиночку.

Не очень просто, как могло бы показаться на первый взгляд) Но зато очень интересно)

Впервые делал увеличение счетчика processedUsersCounter++ вот так 😂

Вот краткий перечень чему я научился или что хотя бы начал уметь делать хоть как-то:

  • попробовал и настроил кое-что для курса на zero-code :)

  • освоил самый базовый шиномонтаж видео и работу со звуком

  • написал кучу скриптов на Bash для внутренней автоматизации на онлайн-курсе

  • и еще одну кучу скриптов для автоматизированной проверки домашек

    • а что? вдруг я сплю, а человек хочет домашку сдать

  • немного использовал Go для некоторых уроков чтобы кое-что закодить на нем

    • так чтобы это было просто расширять или допиливать в дальнейшем

    • чтобы Docker образ получился бы маленьким и не тратить место на диске у студентов

    • сделал свой рекордный по размеру образ для учебных целей (для студентов спец мини

      сервер на Go) - 9 мегабайт вышло) вроде подозрительно, но прикольно и работает)

  • поработал и продолжаю работать с Gitlab API для все той же автоматизации

В целом стараюсь избегать человеческого фактора и автоматизировать все что можно)

спасибо за внимание) подписывайся если интересно узнавать из первых уст как делаются онлайн-курсы по-программированию)

Максым Атыгаев, человек-разработчик.

Показать полностью 1
11

Как я, Java разработчик, делаю курс для Java разработчиков? Выпуск #2

Серия Как я делаю онлайн-курс, пока делается.

Привет) Прошло около месяца с моего прошлого поста о том как я делаю онлайн-курс по программированию.

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

📈 Новости курса

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

😮 Знаете, с чего я офигел? Нельзя просто так взять и начать продавать курс!

Знаешь ли ты, что нельзя просто так взять и начать продавать курс?!

Вот, допустим, кто-то сделал курс, и допустим, кто-то другой хочет этот курс купить.

(просто представь эту ситуацию)

Оказывается, нельзя просто так взять и что-то продать человеку с сайта!

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

Ах да! Еще же есть юр. лица. (на самом деле нету потому что пока работаю только с физлицами)

Для оферты нужно расписать кучу всего что мне даже пересказывать лень. Пока что это все у меня в процессе. Очень надеюсь что до нового года я успею с этим разобраться.

🍖 Давай уже про техномясо!

Извольте. Я отказался от идеи форкать репозитории и делать домашнее задание в своем форке.

Минусов такого подхода оказалось больше чем плюсов.

Я от этого отказался.

Теперь в уроке есть кнопка "Начать практиковаться".

Выглядит это примерно вот так:

И когда студент жмет на эту зеленую кнопку то для него динамически создается репозиторий в специальной группе.

Например для пользователя ivan в Gitlab будет создана (если такой еще нет) подгруппа ivan в группе ws (workspaces).

Если такого репозитория в этой подгруппе еще нет то создаем его.

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

С одной стороны у Gitlab есть API, а с другой стороны этот API доступен только по токену (то есть нужно авторизовывать каждый запрос к нему). Не хочется токен авторизации хранить где-нибудь на getcourse. Да, кстати, свои курсы я записываю и веду именно там.

Что делать?! Ну ясно понятно что первое что приходит в голову это третий сервер посредник.

В итоге с геткурса уходит запрос на этот сервер, а уже сервер идет и делают всю магию связанную с Gitlab и созданием репозитория у пользователя.

Получается достаточно просто и прикольно) студентам нравится)

Для меня в такой схеме профитов много, но вы наверное и так их понимаете)

Вот некоторые из них:

  • я могу комитать что хочу и когда хочу и (условно) как хочу в исходный репозиторий (потому то что при создании репозитория все коммиты будут собраны в один с текстом Initial)

  • в созданном репозитории у пользователя есть права пушить только в ветку homework (больше похоже на реальную жизнь, когда нельзя пушить в master или main или develop)

  • все создаваемые репозитории будут теперь находится в общей группе а значит можно глобально настраивать секреты и делать это всего в одном месте (удобное)

💭 А дальше-то в планах что?

Я трачу на курс примерно 8 часов каждый день. Иногда меньше. Иногда больше. Да, я засыпаю с ноутом и просыпаюсь с ноутом. Я занимаюсь курсом до работы и после работы. И конечно же на выходных)

Я очень надеюсь что к 1 ноября я успею доделать весь задуманный контент и расскажу вам свои новые идеи по обучению)

По аналогии с онлайн-кинотеатрами и прочими сервисами я хочу сделать подписку на миникурсы, в которых можно качать отдельные темы в которых хочется получить больше практики. То есть можно будет оплатить подписку и проходить столько курсов сколько захочется, и потом при желании продлять подписку. Сейчас уже накидан план для более десятка миникурсов (начиная с Docker и тестирования и вплоть до отдельных тем по разработке на Spring Boot).

Кстати, как думаете какую цену поставить за такую онлайн-подписку?

спасибо за внимание) подписывайся если интересно узнавать из первых уст как делаются онлайн-курсы по-программированию)

Максым Атыгаев, человек-разработчик.

Показать полностью 5
1

Нужна помощь с оценкой онлайн-курса по программированию

Серия Как я делаю онлайн-курс, пока делается.

Привет. Я делаю курс по Spring Backend Developer и мне нужны люди, которые прошли бы платный курс бесплатно и дали бы обратную связь по лекциям, урокам, домашкам, и всему такому.

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

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

Для кого этот курс? Для джунов и мидлов которые делают бекенд на Java / Spring, которым хочется разобраться лучше в их повседневной работе, а может даже и узнать что-то новое и тем самым начать делать на работе более сложные задачи, а значит позже получить повышение по зп или даже должности)

Сайт курса: https://spring-backend-developer.ru

Чтобы получить промокод на бесплатный доступ, напишите мне в телеграм: https://t.me/maks_atygaev

P.S. Тебе не нужен курс, но нужно Code Review? Присылай мне в телегу твой код, обсудим)

Показать полностью
8

Как я, Java разработчик, делаю курс для Java разработчиков? Выпуск #1

Серия Как я делаю онлайн-курс, пока делается.

Я делаю это с азартом) и полным погружением, с желанием создать курс, который сам хотел бы пройти в свое время. А знаете, с чем я сталкиваюсь, пока делаю курс? Сейчас расскажу три самых ключевых пункта.

#1. Много новых ИНТЕРЕСНЫХ задач

Из-за того, что курс является моим первым крупным детищем и на него пока нет крупных инвестиций, мне приходится решать задачи "оптимизации" - пространства, ресурсов и прочего.

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

Естественно (и небезобразно) все запускается в Docker.

Вот вам один из интересных кейсов: одно из первых домашних заданий - создать мини-веб-проект на Java без использования Spring / Spring Boot.

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

Так вот, для этой домашки каждому Java приложению выделяется 48 мегабайт для его оперативной памяти, а для контейнера в целом - 64 мегабайта.

Знал ли я, как регулировать размер доступной оперативной памяти (RAM) для Docker контейнера? Нет, раньше я об этом не задумывался, так как это не было необходимостью. В средах, таких как Kubernetes, за это обычно отвечали другие инструменты, и напрямую регулировать размер RAM не требовалось. Однако, было ли мне интересно узнать об этом? Конечно!

#2. Много НОВЫХ интересных задач

Делать домашки и запускать их на своем компьютере – это конечно здорово, но что, если домашка прикольная, а никому это не покажешь?

Даже друзьям, даже санитарам IT-леса – специалистам из HR.

И тут я однажды такой: "А ЧТО, ЕСЛИ СДЕЛАТЬ ХОСТИНГ ДЛЯ СТУДЕНТОВ?"

И мой мозг такой:

А как?! А как это делать?! Я никогда такого не делал. Нужен будет какой-то выстроенный и изолированный друг от друга процесс публикации домашек на сервере. А еще и чтобы это было красиво.

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

от сделал один студент две домашки, а другой — три.

Например, в первой домашке, мы делаем веб проект который занимает порт 8080, во второй домашке используется порт 8081, в третьей 8082.

И получается, что запустить на сервере две первых домашки от двух разных студентов я не смогу (так как будет конфликт портов).

Окей, значит, надо им выдавать порты последовательно и делать маппинг этих портов. То есть для первого студента и его домашек выдаем порта 8000-8002. Для второго студента порты 8003-8005. Но что, если они будут выполнять домашки не последовательно? И, например, первый сделает три домашки, а второй только одну?

Хм... Значит, алгоритм провальный. Что насчет реестра?

Кто-то первый делает домашку, и она заливается на сервер. Анализируется порт из домашки и привязывается на первый свободный порт, начиная с 8000. А для пущей надежности еще и в Бд сохраняется. Возьмем для этого SQLite. Ну а что? Многопоточки пока нет, а работать с SQLite из Bash очень удобно.

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

Точно! Домен!

# 3. МНОГО новых интересных задач

С доменом все плюс-минус просто. Покупаем за 200 рублей домен и...

И понимаем, что нам нужно делать новые поддомены для каждого студента.

Думаем как это сделать. Окей, можно использовать wildcard.

То есть если бы мы купили домен example.com, то в настройках DNS можно всего одну настройку добавить (*.example.com) вместо того чтобы править эти настройки каждый раз для каждого нового студента.

И тогда для студента с юзернеймом ivan будет свой собственный поддомен:

ivan.example.com

Пробрасываем порт домашки на 80 порт и открываем в браузере и...

И понимаем что нужен HTTPS.

А как? Как сделать HTTPS для *.example.com? А так вообще можно?

А Let's Encrypt так сможет?

Как оказалось сможет)

В итоге после прочтения нескольких статей, и настройки всего необходимого получаем хостинг для студентов своими руками с HTTPS на чистом Bash + SQLite + Docker + Nginx + Let's Encrypt.

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

Показать полностью 3
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества