How I Create Courses

How do I create courses at DevopsTrain?

To deliver the material to learners in an accessible way and back it up with enough hands-on practice, I've refined a method that I'd like to share.

1️. Building the list of sections:

Once I've decided to create a given course, I put together a list of sections. At this stage I work out both how thoroughly the topic is covered and the order of the sections, so that learning progresses from simple to complex and the sections are logically connected to one another (where possible).

🗓 Takes about a week.

2️. Developing a section:

Next, work begins on each of the sections. All the steps below need to be repeated for every section. And there can be anywhere from 10 to 25 of them in my courses, more than 100 in total across all courses.

A. Building a list of topics (in random order) that absolutely must be covered in this section. At this stage I study documentation, articles, snippets of code, and other sources to assemble the most complete set possible of what I consider important to cover in this section.

🗓 Can take anywhere from 1 day to a week, depending on the complexity of the section.

B. Drawing up the section plan. Here the list of topics turns into a structure, each element of which is logically connected to its neighbors. Order matters now, because the section's material will be created according to this very plan. It's further complicated by the need to devise the hands-on practice that runs throughout the section, as well as to figure out how the backend will validate the tasks.

🗓 Takes a few days.

C. Writing the course text itself. Following the plan is easier by now, especially if it turned out detailed, but the formatting part takes quite a lot of time. I use my own platform, which lets me make courses as flexible as possible. And if some elements are missing, the designer and frontend developer do their work and the platform gets extended. The section code itself is written in YAML, which has custom types for rendering blocks of various functionality. For example: highlighting something important, a button, a FAQ, links, displaying server output, and much more.

🗓 This stage can take up to 3 weeks in some cases.

D. Building the backend part. The backend is needed to save the progress state of the sections, display server output, and — most importantly — validate your tasks. Depending on the course, the logic differs significantly, so there's no single solution here. That said, I do of course have a number of my own tricks and code-generation scripts.

🗓 Takes 1-2 days.

E. Testing how the course works together with the backend part, to make sure everything works as intended.

🗓 Takes about 1 day.

✅ After these steps, I can move on to the next section =)

I wanted to show how much care goes into creating each course, and how high-quality and effective all the materials on my platform are 🙂