This post is intended for young, competent programmers who are looking to start making their livings as independent, contract programmers - probably high schoolers, college students or recent college graduates. I won't be discussing specific figures, but rather a strategy for coming up with a fair price point.
Getting paid, getting paid
When I was about to begin my first paid programming gig, I was a college senior and I didn't have a clue about how much I should be charging. I knew I was pretty good at what I did - I had a few successes on the App Store and a portfolio of open source projects I was proud of. Even so, I'd never worked as part of a development team before, and had never worked for a top tier client on a high-pressure project. So, I asked around to my older friends who knew a bit more about the business.
My friend Matt Blake gave me the most useful advice:
"Think of the highest rate you can while still keeping a straight face. Now double it."
Now, this makes a few assumptions. For this to actually work, you need to be talented, you need to be passionate and you must have a genuine interest in the project succeeding.
You must be talented - because you can't charge for the something you can't deliver on. It's akin to stealing. They will quickly figure out your ruse, and you will be fired.
You need to be passionate - because if you're not passionate about what you're doing, you're in the wrong line of work. Don't go through life doing something you don't love to do - you only get one chance at life, don't mess it up. Maybe try nursing, painting, or fighting fires.
And finally, you must have a genuine interest in the project succeeding. If you're an atheist, don't take gigs for churches, if you're a Republican, don't take gigs for Democratic PACs, et cetera. Otherwise, you'll end up doing a shitty job. Even if you're still trying to do your best, your mind will sabotage itself, and you'll make something that isn't very good. This matters because every client is a potential item for your portfolio, and every client is potential referral. Important note!: This doesn't mean that you have to take equity in the project! Wanting a project to succeed and banking on it aren't the same thing. Getting paid in equity is for suckers, unless you're 100% confident in what you're getting in to. Take the cash.
Don't Be Afraid Of 'No'
Negotiating a rate feels very awkward. You're not a business person - you're a programmer. You're probably not used to making demands from other people, so it's hard. You're deciding a financial value of your own self-worth, so there's a fear that you'll be laughed at. You need to get over this fear.
If the client isn't saying 'No,' you probably aren't getting paid enough. If they don't say no, you probably could have gone higher, but you'll never know if you don't try it.
Before you negotiate the real thing, have a few dry runs. Try haggling over something trivial. Go to a local restaurant and try to negotiate a special deal. You can even try this at a supermarket, or somewhere where you don't have a chance in hell of actually getting what you want. That's kind of the point. For more tips on this kind of practice, check out 'Rejection Therapy' - it's actually pretty fun, once you get over the fear.
Then, when you actually sit down to talk about your rate, you won't mind if they say no. You'll have a clearer understanding of how they value you, and you'll never have the nagging wonder about if you could have gotten more.
Hopefully, this short guide is of some use to you. Please, don't take it as canon - it's just something to think about. Your situation will be unique, and you should consider all of the variables involved - the client, the project, your location, your specialty, etc - before you come up with your rate.
Did this strategy work for you? Do you think it's a bunch of nonsense? Leave a comment below! I'm going to suggest that comment posters avoid specific figures, but I won't delete any posts which have them if they come up during the discussion.