Almost all freelance web developers are doing it wrong. And it’s a miserable existence to endure.
If you awake one day and say “I’d like to be a freelance web developer. Now how do I get clients?” you’re already setting yourself up for failure. Yet nearly everyone who chooses this career path makes this mistake. Like consulting, freelancing ought to be a natural progression of a web developer’s career (though of course, not the only path). Done right, it becomes the obvious next step for someone who has built an extensive professional network, developed finely honed skills, and has an entrepreneurial spirit. But prematurely deciding to freelance for any length of time can severely damage your career and mental health. You’ll feel pressured to take any work you can find just to keep the bills paid and your skills will erode as you crank out an endless stream of cheap WordPress sites. Here’s how to do it right:
Step #1: Obtain full-time employment in web development.
For the readers starting from scratch, this first step obviously is the most frustrating. After all, how do you get experience if every job requires experience? My initial advice is dependent on just how close to zero you’re starting. For those who are self-taught but just lack a bit of pedigree, I would recommend contributing to open source projects on GitHub and building a technical portfolio. Then craft a project-focused resume rather than a chronologically organized one. If you are uncertain about your skills and find the thought of contributing code a bit intimidating, offer to write documentation. Good documentation is critical to the success of every open source project and yet most maintainers are loathe to spend time on it because writing code is more fun. Plus, the ability to understand and explain other people’s code is an exceptionally valuable professional skill to develop.
If you lack the expertise to yet make sense of code, my recommendation would be to consider taking a few classes at a local community college. A well-taught certificate course will help you establish a baseline of skills. A two-year degree may or may not be worth the investment, depending on the content. A four-year degree in “web development” is, without a doubt, not worth either the cost or the time (a Computer Science or MIS graduate from a reputable school is infinitely more employable).
Obtaining full-time employment early in your career, even if you eventually prefer to be a freelancer, is important for a number of reasons. You’re exposed to how a business operates from the inside and will learn what works (and what doesn’t work) on someone else’s dime. Operating as a freelancer can also be a financially precipitous position for even those that are successful. A secure job will provide the opportunity to build up a savings cushion and practice managing personal finances.
Step #2: Start networking like your job depends on it.
I’ve been a professional web dev since 1997 when I first wrote a simple online shopping cart in Perl for a small computer store where I was a PC tech. Over the past 16 years, the biggest mistake I’ve made was spending too much time honing my technical skills at the expense of all other aspects of my career. I’d rather spend hours tangling with the toughest bug than go to a business social event. It wasn’t until my late 20s did I stop discounting “soft skills” as pure fluff.
Spend some effort getting to know your co-workers; especially those whom you rarely interactive with and don’t know well. Chat with clients about more than their immediate project. As the level of trust builds, ask about other aspects of the business you might be able to assist. Attend local user groups, meet-ups, and developer conferences. These events can require a significant time commitment but are invaluable because everyone is there specifically to meet you (and people like you.) MeetUp.com is a popular resource that I’ve used with success, as are searching for local groups on LinkedIn.
This networking is laying the groundwork for your eventual freelancing and is absolutely necessary for your success. A moderately-skilled programmer who’s really good at communicating with people is worth at least 3-5x more to most businesses than a brilliant programmer who prefers to be left alone all day. Schmoozing increases your “social surface area”, which leads to more professional contacts and more work, but also improves your ability to translate between tech-speak and business-speak. Your goal is to become known as someone who solves problems, rather than the “web guy.”