Gergely Kalapos


My online teaching story: High Performance Coding with .NET Core and C#

Posted on December 04, 2017



I recently published an online course (yeaah)! In this post I would like to share the background story. But before I go into the whole thing let's get an overview!

Here are the plain facts:

Topic: Performance with .NET Core and C#
Where did I publish it: on Udemy
Course length: 6,5 hours
Work I put into this: A LOT. The project started in August and the course went online end of November.

If you are interested through this link you can purchase the course with a giant discount.



How it started

Around end of July I was contacted by a publisher that they want to create an online course about performance and .NET Core. They did not really have more than the topic. I found the idea very cool and I was on vacation anyway, so after a morning run I took my notebook and started to create an outline. I really enjoyed the process, so I decided to say yes.


The content creation process

After a few test recordings it was clear that simply creating the slides and recording it with some spontaneous text won't work. So, I decided to script the whole thing. I created slides and demos and I wrote down every single word I wanted to say. For this I simply used PowerPoint and I wrote all my scripts in the notes to the slides.

Originally, I had 10 sections in the outline, but as I created the content it became clear that there is one topic which would be better to cover "on demand" in other sections. So, I ended up with 9 sections. I started with the 5. Sections (C# 7 performance), because it seemed to be the easiest one for me to create. I basically had the content for that section in my head and I didn't really need any research on that topic. After that I went to the first section and from there I created everything in order.

For every section first, I created the slides and demos with the scripts and then I recorded it, and then edited it with iMovie.

Since I have a full-time job the way this worked was that when I got home I immediately went to my computer and started working on the slides and the demos. During the week I typically did not record anything, I just created the content. And then on the weekend I recorded everything. On average a section (~1 hour of content) took 2 weeks to create and 1 weekend to record and edit. But this is the average. I had sections which took only 1 week, and there was 1 section, which was almost a month of work.


The recording

For the first test videos I used my Logitech headset with its built-in microphone. It's a relatively good one, so I thought it will be fine. It turned out to be a very bad idea. The sound quality was not good. Therefore, I bought a Blue Snowball iCE microphone for around 60EUR. This was a very good decision. For 60EUR the sound quality went from "bad" to "almost processional" - more on this on the Post processing section.


Other than the new mic I did not invest any money into the production. I recorded the slides on my MacBook and for the demos I used my Windows laptop. Fortunately, the QuickTime Player app on macOS can record screencasts very easily (I have no idea why it’s called “Player”, when it can also record...).

Recording an online course was completely new to me, so I learned a lot in the beginning. In fact, I threw away my first recordings. By end of Oktober, I basically already recorded everything. Then I compared the section that I recorded last to the section I recorded first, and the difference was huge. It turned out that over time my narration became much better (Of course there is always room for improvement!). This led to the decision that I threw away the original recordings of Section 1,2,3,5 and partially from Section 4. So, I basically recorded half of the course twice.


Post processing

I did the whole editing with iMovie on my mac. Now the sound of the Snowball iCE is ok, but it did not really sound professional. After a quick search I found a YouTube video, where someone used the same microphone, opened the recording in audacity and turned the "ok" sound to "very professional" sound by using 4 different filters. I did the same on my recordings and after that I was very happy with the sound quality. Of course, I'm still far away from a professional sound editor person, but to me it was amazing what I was able to do with zero knowledge on the subject with my recording by watching a tutorial on YouTube.


Publishing the course

As already mentioned this project started with a publisher. Unfortunately, it turned out that we cannot well work together, so we decided to go separate ways. I don’t want to go into details here, since this is my blog and it’s always bad to hear the story only from one perspective. The point is: we agreed that I keep the content and publish it on my own without using their templates.

And this is exactly what happened. I decided to go with Udemy. They also have a review process, which in my case took around 2 days, but in general I’d say that it is very easy to publish a course on Udemy. One thing I like about this is that I can update the course very easily. If something changes (e.g. the .NET Core monitoring on Linux is in a very early stage and probably in a year lots of things will change in that area) I can simply create new content and replace the outdated content very easily.

The only thing that I found very messy is the pricing on Udemy. An author can set the price for the course and from there you as an author have 2 options: 1: you either allow Udemy to give discount on your curse and with that they will market your course. These are typically 80-90% discounts, or they simply sell your course for 10USD. 2: Or you say that you don’t allow Udemy to offer discount on your course, but in this case your course won’t be contained in the big Udemy marketing actions. Of course, everyone goes with the first option and the result is that authors price their courses between 100-200USD and then Udemy gives 90% discount. This is the reason you always see that the original price of a decent course on Udemy is somewhere between 100 and 200 USD, with “special offers” for 10-20USD. I did not see other option than going with this craziness, so I priced my course for 120USD, and if Udemy offers 80-90% discount then you will get the course for 24-12USD, which in my opinion is a fair price. If Udemy from some reason does not offer this to you then use the link above.


Lessons learned

  • Don’t use your headset to record an online course! Instead invest into a “semiprofessional" microphone. With ~60-70EUR/USD investment this makes the sound quality significantly better. Investing more for a real professional, studio mic is on the other hand in my opinion an overkill, most people won’t even notice the difference between a 60USD and a 500USD mic.
  • Learn audacity and postprocess your sound
  • To me "scripting everything" works very well
  • For the scripts it would be probably better to use Word instead of the “notes” section in PowerPoint.
  • Use a pop filter! The description of my mic says that a pop filter is not really needed, since it has something built-in. This is plain bul****! I had to remove many pops with audacity. This took time, plus a physical pop filter has much better results. A pop filter costs basically nothing, so I will buy one and definitely use that in the future.
  • Throw away recorded stuff if it's not good! Recording the first part of the course twice was painful, but I feel that this made the quality of the course much better.

What’s next?

I plan to keep the course up-to-date. .NET Core is still new and the tooling around it is in a very early stage. As performance tools evolve I will create new content and also replace outdated content in the course. I also discovered a few minor typos in the course, I will also fix those in the coming weeks. The cool thing about Udemy is that I can update the course and upload/replace content very easily.
;