How to Teach Programming Online and Earn Money

A lot of people are losing jobs and struggling to earn money these days. If you’re a programmer trying to find ways to earn money with your skill, I think this article would help you.

I’m writing this article to help people who are in search of a way to earn money with programming. I have the experience of earning money via teaching programming. In this article, I want to share the same method with you in 8 simple and practical steps.

Before we jump in, I want to let you know that you can teach programming even if you’re not an expert. You just need to be one step ahead of your client.

Many people in the world don’t know what programming is but still want to learn it. Some people don’t even know how to print a “Hello world” and need someone to help them. If you are ready to help, you can make money by providing value to these people.

So, let’s see how you can teach programming and earn money in simple steps.

1. Set Everything Up

First of all, you need to know at least the basics of a programming language. If you don’t know anything about programming, spend some time learning the fundamentals of a programming language. If you know the basics, you will be able to teach it to people who don’t know anything.

Now, you need to go and signup for an online platform for tutoring. There are several online platforms available where you can teach programming. For example, TeacherOnWyzantTakeslessons, etc., are some of the tutoring platforms I know. There are many more such platforms. If you do some research, you can find several options.

Sign up as a tutor for one of these platforms. Then, you need to create a tutor profile that can attract clients. List your skills and qualifications in the profile info section. 

Then, you need to write one or two sentences about your unique characteristics. What is your USP(unique selling point)? You need to have a USP to stand out from the rest of the people.

I would suggest you focus on a particular technology only and market yourself as an expert in that technology. For example, you can market yourself as a specialist in a particular programming language or framework.

Specialization is really important in programming. You need to be the big fish in the small pond, not the small fish in the big pond. 

You may need to set an hourly rate when you create your profile. I would suggest you start at 30$ per hour. The rate can vary according to your circumstances and geographical location. 

I started with a very less rate since the cost of living is less in my place compared to countries like the United States. So, the rate can vary according to different factors.

Start with an average rate. Later, when you get more clients, you can increase the hourly rate as you wish.

You can check out my profile on TeacherOn.

In this profile description, I used practicality as my USP. I know many people might not like this description. But, I’m sure that some people will be looking for a profile like this.

The first client I got told me that he was impressed with the profile, and was exactly looking for a person to teach him programming practically and simply.

If you don’t like this description, no problem. You can create a marvelous profile for yourself that focuses on your unique selling point. Take some time to think about unique ideas and come up with a great profile description.

If you have a blog or a portfolio website or a Linkedin profile, do mention them here. These things will add more credibility.

Don’t forget to add a nice photo of your smiling face. That is very critical in building authority.

2. Attract Clients

The next task you have is to find someone who’s having a burning problem. Some people are looking for someone to teach them programming or help them with their programming assignments, etc. There are several clients on online tutoring platforms. You need to find them.

Obviously, if you have a good profile, you’ll attract more clients. However, having a good profile isn’t enough. It might be difficult to get the first few clients.

You need to look for tutoring opportunities on online platforms and apply for them. Apply for opportunities that match your interests. When you apply for more opportunities, you’ll get in front of more clients, and the chances of getting a client will increase.

Some clients will come to you asking for help if you have a good profile. I’ll show you some examples from my experience.

python client2
Python Client

Even if you didn’t get any clients at first, be a little bit patient. Apply for as many opportunities as you can. Once you get a few clients, your ratings will increase, and it will be easy to get more clients in the future.

3. Find a Solution to the Problem

When you get a response from a client, you need to evaluate his/her problem and do some research on it. Find a solution to his problem and propose the solution.

For example, say someone’s problem is to learn web development to do a coding assignment. Then, you need to evaluate the problem and propose a solution. Tell him that you can help to solve this problem by teaching HTML and CSS. Your proposed solution should convince the client.

4. Settle the Payment

You need to deal with the money before you even start teaching. Don’t tell the client to send money only after the classes are over. That is a bad strategy. Tell the client to pay you before you start the sessions.

At least, you can ask for an advance payment of a certain percentage of the total money so that both you and the client will be serious about the classes.

If you don’t want to ask for an advance payment, at least make sure that the client signs an NDA form or some kind of agreement so that they are legally compliant to pay you.

So, settle the money things before the classes begin.

5. Do Basic Preparations

You can accept a client even if you don’t know everything about solving their problem. But, you should invest some time to do research and study.

Learn about all the technology and tools needed to solve their problem before the class begins. This is really important. You don’t want to go to the tutoring session underprepared. Keep a notebook where you can write the essential things needed.

That doesn’t mean that you need to know everything about technology before teaching clients. You can use Google while teaching and be honest about your knowledge. Being honest about yourself is better than acting like an expert.

6. Schedule Classes and Deliver Value

Now, it’s time to provide value. Schedule a video conference or an in-person meeting if possible. I use Skype for tutoring, and it’s very easy. You just need to do a video conference, and there is an option to share your screen.

You can do all the coding on your computer and show that to the client while teaching. Also, you can allow the client to share his screen and do coding if needed.

To do this, make sure you are good with the tools. A laptop with Skype software, an Internet connection, and an IDE to code would be enough.

Make sure you have a good earphone or microphone so that the audio would be clear. Also, sit at a place where there is enough light so that the client can see your face.

If you want to use slides, that’s cool. However, you can teach in any way. After a session is over, give the client some small assignments or things to learn.

7. Keep the Client for More Classes

If you do a good job with the first few classes, there is a high probability that the client will be interested to learn more from you. So, you need to keep that in mind.

Help the customer as much as you can and provide value. If you’re genuine about helping the client, you’ll get a reward for it. You can tease a little bit about the advanced things that you can do.

For example, when you finish the Python basics class, you can show the clients the web apps that you built with Python and Django. That way, the client would want to learn Django as well. Hence, you can keep that client for some more time. It’s easy to keep existing clients than to find new clients.

8. Ask for Feedback and Testimonials

When you finish the sessions for a client, make sure that you ask for feedback. You can make a web page for feedback submission or do it in any other way that you like.

Feedback will be really helpful for your growth as a tutor. You can welcome healthy criticisms and use that to improve yourself.

Also, ask the client to leave a rating for you on your profile. A short testimonial with 2-3 sentences would be really valuable, especially when you look for new clients.

Now, you and the client part ways. You can repeat these same steps again and again to get more clients.

One thing I would suggest is to create an Excel sheet to track the income that you’re getting from clients. Tracking money is a good habit, and it will encourage you to make more income.

What To Do Next?

Don’t leave this article without doing anything. I want you to take action. You’ll be amazed to see how easy it is to get tutoring clients and earn money.

If you want a little more information, check out this article that I’ve written for Simple Programmer on the topic How To Teach Programming and Earn a Living.

I hope this article was valuable to you. If so, let me know your thoughts in the comments section below. Feel free to ask if you have any doubts or queries.

I would appreciate it if you would be willing to share this article. It will encourage me to create more useful articles like this.

Stop procrastinating. Take action!

Ashwin Joy

I'm the face behind Pythonista Planet. I learned my first programming language back in 2015. Ever since then, I've been learning programming and immersing myself in technology. On this site, I share everything that I've learned about computer programming.

6 thoughts on “How to Teach Programming Online and Earn Money

  1. Am done with basics on python programming but have no idea on where i can perfect them practically! Any advice please?

    1. If you want to practice coding, go to and solve problems.

      You can also check the following article to find some more options:

Leave a Reply

Your email address will not be published. Required fields are marked *

Recent Posts