Let’s face it, becoming a freelance programmer has some major perks.
For starters, it can be done from anywhere in the world (Maldives, Ibiza, anyone?) or it can be done right from the comfort of your own home. You also have the immense freedom to control your schedule, your hourly rates and also choose which projects you want to take or leave.
Freelance techies are always in high demand, especially web developers, software programmers, designers and the like. Small companies often don’t have the workload to hire a programmer full-time, so they build relationships with freelancers and work with them as needed.
Larger companies also take freelancers for special projects having niche skills so that they are relieved of the burden of finding out talent. So the good news is you have plenty of options, and with the right skills you can carve out a nice little niche for yourself.
But there are some negatives also. When it comes to freelancing, the world becomes an oyster and you are competing with thousands of developers worldwide. Companies can very well hire a freelance programmer who can do the same job at a much lower price. Also, the technology changes can be quite disruptive and a freelance techie not updated as per the times is no less than an outdated dinosaur. So there is this great risk of you ending up being an easily replaceable commodity.
This brings us to the million-dollar question: How do I become a successful freelance programmer?
The short answer is creating a personal brand.
Your personal brand portrays to your clients who you are, what you stand for and what sets you apart from other freelancers. Another way to think of it would be what you’re known for or what you’d like to be known for. And a personal brand is one of the most critical things to have in a competitive industry where reputations are built and destroyed by what you are known for, rather than how you do it.
And here are some ways to carve a unique niche for yourself and be a successful freelance programmer.
Don’t quit your day job while starting out.
Get rid of the utopian dream of flipping off your boss and starting your own business on day one. That simply doesn’t happen. It takes months to develop a stable client base and solidify your reputation.
Quitting your day job to pursue your dream can be exhilarating — or terrifying. What might appear heroic or glamorous might soon turn into ashes in your mouth when the stakes go wrong. Besides the financial pressure, the pressure of the society to maintain a certain lifestyle brings us to the breakdown stage far sooner than expected when things don’t work out as planned.
Besides, there are a number of important skills you can cultivate while working with a company.
· You will learn how the business side of how a development company operates
· You will have time to build on the skills which you lack.
· You will learn to work with clients from diverse geographies and cultures.
· You can build up some savings which you will need when making the move to freelancing.
· Development is a small world and you can seriously cultivate a rockstar reputation based on your coding and management skills.
Remember the key for success is planning and a day job gives you the stage, the launching pad on which you can build your freelancing dreams.
Yes, we are in the hyper-connected world of remote development, offshore development, nearshore development, and WebEx meetings, but most business still prefer working with someone who can walk in for a face-to-face meeting.
Here are some local ways you can use to build up your business.
· Make a list of all local businesses and identify the problem areas which they are having on a recurring basis. Reach out to them and pitch yourself, explaining you can help them to rectify the gaps and provide value addition to them.
· Join your local networking events and Meetups. This is a great way to pitch your services to reach out to multiple people.
· Develop partnerships with designers and agencies. In both cases, they are often looking for help when it comes to the implementation or development of niche features or requirements in their existing portfolio.
Remember as a freelancer you need to know the client budget at the earliest. Try to assess the budget of the client at the earliest so that you can weed out undesirable projects which just consume your time and money.
Go Deep Not Wide.
In order to have the superpower of earning hundreds of dollars per hour, you first need to invest a serious amount of time in learning how to code. (No, you won’t become a freelance programmer over the weekend).
While a broad knowledge is good, if you focus first on developing a deep knowledge of one or two areas, you will find the others come easier. However, even if you are writing in the same language every day, you will not get better without making a conscious effort to learn. Learning a broad range of languages gives you flexibility, but you can only optimize your code well by deepening your knowledge. Invest in T-shaped skills where you get a base in multiple languages while getting a deep understanding of a select number of languages.
For example, if you are an SAP ABAP programmer, you can delve into the complete range of functionalities starting from reports, exits, smart forms, adobe forms, and workflows. Look at other’s code. read books and blogs and participate in community network forums to ask questions and broaden your expertise.
Remember, regardless of how much you learn, you will never know everything. The key to great programming is knowing where to find the answers to your questions.
As Jason Tunney rightly says.
“Half the battle in software development is knowing where to look for an answer, and knowing how to read the docs.”
Lastly, be a pro in prioritizing work.
Johann Wolfgang von Goethe rightly said:
“Things which matter most must never be at the mercy of things which matter least.”
While every programmer should learn to prioritize work, for a freelance programmer this habit is non-negotiable as they are on their own and there is no one (no manager, no team leader) to do it for them. Also, there is this constant temptation to finish your personal activities (taking the dog for a walk, taking out children for a movie, and so on.). And by the time you reach the end of the day, you might have no output worth showing for the hours spent. This is the worst situation to be in for any freelance programmer.
That is why business consultant and coach, Brian Tracy, asks us to “eat the frog” first thing in the morning.
“Mark Twain once said that, if the first thing you do each morning is to eat a live frog, you can go through the day with the satisfaction of knowing that that is probably the worst thing that is going to happen to you all day long. Your “frog” is your biggest, most important task, the one you are most likely to procrastinate on if you do not do something about it. First thing when you start working, eat that frog.”
Another way can be to organize your to-do list by the 1–3–5 rule. The gist of this strategy is to take all of the tasks that need doing and split them up.
Allow yourself one larger project to tackle (your “1”), three medium-sized tasks (your “3”), and, finally, five small tasks that are little, easy things to take care of (your “5”).
If you can nail everything in your 1–3–5 list in a day, wind down by prepping your 1–3–5 for tomorrow and so on…
Always remember — think of your priorities, not in terms of what activities you do, but when you do them. Timing is everything. Be reliable: Hit your deadlines, be on time for meetings and video calls. Clients might not notice how you have optimized their application beautifully, but they will notice if you miss a meeting or a deadline. As a successful freelance programmer, you need to be a pro in scheduling priorities and managing client expectations.
As Stephen Covey has rightly said.
“The key is not to prioritize what’s on your schedule, but to schedule your priorities.”