Freelancing is the act of working for different companies at different times rather than being permanently employed by one company.
There isn't a singular reason to why people choose to freelance but here are a few:
- Work Remotely
- Control over your schedule
- Use the time, that would be spent commuting, to do the things you love
- Be your own boss
- Extra income
The first step in becoming a freelance developer is to identify the arena you want to operate around.
What I mean by arena is, instead of trying to build everyone in the world a SPA. Narrow it down to building apps or software for Retail stores, Sports Leagues, or Restaurants.
I read an article once that put it like this:
You could be the dev that goes around fixing every problem you encounter, and yes make money while doing so.
The problem is, although you've been solving issues and making money, you haven't become better at making e-commerce systems because only 1/5 of your clients needed an e-commerce set up. Only 2/5 of your clients needed a social app, so your skills haven't improved much in that area either. And the last 2 clients needed PHP websites which you'll never use again.
You made money, yes, but you did not create more value for the next customer.
Now let's take a look at the next dev. He only had 3 jobs but they were all related to chatting through social platforms. He now knows how to create a chat system alot easier, and has had 3 iterations to continuously improve in that arena.
He will now be able to upcharge for his service because he has been able to add more value through iterations!
This is what you want to do. Find an arena and stick with it. You can always decide to switch if you don't like it.
This is the hardest step, anyone can build someone software, very few can build solutions.
To identify a problem in a certain arena, you must talk with someone who lives in that arena. While you may be able to identify problems you have with something, that doesn't necessarily mean that's how everyone else feels.
Reach out and get close to someone who lives in the arena you want to help, and start asking questions. Ask what are some of the biggest headaches they deal with on a daily basis? There is no magic formula for finding problems, you must have patience and open ears at all times.
After you have identified a problem in set arena, you want to create a mock of the idea you have in mind. The last thing you want to do is create a machine that cuts bread when all the baker wanted was a knife. This will save you ALOT of time and frustration.
Take your mock to the person you've been in contact with and ask if that is what they had in mind, collaborate as much as you can, you are not the expert of this problem they are.
You've identified a problem and made a mock that received good responses. Great! Now it's time to code. This is the easy part. Take the research and knowledge you have obtained and created the solution!
Take your solution to whomever you've been in contact with and let them know you'd like for them to try it. Give it to them to try for a week for free, through that week you'll find problems you hadn't thought about, fix them then return with the polished version.
If you've effectively solved the problem, the solution will sell its self.
Freelancing can open doors, move money, and create passion. But for any of these things to come true, you must be willing to work hard.
The road is long, but with perseverance, it can be very rewarding.
Thank you for taking the time to read and if you have any suggestions please reach out via twitter.