I get asked quite often how I became a freelance web designer, and what advice I have for others who want to do the same.

Below I’ll describe not only the technical skills you’ll need to become a web designer, but also the complimentary skills you should master to help you stand out and get hired consistently in a crowded market.

Before we dive in, a little about my career…

I started hard-coding my own websites fifteen years ago. I consider myself mostly self-taught, though I did study Multimedia and IT in college in Ireland, graduating in 2007 with a first class honors. After college I somehow managed to convince a university in the US to sponsor my visa and hire me as a web designer for three years. I left that job so I could travel the world. For the past twelve months or so, I’ve been making a living from freelancing. I started out charging $30 an hour, and just recently raised my rate to $150 an hour. I haven’t pitched a client in months; nowadays, they always come to me, either via this blog or referrals.

Alright, let’s get to the good stuff. Here’s what you need to do to become a successful freelance web designer.

1. Learn how websites work

HTML and CSS are fundamental. Learn them well via a site like Codecademy. Don’t rely on the likes of Dreamweaver to write code for you. That’s a fast track to trouble.

You should also be familiar with…

  • At least one server-side programming language (PHP is probably your best bet).
  • JavaScript (jQuery is pretty easy once you know CSS).
  • Databases (knowing a bit of SQL and how to navigate phpMyAdmin will save your ass on numerous occasions).
  • Content Management Systems such as WordPress, Drupal and Joomla. I use WordPress for pretty much everything these days.
  • RSS and mailing lists (Aweber, MailChimp, Feedburner).
  • Social media (Twitter, Facebook, etc.)

Not only do you need to know about each of the above components, but you also need to know how they fit together. This will come with practice.

I highly recommend you set yourself up with a web hosting package that allows you to host multiple websites, and then start practicing your ass off. Build a website about each of your hobbies, get used to different layouts, try to make random tweaks, see what happens.

2. Learn to troubleshoot and solve problems

I believe this is one of the things that sets me apart from other web designers. I’m pretty good at troubleshooting tricky problems and coming up with clever workarounds when all else fails. I’m also stubborn relentless, never wanting to rest until I figure out a solution.

Here’s how you can develop this skill as a web designer…

  • Learn how to use Google Search. This sounds so easy but I’m constantly amazed at how many people end up stumped when the solution they need is just a well-phrased Google search away. See here and here for tips on how to google better.
  • Define the problem and brainstorm solutions. Do all this in writing. I often figure out a solution to a frustrating problem while describing the issue in an email to the client.
  • Process of elimination. Gradually remove layers of complexity, testing as you go until the problem disappears. Then add back each layer until you can pinpoint exactly what file or chunk of code is at fault.
  • For issues related to HTML and CSS, learn how to use Firebug for Firefox, or the equivalent in other web browsers.

3. Learn about usability

Good web design is mostly about usability. You want to build websites that are easy for both your clients and their customers to use. Focus less on making your websites pretty and more on making them usable.

Two big recommendations here…

4. Sharpen your communication skills

I often feel that my clients are paying me more for my communication skills than my web design skills.

I’m nowhere near the best designer in the world, nor am I a great programmer, but I’m better than most when it comes to figuring out what a project entails, setting expectations, updating clients on my progress, showing them how to use their new sites… that kind of stuff.

Here are a few things you can do to ensure good communication with your clients…

  • Stick to these recommendations for e-mail communication.
  • If you chat with a client on Skype or in person, take notes and follow up via email with a few bullet points summarizing your discussion. Ask them to correct and clarify where needed.
  • Pick out to-do items as you read through client emails and list these in your project diary (more on this later).
  • Set expectations early. Let your clients know how much your services cost and how long each project is likely to take. Agree on a payment schedule.
  • Check in with your clients regularly. They should never be left wondering what the status of their project is.
  • Use screencasts instead of email for how-tos. Way easier to talk a client through something on screen than try describe it in writing. I use Jing (it’s free) to record quick how-to screencasts for clients and they’re always blown away.
  • Always try put yourself in the client’s shoes. Ditch the jargon and explain things in plain English. Try anticipate what questions they’ll have and answer them in advance.

5. Give the client what they need (not necessarily what they want)

Every now and then I talk myself out of a job. For example, I might tell a potential client that they’d be better off setting up a Facebook page for their business, rather than hiring me to build a website for them.

Why do I do this? Because I want to make sure I’m building websites that the clients are invested in. I don’t want them hiring me on a whim and then losing interest in the project a few months later. That’s lose-lose, because they’ll have wasted a good chunk of money and I’ll be left with a lifeless site that I can’t add to my portfolio.

So I make sure to ask some hard questions of my clients up front, before I commit to working with them. If I feel they’ve simply got too much time and money on their hands and aren’t really serious about the project, I’ll pass up the opportunity to work with them.

Along these same lines, you’ll often have to talk clients out of their own bad ideas and convince them to trust your judgement. Many people will ask you to build them a nice website, but their definition of nice might involve seven different fonts and three different colors per paragraph. That might look pretty to their eyes, but it’s up to you to help them understand that nobody above the age of seven is going to read their copy if it looks like it was formatted by the Care Bears.

Two keys to convincing clients to trust your judgement:

  • Send them links to articles posted on well-respected sites which support your recommendations. For example, here’s one you might send to a client who wants you to right align all paragraphs on his blog.
  • Let them know that you have their best interests at heart. They might think they just want a pretty website, but they don’t. They want a website that people will actually visit and read and buy stuff from. Ultimately, that’s what clients are paying you to build, even if they sometimes lose sight of that themselves.

Granted, you’ll probably want to be a little less picky and argumentative with your clients if you’re just starting out as a freelancer. But as you improve your skills and begin to raise your prices, you should also start raising your standards in terms of the type of people you want to work with. More on this later.

6. Work hard

Work hard for your clients. Care about their projects. Go the extra mile.

This often means putting yourself out. I decided to cut short a recent trekking trip because I couldn’t get online in the mountains and I didn’t want emails from my clients going unanswered for too long. Sometimes I’ll miss out on exploring a cool city I’m passing through because I’ll be glued to my laptop working on a client project.

I should note that it’s much easier to work hard for a client when they’re paying you well. Keep that in mind when pricing your projects. If you’re getting paid peanuts, you won’t be all that motivated to work your ass off.

7. Stay true to your word

If a client hires you, they’re essentially putting their trust in you, and you have to take that seriously. Do your absolute best to follow through on whatever promises you make.

I’ve scoured strange cities for hours in search of reliable wifi so I could get client sites launched on schedule. Earlier this week I convinced a hotel reception desk to let me use their computer for half an hour so I could finish up some urgent client work and update them via email.

8. When you mess up, do whatever it takes to make it right

Inevitably, you will make mistakes and disappoint some clients. I know I’ve messed up plenty of times in the past.

A few months back I took on a pretty straight-forward project but neglected to set proper expactations with the client for how long the work would take. When I finished everything up and presented her with a hefty invoice, she wasn’t impressed and told me as much. At first I felt cheated, but when I looked back over our email exchange I realized I only had myself to blame for the miscommunication. So I offered a sincere apology and issued her a new invoice for a much lower amount. I’ve since received at least two referrals from that client.

When you do drop the ball, here’s how you make it right…

  • Accept full responsibility, even if you don’t feel you were completely at fault.
  • Offer a sincere, direct apology. Nothing along the lines of, “I’m sorry you feel that I didn’t meet your expectations.” That’s crap. Try this instead: “I’m sorry. That was my fault. I messed up.”
  • Get busy making it right. Give them a discount or work a few hours for free. Whatever it takes really.

If you ever find yourself in a situation where you’re left with no choice but to break a promise you made to a client, let them know as soon as possible and tell them how you plan to make amends. Don’t wait until they call you out. Most people will be understanding and forgiving if you’re straight up with them.

9. Keep a diary for each project

I do this on Google Drive. I start a new document for each project and drop some notes in there every time I do a chunk of work. The format I use for each entry is as follows:

  • Date of entry
  • Notes (usually a bulleted list describing what tasks I just completed)
  • Next up (to-do list)
  • Time log (session duration, and total time spent on project to date)

I don’t share these documents with my clients. They’re just for me to organize my thoughts, work through challenges, record my decision-making process, track my time, and keep note of any other important data related to each project.

10. Screen potential clients

Avoid working with people you wouldn’t like to hang out with.

This is where my blog comes in handy. Many of my clients come to me via my blog. They like what I write and feel a resonance and thus ask me to work with them. Or they recommend me to like-minded friends who are working on cool projects and need websites to help promote them.

You don’t have to have a blog, but you should have some kind of online presence that will help you attract your ideal clients and repel everyone else. Even a static website is fine as long as it accurately communicates your personality and values.

Also, avoid clients who expect you to work good, fast and cheap. Tell them they can only have two of the three:

  • If you want it cheap and fast, it’s not going to be good.
  • If you want if fast and good, it’s not going to be cheap.
  • It you want it good and cheap, it’s not going to be fast.

11. Pitch

Starting out you’ll probably need to pitch some prospects.

I recommend you reach out to a few select people you really admire, who you suspect need help with some cool project you’d love to work on. Think about your favorite bloggers or online entrepreneurs. Offer to help them for free in exchange for experience and referrals. Focus on how you can help them, not on how they can help you.

If that falls flat, try gain some experience and build up your portfolio via your existing network. If you have a blog, mention on there that you’re now offering web design services. Spread the word on Facebook. Bring it up in conversations with friends and relatives. Start out slow, you don’t need to charge much initially. Let people know that you’re still learning and so you’re much cheaper than other web designers.

Oh, and I’d advise skipping the likes of Elance and oDesk. Everyone’s competing on price in those marketplaces and so you won’t find many clients who will pay for quality.

12. Anything else you’d like to know?

If there’s anything I haven’t covered here that you’d like to know, go ahead and post a question in the comments.

I’d also love to hear from other freelance web designers. What would you add to this list?

UPDATE: Adding a few links below that will be a big help to your freelance career…

  • Great advice from Derek Halpern on what to do if clients try to negotiate you down on price.
  • Excellent free book called Breaking The Time Barrier which will really shift your thinking when it comes to pricing. This one quick read will literally make you thousands of additional dollars a year.