DEV Community

Cover image for Lessons learnt from publishing my programming course
Preslav Mihaylov
Preslav Mihaylov

Posted on • Originally published at on

Lessons learnt from publishing my programming course

I’ve been working on my course — Learn Programming with Go, One Game at a Time, for nearly a year & made many mistakes along the way.

Nevertheless, I finally published it & earned $2,158.25 in a month:

Here’s what I’ve learnt along the way 👇

Getting started is scariest

One of the scariest things of making my course was getting started.

I’ve been teaching programming to 2000+ students since 2015 in bootcamps & universities, but I never felt ready to make my own course.

I realised that I never will be & took the leap. Best decision ever!

It’s harder than it looks

Initially, I thought designing the curriculum & recording the videos is the bulk of the effort.

There was so much more — choosing the right platform, video editing, marketing, designing the logo, etc…

I thought that making the course would take me ~3 months in total. I ended up spending more than a year working on it.

But most of that time was lost because I had no clue what I had to do & missed many opportunities to move efforts in parallel.

For example, I first spent 3 months recording all the videos & just then started to look for a video editor to edit all of them. If I do this again, I’d rather do both of those in parallel — record one week’s worth of content & send it over for editing.

What’s more, I started thinking about the course poster only after everything else was ready. Little did I know that would also take more than a month because the illustrator I hired had too many orders in their queue.

If I had known all this & optimised my workflows, I expect I would have been able to finish everything in 5–6 months.

Choosing the best platform

In terms of platform, I thought about building my own at first, but quickly realised that’s infeasible, unless I have a year or so to spare.

Hence, I decided to use one of the existing teaching platforms. The ones I was considering were Teachable, Slip and Udemy.

The first two looked good but I thought they were more suited for creators with established audiences.

I chose Udemy because I could keep most of the profits from my channels but they also offered free marketing on my behalf for a bigger commission, which was fair.

Pitfalls to watch out for when recording

Recording the videos seemed trivial but there were some pitfalls to watch out for:

  • Maximise your IDE/Browser/etc font size.
  • Record at max possible quality.
  • Don’t record \w low energy. Hard to fix later.
  • Have the video editor in mind. Don’t make them guess.

To video edit or not

At first I thought about doing it myself.

And I did… for a single lecture, which took me more than 20 hours.

Totally not worth it. Hire a good video editor who’ll do it much faster at a reasonable price.

Fiverr is a great place to find one.

The beautiful course poster

Fiverr is also the place I found an amazing illustrator for the course poster.

Some might consider this micro optimisation, but for me, it was totally worth it. I don’t care if it brings more engagement or not, I just love it.

The dreadful marketing…

In terms of marketing, I shared the course \w my inner circle first — friends & family who gave me good initial reviews.

Next, I shared it via Linkedin to my professional circle.

But what worked best was sharing it to the Golang community on reddit.

What didn’t work was using twitter promotions. My tweet got good engagement, but not many actually bought the course.

I spent around $115 for a single day, which lead to 3 people buying the course.

I’m probably just a marketing newbie ¯\_(ツ)_/¯


Finally, no matter how optimised my setup is, the most important thing for me is delivering very high-quality content.

I’d rather grow to be a niche instructor with courses students adore vs. pushing my way through with growth hacks & delivering sugarcoated money-grabbers.

If you wanna learn more about my journey, follow @PreslavMihaylov on Twitter.

Top comments (0)