Thoughts on Building My First Online Course

A few months ago, I announced that I was working on my first ever online course — Learn State Machines. Since then I’ve been working hard to bring that course to life, so I wanted to take some time to share some thoughts on the process so far.

In the beginning

The idea of building courses has been in my head for a long time. I’ve learned so much from courses that I’ve taken over the years to level up my own skills, like Wes Bos’s React for Beginners or the various Treehouse and Codecademy courses I’ve taken; so when I started setting goals for this year, I figured it was time to jump at the opportunity.

You see, I have a nasty habit of picking up side projects to learn new things, biting off more than I can chew, and never actually launching the project.

But this one is different.

About a week before I announced the course, my wife and I welcomed our first child into the world. To say that the last few months have been a (wonderful) blur would be an understatement, but I’ve kept plugging away at the course in what little free time I have. Progress hasn’t been as quick as I’d like, but things are really starting to come together.

The old 80/20 rule

I didn’t quite understand what I was getting myself into, even at the time that I announced that I’d be doing the course. I had already done the vast majority of the research on state machines, built some apps applying what I’d learned, and made the decision that state machines were definitely the thing I wanted to build my first course around.

What I hadn’t quite considered were all the other things that go into launching a successful course. While there are certainly shortcuts to be had, I didn’t want to cut any corners.

So much research has gone into how to build good online courses — trying to learn and understand how people learn.

Then there’s the matter of how to record and produce high quality videos. The microphone, the recording software, the editing software, the tempo, etc. etc.

I’ve even built my own LMS (learning management system), despite the fact that there are lots of great off-the-shelf LMS options out there. There are a few reasons I decided to go this route, but the biggest reason is: I want to own every part of the experience my students have when dealing with my courses to ensure the best possible experience — I don’t want to shoehorn random features into bloated frameworks.

And to top it all off, there’s the marketing side — the emails, the outreach, the landing page, and so on.

So how are things going?

Things are progressing quite nicely, thanks for asking.

While there’s still much to be done, there’s finally a light at the end of the tunnel. I’m not quite ready to announce a launch date, but I have a target in mind — I just need to clear a few hurdles to ensure it’s a feasible date.

However, I am ready to announce that I’ll be opening a preview version of the course to a handful of people mid-June for feedback. The preview version will be free to those handful of folks, in exchange for some detailed notes and feedback. If you’re interested in being in that group, shoot me an email.

If you’re interested in staying in the loop, sign up for updates… a launch date announcement won’t be long now!

Have a question, comment, or concern? Please drop me a note in the issues section on GitHub.