A bit of backstory; I started my company Interphased back in 2010 to become a freelance web developer/designer. As of now, I've not had a "real" job for over 5 years and I consider not starving to death over that time to be quite an accomplishment. I've never used any freelancing websites and landed all my clients locally through word of mouth. Over the past few years I've learned some things, so I thought I could pass on some of my knowledge to help other future freelancers also not die in some way.
Let's start at the beginning.
Get committed (...or force your lazy ass to work)
To be successful you're going to need to get committed to what you do, but sometimes it's very difficult to maintain that commitment. So, for all you other lazy bastards out there I've found a few ways to force yourself to get to work.
Tell your close friends and family
I don't know about you but I can't always trust myself to get work done. It takes a lot of self-motivation. When that runs out you're going to need something else to keep you going: fear. By talking to your close friends and family about your desire to become a freelancer you may get some nice words of encouragement from them, but more importantly you'll receive the fear of failure. Whenever you see them, they will want to know how you are doing. The guilt of not working as hard as you can to succeed will help drive you at times when you lose motivation.
Register an official business
Get official and register your business. The easiest and cheapest way is to become a sole-proprietor. You can register it under your name, or better yet, some other interesting name that has an available .com. If your company is legit it makes you feel like your work is for more than just yourself.
Naming your company
The most important thing I've found about naming a company is not that it has to be somehow related to what you do, but that it has to be easy to say over the telephone. It needs to be easy to say, spell, and remember. My company, Interphased, is apparently none of those. I've had a million misspellings and mispronunciations. It makes it more difficult for people to find your business if they can't Google it. If you think your business name is more confusing than mine, I'd recommend thinking of something else.
When you register your business you can apply for a tax number. This can be a really important thing to have since some clients will not be able to work with you, even if they want to, if you do not have this number. It usually depends on how large the client is. You may also come across as an amateur if you do not have one.
Get a business bank account
You need to get a business bank account to get paid. Yes, this sounds pretty obvious, but some people don't realize how important it is. If you want to receive cheques to your business (protip: you do, there are no fees on cheques and many businesses still only pay via cheque), you need a bank account registered under your business name. You've also got to keep your shit organized between personal expenses and business expenses; having a separate account is the easiest way of doing that. Telling someone they can make a cheque out to your company is infinitely more professional than a cheque made out to you.
Budget your money
You'll need some money tucked away for the dry periods. Make sure you know what your living expenses are and set aside at least 6 months worth, but more if you can. Once you get going it's unlikely you'll need all of it, but you never know. Sometimes after completing a project it can take a really long time to get paid. Some months you don't get paid at all, and others you get paid 3x your average. It evens out in the long run. These savings may also be your last resort to save your ass from the tax man.
Tell everyone you know
After setting up your business you now need to get the word out and tell everyone you know that you're available for work. This is also known as free advertising, or, I guess most people call it networking. Tell your friends, family, extended family, classmates, professors, make a Facebook post, put it on Twitter, and email your contact list. If you've got business cards you should be giving them out to just about anyone you meet.
Build yourself up
Looks are everything. When you tell people your available you don't need to let them know your just starting out, unless you think it's important (protip: it usually isn't). They may believe you are more talented than you really are, which as it turns out is exactly what you want. You want to work with people who want to work with professionals. So use we instead of I, use a firstname.lastname@example.org email address with your credentials in the signature, and do what you can to look important. Just try to stay reasonable.
Make yourself professional
This also goes along with making yourself seem larger than you are. You are now the face of your business at every social setting, and you must sell yourself. Wear some nice clothes in any business-potential social happening and always carry business cards on you. You've got to talk like you are the CEO because guess what, you are the goddamn CEO.
Be super friendly
It pays to be well liked and friendly. Learn to talk to people like human beings. Offer advice in a kind and constructive way. Don't talk down to people. Use your manners. Honestly, nobody wants to work with a dick.
Build a bunch of shit
You're going to need to build up a small body of work that you can show off before you can get any decent paid work. Start with a few smaller things just so you can get them done. Please note that this does not mean you can take on clients for free.
You just need to go for volume here to start so you can build up your portfolio. Your work will suck; get over it. You'll have time to fix it later when you're getting paid for it. You should be able to complete these projects in a day or two each. Build a bunch of fake company websites or something if you have no ideas. The reason you just want to churn them out is because you honestly never really know what people are looking for, so you need a lot for the window shoppers. I've landed clients based on details I never thought anyone would hire me for. For example, I got one client because they liked the stock photos I used on a website... Yeah, really.
Open source contributions
It's actually relatively easy to get going with open source work if you can find projects that need assistance. Think of these projects like internships; you can learn, gather experience, and build up some work. I personally haven't found clients this way, but I know some people who have. I feel like if you go this route you'll connect more with other developers who may be able to give you some leads or subcontract work. However, if you do work on some good projects, or if you create your own popular repositories, you may be able to get some decent full-time job offers instead.
Your very own website
Now that you've got a few projects under your belt the best thing you can do is build a website to show them off. It's the primary way to get people to actually see what you do. Without it you'll have a hard time convincing anyone to work with you, especially if you want to be a web developer or designer. Here's something they don't tell you though: your website doesn't actually have to be good. You don't even have to be the one who made it. Sure, it'll help with your experience to have done it yourself, but in the end it doesn't matter. You can even customize a cheap theme on themeforest.net if you'd like. The important thing is to get something online. Don't take up all your time making an amazing website, because if you're anything like me, you won't like it anyways and will only see it for its flaws. I ended up rebuilding my website 3 times before giving up and customizing a theme. Trying to get it perfect ended up taking up too much of my time.
Landing your first client
For some people this is the easiest part, but for others this can be the most difficult. It mostly depends on how many people you know and whether you live in a booming city or not.
For me, my first paid work was through a subcontract from a university friend in Toronto. It wasn't much money, but back then it was just amazing to get paid for anything. The first paycheque empowers you, but it also lets you afford some vegetables to put in your ramen.
Unfortunately, there is no definitive way to land your first client, and a lot of it will come down to luck. Since you followed my earlier advice and told everyone you know about your work, you've exponentially increased your chances. Keep building up a portfolio, keep telling people about your work, and eventually someone will come knocking on your door. What you do next is also very important.
Don't sell yourself short
You've been talking the talk, now you've got to walk the walk. You are more valuable than you think. Remember, they are coming to you for your expertise. Don't fuck up your first potential client by selling yourself short.
Here's a good thought experiment: let's say you're at the store looking for a product. You find 2 products that are similar in almost every way except one is more expensive than the other. Which one appears to have more value? The cheaper product must be missing something the more expensive one has, right? So, if you have the money, you buy the expensive product because you trust it and believe it to be better. Well... clients think the same way. The ones that have the money to spend (protip: those are the ones you want to work with), will not try to save their money by going with the cheapest option. They want someone they can trust, that has value and experience, that they know will succeed and finish their project to a high standard. If you're the poor developer with the lowest bid... Good luck trying to convince them that you're still the best option.
Never work for free
In my experience, the less a client wants to pay, the more trouble they can be to work with. A bad client to start with may turn you off freelancing altogether, which is really unfortunate because there are a lot of amazing clients out there too. So what do you think happens if you work for free? You get the worst clients. The bottom of the barrel. The ones that will promise you a percentage of their soon-to-be successful company because all they need is your help, and they're doing you a huge favour by letting you work with them. For free. Yeah, right...
In any case, shit does happen. If somehow in your infinite wisdom you do manage to find yourself working for a client for free, you need to provide them with a bill regardless, just include a 100% discount. If you do not they will keep coming to you for free work and will not understand that your time is worth money.
Think of the morons
Here's another thought to keep you from doubting yourself: do you remember all those terrible websites, articles, or whatever your field is, that you saw that made you think,
"Wow, would someone really pay for that?"
Well... Yes. They probably did. Someone had to make it too, and do you honestly think that they can produce better work than you? Fuck no. Give yourself a pat on the back right now because you're the one reading this post trying to improve yourself. Don't sell yourself short, if they can get paid for that shit then you can get paid too.
Get some recurring clients
So, you've now finished working with your first client and your ready for more. Congratulations, you're no longer a freelance virgin! And, just like any virgin after the first time, you've gained a lot of confidence. It might have been a bit sloppy with a lot of feeling around in the dark, but if you did well, and hopefully you did, you may get more work from them or they may hook you up with their friends, colleagues, partners, and etc. From here you've got to keep pleasing everyone until you find yourself with some really awesome recurring clients.
For me, I've been very fortunate to have some clients that are flexible enough to give me more work when I need it, or more time when I'm overloaded with other clients. They become your friends, and I wouldn't be here today without them.
Never stop innovating
The more you learn, the more you can increase your rates. If you keep building and learning you'll also put yourself ahead of other freelancers. When I started out I was primarily a web designer, but as I learned more I became a web developer. Now, I consider myself more of a web application architect that encompasses everything to do with building and launching new online products and services.
Become a specialist
This is another very important thing that took me a while to learn. You can be a jack-of-all-trades, but you'll never get paid as much as the master of one. This doesn't mean you have to turn down work if it's different, it just means you advertise that you are an expert at one.
Clients will want to work with whoever fits their agenda closely. If you jump around between a bunch of different types of work, you may not be seen as much of an expert compared to someone who specializes in one field. Even if you aren't what they are looking for right now, they will remember what you specialize in and contact you in the future if anything comes up. It may seem like you are limiting yourself but you'll be bringing in more people in the long run at a higher pay.
It's quiet... too quiet...
Have a lull in your work? Build some personal projects. Launch a web app. Contribute to some open source work. Just do something to improve yourself and your business. Consider the silence an opportunity to innovate.
That's a wrap
If you've read this far I sincerely hope my post has been somewhat helpful for you. I wanted to pass on some of my knowledge and experience to help freelance dreamers take the plunge. It's an incredibly freeing and rewarding type of work. Have confidence in yourself, and you too can keep putting food on the table.
If you have any questions or comments please don't hesitate to let me know in the comment section below. I'd be thrilled to hear about your thoughts and experiences, and would love to offer any personal assistance to those that need it. You can also send me a message on Twitter.
Thanks for reading.