If you’re a software developer wondering about teaching what you know, then in this article you’ll discover how to do exactly that by selling online courses to share your important skills.
In fact, many software developers are already making a living like this, and some even six figures+. And there’s no reason why you can’t do the same!
Why sell online courses as a developer
Chances are you’ve taken an online course to improve your software development skills. If the course was any good, then the course tutor who had more knowledge than you in a specific area effectively transferred his knowledge to you.
But that course tutor is also a software developer, like you and I.
So what would make a software developer go to the effort of creating an online course in the first place?
You have important skills to share
Wherever you are in your journey as a software developer, one thing’s for sure. You have important skills & knowledge that somebody somewhere is willing to pay for.
Even if you’ve just recently started out in development, it’s worth noting that often people learn best from those who are just a few steps ahead of them. Those people could be your students who you help get to where you are right now.
Often people learn best from those who are just a few steps ahead of them.
5 years ago I started learning about a new build tool for the Java programming language, called Gradle. Learning Gradle was a real headache, and it took me years to become proficient with it. After some time I realised that what I'd learned about Gradle other people wanted to know. Later in this article I'll show you how I packaged that knowledge up into a course to help students bypass years of frustration.
Earn extra income
Everyone who decides to sell knowledge online has a motive. Often that motive is money, and that’s great. If your motive is genuinely to share what you love with the world, then that’s great too!
But for most of us, the idea of generating passive income from a digital asset that you build once and sell many times is very appealing. Even if you never plan to leave your career as a software developer, that extra money could make a big difference.
What would you do with an extra $1,000/month? Save it for a rainy day? Invest it for the future? Take a sizzling beach holiday to the Costa Del Sol?
A new more exciting career path
As software developers, we build products which our employer either sells or uses in some way to generate profits. When you start selling online course, you’re also building a product.
But you’re also doing everything else too:
- creating video lessons
- customer service
These are very different skills to software development.
Once you start down this road you may find all of these new activities very exciting. So much so that you become a full-time course creator. Yes, those people really exist!
Or you may find the new activities to be a distraction from what you really love. Writing software.
But, if you’re curious enough to read this far, you probably see selling online courses as a new world you’d like to explore, at least a little bit. OK, well first you need to decide what you’re going to teach.
What development skills could you teach others?
If you’ve worked in software for a while, you’ll likely be in the enviable position of having a wide range of skills to potentially share with students.
And if you’ve more recently started in software, the choices may be more limited, which can actually make your decision easier.
Either way, here are some important things to consider when picking a topic.
Technologies you worked on in the past
Make a list of all the technologies you’ve used in the past. Even if you just touched the surface of it, add it to the list.
One thing that may surprise you is that to teach a topic you don’t need to be an expert.
Yes, it helps to have some working knowledge of the subject, but there’s no reason you need to know everything. Most course creators will be continually learning and updating their knowledge, in order to offer their students the best teachings.
Topics you’re excited to go deeper into
Looking over your list of possible topics, mark those which you would genuinely be interested to go deeper into. That’s important, because once you’ve chosen a topic, it will be with you every day.
When I got to this stage myself, I had a few technologies shortlisted:
- Spring Boot
They were all technologies that I’d been using on a daily basis, and would be interested to learn more about. So how did I pick just one of these?
Assessing market demand
It’s important to at least ask yourself the question whether there’s a market for what you want to teach.
There’s no straightforward way to generate an answer to this, but here are some suggestions:
- Google trends – use this tool to see volume for a specific search term over time
- Udemy – this is a huge course creation platform. You can search for courses on your topic and see how many students have taken the course.
- Google analytics – if you have an existing blog, you can crunch the numbers to see how popular articles are on a particular topic.
OTHER COURSES: when you see other courses on your topic, it’s easy to jump to the conclusion that there’s no need for more course. A better conclusion is that other courses show a demand for your topic, and that it’s entirely within your power to make a much better course that goes deeper and is delivered more effectively.
Finding an audience for your course
There’s nothing worse than investing lots of time building your course, only to have nobody buy it when it’s launched.
Finding your audience first avoids this scenario, since you’ll already have people ready and willing to buy your course when it’s launched.
There are 2 main ways to find an audience when it comes to selling online courses:
- create your own audience
- leverage the audience of an existing platform
There’s no right or wrong answer, but personally I decided to build my own audience for my course because I’m a bit of a control freak. That and because I think it’s a good strategy to have as much control over the different areas of my business as possible.
So how did I create an audience of software developers?
Offering free content
Every wonder why there’s so much good free content available online?
That’s content marketing, my friend.
Content marketing is building a relationship with someone by offering them good free content. Once the person starts to trust you as an authority on your topic, then you can have a conversation. From there you can offer them your best content at a price.
How does it practically work though?
Well this is a big topic for another day, but here’s a quick example. 👇
This website has many helpful articles on the topic of Gradle. Some even attract thousands of visitors every month, and some just a handful. But every time a reader comes to one of those articles, they're offered my free (and amazing!) beginner's Gradle course. To sign up to that course they give me their email address and I give them an awesome course.
To learn more about how I grew this site, check out How I grew a programming blog to 25,000 monthly visitors in 12 months.
Building an email list
So now that I have a prospective customer’s email address, I can do 2 things:
- send them even more awesome free content
- offer them my paid courses to take things to the next level
You can probably see that more visitors = a bigger email list and more chances to sell a course. Crank up the quality and volume of articles, and you just got more visitors!
And once you start in the content marketing business, you’ll learn about other levers you can push too.
Leveraging other platforms
If you don’t want to create your own audience or even host your own website, you still have plenty of options. Many have found success adding their course to sites like Udemy and Pluralsight.
These sites will market your course for you, offering it to a wide audience of software developers. Bear in mind that this service comes at a price, normally a percentage cut from each course sale.
Creating your first software development course
One area that often gets overlooked is the process of actually creating the course itself.
Yes, it’s more fun to focus on the end result of having a course that’s selling, but course creation will likely be the longest part of the whole process.
It was for me, and I got stuck here for months. Sometimes making no progress.
That’s why it’s so important to have a clear objective and plan of how to get there.
Planning your content
Some people are born with the gift of being able to organise things in their mind and create something near-perfect first time.
In the unlikely event that this is you, congrats! For the rest of us, to create a significant piece of content like a course is going to take some serious planning.
How you do that is a personal preference, but at the end of this stage I’d suggest at least having:
- an understanding of your target customer
- a clear idea of the scope of your course, detailing what IS and what IS NOT included
- a list of chapters
- a list of lessons within each chapter
- a list of points to cover in each lesson
The benefit of having a high level plan like this is that it’s very easy to reorganise, add, and delete lessons until you’re happy with the course structure. Once you start writing and recording your course, reorganising becomes much more difficult.
Picking a course platform
Unless you want to create your own system to serve your course to your customers, you’re going to need to choose a course platform. It’s just the CMS system that lets you manage your course content and through which students access it.
This choice may depend on how you want to deliver your course, although it’s likely going to be video which all the platforms support.
Other questions to consider when assessing a prospective course platform include:
- does it offer an existing audience? e.g. Udemy, Pluralsight
- does it integrate with your own website? e.g. Thinkific, Teachable, Kajabi
- what marketing options does it offer? e.g. sales pages, landing pages, mass email
- does it have features for software development courses? e.g. code formatting, syntax highlighting, quizzes
The course platform I use is called Thinkific. I’ve used it to sell 3 courses and I’m pretty happy with it.
Another one I really like is Kajabi, which is more of an all-in-one solution including email marketing.
There are loads of other course platforms available, so do your own research to find what’s going to work for you.
Writing, recording, and editing your course
This is where the pedal hits the metal, and you go from planning to doing.
At this stage you may need to do extra research to plan each lesson, and even write a full script for each lesson to later read and record. Don’t underestimate the power of a script to make your lessons as clear and logical as possible for your students.
Don’t underestimate the power of a script to make your lessons as clear and logical as possible for your students.
If your course includes software examples, you’ll need to create these and potentially make them available to students on GitHub.
Also, create any necessary slides, animations, & diagrams you want to include. This can be anything from a basic set of bullet points and a few images, to carefully animated diagrams to give your course some added juice.
Then you need to record the course, which will likely include these components:
- your voice – use a microphone to record yourself teaching your topic
- your screen – you’ll probably need to write code, run applications, and show documentation. You can do this at the same time as you record your voice or separately. I use screen recording software called Camtasia.
- your face (optional) – it’s an open question as to whether you should include your face in the recordings. You could show yourself talking in a corner of the screen, occasionally switch to a full view of you talking, or not show yourself at all. Figure out what works best for your content.
Uploading your content
This is where things start to get real.
Upload your content to your course platform, add any required text & links, and configure your course layout until it looks like…your course!
Once you’re happy with how your course looks, hold on because there’s still a bit more work to do before you’re ready to launch.
Launching your course
After all that effort creating your course, you’ll want to make sure your course launches with the biggest impact possible. Or in other words, to make sure your course generates as many sales as possible at launch.
Setting up sales pages
This is where you wear your copywriter hat and get into the mind of your prospective customer. Not only does your sales page need to be visually appealing, but it needs to describe your customer’s problem and then seamlessly position your course as the solution.
Personally, this is an area I’m still working on, but it’s very satisfying when you create a page that leads someone to buy your course.
To learn more about this topic go to Amazon and search for copywriting.
Also, the next time you buy something think about what led you there. It’s likely that the same techniques will work for your audience.
Launching to your email list
You should let your audience know about your course in advance of it’s launch to build up some anticipation. If all goes to plan, you’ll be finally offering them the course they’ve been waiting for!
On launch day, email your audience again with more details, linking to your sales page. You can even offer an incentive for buying right away, like a limited time discount or extra bonuses for the first 10 sign ups.
At this point, you can congratulate yourself on your first course launch. 🚀
Typically only 0.5% – 1.0% of your email list will buy your course. That’s why having an audience before launch is so important!
For anyone that gets onto your email list after you’ve launched, you don’t want them to miss out. Set up an automated email sequence to let them know about your course and how it could help them. You can do this using email management tools like Mailchimp and also from within Kajabi.
If this step is successful, you’ll have evergreen sales. These are course sales that come in on a regular basis through your automated content creation machine. That’s the real magic!
As a software developer who also sells online courses, I’ve found it frustrating finding very little content on this topic.
The one article I did find Why Software Developers should create online courses as a side hustle? described how “super easy” it is to create an online course, without mentioning any of the planning, effort, and emotional turmoil you’ll likely encounter.
So this article came in response to that frustration, to connect with like-minded engineers who’d like to create (or already have created) amazing online courses that make a difference to their students.
What course could you make?
If this article helped move you even a small step closer to creating a course, leave a comment to let me know what course you’re planning to make. Also, if you’re struggling with anything in particular then I’d love to hear about it as I might be able to help.