Don’t want to read the whole article? Here’s a short summary of the steps:
- Motivation: Watch the free video about the state-of-the-art of Python freelancing.
- Training: Reach Python freelancer level (~40 hours).
- Confidence: Complete 3 archived Python projects for learning.
- Platform: Create accounts at Upwork and Fiverr.
- Credibility: Get your 5-star ratings for small $15 Python projects.
- Scale: Ladder up your hourly wage.
- Pro tip: Create your personal website and drive paid traffic to it.
Do you want to earn money as a Python freelancer? But you are just starting out in Python? This article leads you step-by-step through the adventure of becoming a Python freelancer. Learn about the exact steps you need to do to become a Python freelancer – starting out as a Python newbie. Without losing any time, let’s dive into the 7 steps of becoming a Python freelancer.
Table of contents:
- How much money ($$$) you can earn as a Python freelancer
- How to gain confidence that you can give value to the marketplace?
- How to start learning the basics of Python?
- How to make yourself independent from freelancing platforms?
- How to become an attractive freelancer?
- How to find practical Python projects for learning?
- When to stop learning and start doing real Python projects?
1. How much money ($$$) you can earn as a Python freelancer?
As a Python developer, you can expect to earn between $10 and $80 per hour with an average salary of $51 (source). I know the variation of the earning potential is high but so is the quality of the Python freelancers in the wild. Take the average salary as a starting point and add +/- 50% to account for your individual expertise.
If you work on the side, let’s make it 8 hours each Saturday, you will earn $400 extra per week – or $1600 per month (before taxes). Your hourly rate will be a bit lower because you have to invest time finding freelancing clients – up to 20% of your total time.
- Write down how many hours you can invest per week.
- Write down your goal hourly rate.
2. How to gain confidence that you can give value to the marketplace?
Before becoming a Python freelancer, you have to learn the very basics of Python. What’s the point of offering your freelancer services when you can not even write Python code?
Having said this, it’s more likely that you live on the other extreme. You do not want to offer your services before you don’t feel 100% confident about your skills. Unfortunately, this moment never arrives. I have met hundreds of advanced coders, who are still not confident in selling their services. They cannot overcome their self-woven system of limiting believes and mental barriers.
Can I tell you a harsh truth? You won’t join the top 1% of the Python coders with high probability (a hard statistical fact). But never mind. Your services will still be valuable to clients who either have less programming skills (there are plenty of them) or little time (a big part of the rest). Most clients are happy to outsource the complex coding work to focus on their key result areas.
Regardless of your skill level, the variety of Python projects is huge. There are simple projects for $10 which an experienced coder can solve in 5 minutes. And there are complex projects that take months and promise you large payments of $100 to $1000 after completing each milestone.
You can be sure that you will find projects in your skill level.
- Take your time to browse all the archived Python freelance projects.
- Select 3 projects that you think you can solve in the price range ($10-$50).
- Write down in which direction you want to go first (keep the projects in mind that you just selected): data science, web scraping, application development, scripting, …
3. How to start learning the basics of Python?
Before you start with practical projects though, you should invest 10-20 hours in refreshing your basic Python skills. This is not much of a time commitment – after all, you are learning a high-income skill. You can learn a lot in 20 hours if you do it right. The key is to learn probabilistically by mastering important subskills first. Watch this great TED talk about what you can achieve in 20 hours.
So what’s the best way to learn probabilistically? Simple. Use the 80/20 principle. This famous principle states that 80% of the causes lead to 20% of the effects. Get rid of the 80% low-value tasks and focus instead of the 20% of causes with 80% of the effects.
The best way to learn 80% of the skills in 20% of the time, is via Python cheat sheets. I have summarized the 5 best Python cheat sheet in this article. Download the cheat sheets and spend your first 20 hours in learning them thoroughly. Or even better: print them and post them to your office wall.
- Download the cheat sheet: Python 3 Cheat Sheet.
- Subscribe to the FREE cheat sheet course: The Ultimate Python Cheat Sheet Course (5x Email Series).
4. How to make yourself independent from freelancing platforms?
Freelancing platforms offer you convenience and speed in starting your own freelancing business. Examples are Upwork, Freelancer, or even Fiverr. Some of those platforms (e.g. Upwork) will manually check your profile, so it will take some time to sign up. The reason is that these platforms receive thousands of applications every day. They have to be selective to guarantee a certain quality of service. I have read about many cases where Upwork rejected freelancers with attractive profiles.
On the first impression, these platforms seem to be very attractive for your emerging freelance business. But be careful! Many existing freelancers heavily rely on these freelancing platforms. By using a platform such as Upwork, you make yourself vulnerable. Your income depends on the decisions of the platform owners. And don’t think they have your best interest at heart. For example, Upwork already takes a 20% cut (!) from your hourly rate, just for brokering your services to potential clients. And their cut is pre-tax. In other words, you are working the first 12 minutes of each hour for Upwork (and the next 28 minutes for the government).
What are some risks of depending on a freelancing platform? The platform owners can suddenly increase their cut. They can throw you from the platform for no reason whatsoever. They will stop sending clients your way as soon as their algorithm decides that you are not the optimal fit for a client project. The main problem is that you don’t control your customer base. On the back of ONLY these platforms, you can not build a robust and sustainable business.
So what’s the alternative? If you are serious with becoming a Python freelancer, setting up your own website is the way to go. This allows you to offer your services to clients all over the world. You establish trust and clients perceive you as a professional freelancer. Use freelancing platforms to attract clients, but retain them for yourself.
To increase your conversions, add testimonials to your website. Keep collecting them during each of your freelancing activities. Of course, this is a bit harder than just setting up a freelancing account on Upwork. But it’s a much more sustainable foundation of your freelancing business. A nice plus is that your professional website sets you apart from your competition. It increases your chances of getting clients.
Only after creating your own web presence, you should use these platforms to get new clients. Make sure to always refer to your professional website within any project application.
How do you retain clients beyond the first project? Focus on always over-delivering to new clients! Make them happy. Ask them to contact you directly the next time they need a similar service. And give them a special offer for the next freelancing service. Finally, ask them for referrals and testimonials after the job is done.
As you establish a growing client base which you control, you will find yourself using Upwork, Freelancer, and Fiverr less and less. Because of that, your profit margin will grow over time. Not only will your income increase, but it will also stand on a solid foundation. You own the foundation of your business (your client base).
- Get a meaningful domain such as (e.g. “python-freelancing-services.com”).
- Create WordPress page introducing your services.
- Create profiles on Freelancer.com, Upwork.com, and Fiverr.com.
5. How to become an attractive freelancer?
In the last months, I got a lot of experience using freelancer services as a client. My goal was to improve the Finxter.com website to test your Python skills and my book “Coffee Break Python”. A similar pattern emerged every time I posted a new project description. A few hours after posting the description, several freelancers applied. The competition was fierce. But within minutes, I had subconsciously chosen an inner circle of high-potential candidates. There was not one case, where I chose a freelancer who could not immediately pass the entry barriers of my subconscious mind.
You want to be at that inner circle. To get there, you must be appealing to the subconscious mind. The following factors will give you a psychological advantage when competing for a freelance job.
Use the power of reciprocity.
“Reciprocity is a social norm of responding to a positive action with another positive action, rewarding kind actions.”Wikipedia
This principle is the most important insight which I gained from my own experience of hiring freelancers.
For example, I published a project to check the Python code of my recent Python programming book. The project description stated that I intended to edit the code to make it more Pythonic. This project was important to me because it promised to improve the quality and readability for advanced coders. Immediately, several freelancers applied for the job. They went into “competition-mode” bragging about their credentials. They tried to convince me that they are the perfect fit for this project. I selected a few candidates but was not 100% sure about any of them.
Towards the end of the application phase, a new freelancer registered interest with an unusual application. Instead of talking about his credentials, he focused on the project itself. He dived right into the project and submitted annotated and corrected Python code snippets – improving upon those I provided as sample files. He gave them to me for free. Of course, I knew that he purposely used the reciprocity rule to get the job. Yet, I was immediately hooked and felt a strong obligation to reward him for his work – and gave him the job.
This is the power of the reciprocity rule.
Don’t hide your titles and credentials.
They still work. When you apply for a job and you have the title “Prof.”, “Ph.D.”, or “MSc” in a relevant area, you have gained immediate credibility. In most cases, it will set you apart from the other freelancers without strong credentials or titles.
Note that credentials are not limited to the academic world. You should also highlight your practical achievements such as your websites, shiny projects, or certificates. Be creative.
Invest time into your profile picture.
You wouldn’t believe the powerful impact of your profile picture on your chances of getting the job. Many coders don’t focus too much on appearance. Don’t do this. Smile, dress professionally, use a natural image background. Need insider tips? Check out this article from freelancer.com.
Don’t compete on price.
Forget about it. Competing on price is a race towards zero. You can not win. There is always a cheaper freelancer and some of them WILL apply for the exact same projects.
It’s true, some clients look for the cheapest freelancer who barely finishes the task. But most clients will choose quality and predictability of the result over price. What would you do if you were a business owner who works 60 hour weeks to push his website? You love your baby and don’t want a cheap freelancer to mess around with it. A freelancer that offers a service at a very cheap rate is also perceived as shipping cheap quality. After all, you ain’t cheap if you are good.
So what is the value of an hour of your work? Multiply this number with 1.5. Do this for two reasons: You tend to underestimate your value to the marketplace, and you should constantly push yourself to improve (that’s what you want, isn’t it?). Now you have your number. NEVER work for an hourly rate below that number! And keep pushing it – the sky is the limit!
- Collect Python certificates. For example, use our web app Finxter to certify your Python skill level.
- Get an awesome profile picture.
- Give something to each potential client. For example, invest some time creating a first prototype solution. This will greatly improve your acceptance rate and ultimately save a lot of time!
6. How to find practical Python projects for learning?
This is the most important question for you as a beginner. Most developers know that they should never do premature code optimizations. But they do premature skill optimizations all the time. Don’t do that. Laser focus your time to learn the most important skills with the highest priority.
I’ve written an article which proposes you 10 highly practical freelancer projects on which real freelancers worked to earn money. Again, find highly practical code projects for any skill level at freelancer.com/archives.
These archived freelancing projects are goldmines. Invest time to study them carefully. If you do so, you will learn about the practical Python problems that clients seek to solve. You will learn about the patterns of Python problems “in the wild”. This knowledge will guide you in your efforts of becoming more valuable to the marketplace. In contrast to millions of other aspiring coders, you will develop a practical Python skill set tailored to your interest level.
- Browse the archive of freelancing Python projects.
- Find projects you like in your difficulty level (read my article about 10 highly practical freelancer projects with which real freelancers earned money).
- Complete these projects.
7. When to stop learning and start doing real Python projects?
Start with real projects immediately. Use the freelance.com archive to find practical projects if you do not feel confident, yet. But don’t wait too long – even if you are a beginner programmer. Set aside 10 minutes per day or so to watch out for interesting projects. When you have solved archived projects, chances are that clients have similar projects that they want to outsource. To drive traffic to your own freelancer website, you could write a blog post about the topic. You could even drive traffic via Facebook ads if you need to. Try to establish your own brand as soon as possible. Learn with real clients. Learn the practical skills first. What are the practical skills? You can only learn them by working on real projects. Don’t lose any more time. Start today!
As a Quora user puts it: “rank communication before development skills”. It’s critical for your success that you develop these communication skills in a practical environment.
- Take the first project you think you could solve. Then invest all your time and effort into cracking this project. Learn on the way. A sure way to improve and build a relationship with your clients – and make money in the process.
Where to go from here?
Congratulations. By reading this article, you are one step closer