Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

If you have the time and resources, what would be the most effective way to increase your salary as a full-time programmer, outside of just doing your job?

By "salary" here, I mean salary (adjusted for location cost-of-living) coming from a single programming job.

share|improve this question
2  
Strongly culturally dependent. –  user1249 May 22 '11 at 12:07
add comment

closed as off topic by Yannis Rizos Mar 7 '12 at 5:28

Questions on Programmers Stack Exchange are expected to relate to software development within the scope defined by the community. Consider editing the question or leaving comments for improvement if you believe the question can be reworded to fit within the scope. Read more about reopening questions here.If this question can be reworded to fit the rules in the help center, please edit the question.

10 Answers

up vote 52 down vote accepted

Change Employers

The most efficient way is to learn and do cool stuff and change jobs every year or so. You are far more likely to get more money from a new employer than you are to get a hefty raise from your current employer.

share|improve this answer
13  
True, but there is a balance. You don't want to get the reputation of being an extreme job hopper. eg. A CV with nothing but 1 year stints on it does't look good to employers who are looking for a permanent salaried employee (Contracting and short stints is a separate story though). –  Bobby Tables May 14 '11 at 3:29
21  
On average I changed jobs once every three years. I maintained over that time a consistent salary increase of 15% per year. My average salary increase on the years where I didn't switch was only about 4-5%. Do the math. Changing employers is the only reliable way to advance your salary appreciably. –  JUST MY correct OPINION May 14 '11 at 5:19
1  
It depends, I had a year when my salary increased by 41% without changing jobs. –  quant_dev May 14 '11 at 10:55
7  
Short stints may give you a reputation as a job-hopper, but it's not going to matter because (good) programmers are in short supply. –  Kevin May 14 '11 at 23:44
1  
@Kevin. It may matter. I was involved in hiring sw engineers at my previous job, and job-hoppers were not taken into account no matter how good they were. We were developing a pretty complex system, and a year was just enough to become productive. At my current job, most people stay 5+ years, and there are many who are here for 10 years. –  Nemanja Trifunovic May 22 '11 at 15:32
show 5 more comments

Chiming in with a point not yet covered, though it falls under negotiation. Know what the market is paying for similar positions in the same area for the same size company, or at least learn as much as you can. If your salary is too low be able to prove it to your employer with references.

This will help a lot in at least not being under-payed. It might also help if your employer claims they are paying top dollar but are actually below that.

There are a lot of on-line sites with at least decent information. Job sites and sites for recruiters often have some of this information, and there are sites more specifically focused. I won't list any because it changes some and you should find as many as you can.

share|improve this answer
add comment

Go independent. As a consultant you'll make 3-4 times what a full-time employee makes. You can leverage this to boost your salary or do like me and take an obscene amount of vacation. Last year was my first year of independence. I took 10 weeks of vacation and still beat my prior full-time salary.

share|improve this answer
    
I'm considering this, but at this stage in my career I'm not confident enough to do that. Know any good resources to begin learning on how to go as an independent programmer consultant? Is managing the extra administrivia i.e IRS forms a lot more difficult? –  mathStudent May 23 '11 at 12:12
    
One book I read was Million Dollar Consulting amazon.com/dp/0071622101 It provides a lot about strategies for consulting (cut to the chase, fix priced contracts should be bread and butter, hourly rates make the client feel they have more control over how you use your time plus if you're good, it's easier to justify a fixed price that gives you an hourly rate that's obscene). –  Mike Brown May 23 '11 at 20:21
add comment

There are only three things that matter: the value you deliver, the value you deliver and the value you deliver.

Everything else is not important (provided you've read and understood this book: http://en.wikipedia.org/wiki/How_to_Win_Friends_and_Influence_People)

share|improve this answer
    
If people are able to determine the value you deliver (with programmers this is fairly difficult a lot of the time) and you are able to negotiate to get that value. In practice often one of these things is missing. –  psr Feb 24 '12 at 18:26
    
Exactly, so you have to learn the missing piece and that's what the question was about. –  Tomasz Zielinski Feb 24 '12 at 21:52
add comment

There are broadly 4 ways:

Build Seniority

If you're happy with your current company and want to stay there, a good way to be able to demand more is to become the senior resident expert at a vital technology and/or internal code base. I've watched people do this at several companies I've worked at. They became so obviously and publicly super-productive and good at what they do (and the thing they do was important) that they naturally gained a "senior" status - even without necessarily getting team leading or managerial responsibility per se.

I can only presume that they had more ammunition to ask for better raises at performance review time, and for some I knew for a fact that they were better paid than average.

Also, see this answer.

Change Employers

This is essentially this answer. You have to be careful with this one though. Lots of very short stints don't look good on a CV, even if there are reasonably good explanations for the moves. For contracts with fixed terms, it's not so bad, but you don't want to have a whole string of permanent salaried positions on your CV that are all under 1-2 years or so. 3-4 years and up is probably okay though, as an average.

Go Contracting/Consulting

This one is, in a way, Change Employers on steroids. If you find a good niche which has a shortage of qualified engineers and quite a bit of short term project work that needs doing, this can be an excellent option. But it's quite a different mindset and lifestyle than having normal permanent salaried jobs (I've never done it personally, but I've known lots of people who did).

Vertical Movement

I know you asked about "programmer salary", but it still feels like this is obligatory to mention. Rising to team leader and/or management roles is always a possible option. Note that this is often tied with the first option (Gain Seniority), but it doesn't always have to be. Sometimes it's a natural byproduct of being at a company long enough, taking ownership of things you were working on, and knowing all the people and processes well.

share|improve this answer
    
While this question isn't marked as answer, it is certainly deserving of some up-votes, and could also be marked as an answer. –  mathStudent May 14 '11 at 12:31
    
+1 This is an extremely well-organized answer. Thank you. –  Brandon Mar 17 '13 at 17:17
add comment

The critical piece that you are missing is learn to negotiate. Learn to do that effectively, and you will make a bigger difference in your income than any other single thing you can learn. Even if you only negotiate once every three years when you are discussing salary, learning the basics of negotiation will pay you back more, dollar for dollar and hour for hour, than any other possible investment of your time.

So how do you do it?

Many years ago I asked a friend who was an excellent negotiator for his recommendation on how to learn how to negotiate. He suggested a contrary book, Start with No. It walks through a particular negotiation strategy that is highly effective and is a pretty good fit for a lot of people. I happily can recommend it if you don't already have good negotiation skills.

Subsequently I ran across Bargaining for Advantage and it is by far the better book. I would describe it as being geared towards giving people a theoretical framework from which they can better understand negotiations they are in, and can better figure out what works for them. It can definitely take you farther than the previous book, however it doesn't give you as clear-cut "this is what you do". It is a more advanced book. I'm glad that I read it, but I am also glad that I didn't read it first.

How cost effective is learning something about negotiation? Those two books combined cost well under $50. I spent, combined, well under 20 hours reading them. In the last three years they easily made me over $100,000 in extra income.

share|improve this answer
    
Thanks for the suggestion. Hopefully developing some negotiation skills doesn't require a salesman-type personality to see any results. Though it sounds like those books should apply to most people, including programmers. –  mathStudent May 14 '11 at 12:36
1  
@T. Webster - If you don't have an appropriate personality, you're never going to be a top notch negotiator. Certainly I don't, and I have no illusions about that. But that doesn't stop you from improving. And no matter how bad you are innately, "better than I am now" is going to make you more than you'd otherwise make. –  btilly May 14 '11 at 13:43
4  
I think this answer is the best. I think the main reason why so many people seem to achieve relatively higher gains from switching employers is that they're unwilling or unable to negotiate significant raises with their current employers, and feel more freedom to do this with prospective new employers. I started with a modest salary after graduation, and after what I think was about 3 years, I was able to negotiate roughly a 40% increase plus a customized bonus plan. You just have to know what you're worth and be willing to negotiate with anyone, including your boss, at any time. –  Aaronaught May 14 '11 at 20:01
    
@Aaronaught, can you say what you brought into your negotiation that got you that 40% raise? What did you have for leverage that you used? Were you willing to walk if you didn't get the raise? –  mathStudent May 15 '11 at 20:40
2  
@TWebster: If you aren't willing to walk, then it isn't a negotiation at all, it's a plea. So take that as a given. As for leverage, the only physical documentation I brought in was evidence of current market rates, since I didn't want to waste time arguing about that. Aside from that... just my skills and my experience in a somewhat niche industry; competency and scarcity are pretty much the only leverage you have as an employee, whether you're negotiating with your current employer or a new one. –  Aaronaught May 15 '11 at 20:55
show 7 more comments

There is a ceiling that most companies are not willing to go beyond for a straight programmer. You have to take on management/leadership roles if you want to pass that ceiling.

share|improve this answer
6  
Or move to another company with a higher ceiling. –  Matthew Scharley May 14 '11 at 6:23
1  
What about "senior"-level programmer? I am not at that level, but will attaining that role increase my ceiling do you think? –  mathStudent May 14 '11 at 12:37
add comment

Supply and demand.

Do something (learn something, gain a skill, get a credential) for which companies have a higher demand than for what you do now, and/or for which there is a lower supply of available potential hires. The change in supply and demand will eventually effect the market price. If your current company wants to keep you, they will have to match the market rate salary. They will know that you can go elsewhere and get that salary, and they likely will have to match that market rate salary for your replacement.

share|improve this answer
    
where do you go to get information about the industry market? I only really know of bls.gov/oco and indeed.com –  mathStudent May 14 '11 at 12:42
add comment

If you want to raise your salary, raise your value to your employer/customer. Continuously align yourself with your company's goals (answer: how am I bringing aiding in bringing in more revenue?) and your client's goals (answer: how am I making the customer's life easier?). At times you will need to go to bat for yourself to remind those with the checkbook of how you can answer those questions above.

And as @bleakcabal stated, you've got to play the social aspect of your job. That will open more opportunities to increase your value to employeer and customers.

share|improve this answer
add comment

By doing your job, I assume you mean the technical aspect. Programming, meeting requirements, attending meetings, etc.

If so, than one of the most effective way would be to work on the social aspect of your job.

You can meet all of your technical objectives but still get a lower salary than someone with good technical skills but great people skills.

You need to promote yourself to your boss and to your coworkers. Make contacts in the industry. Become a leader among your team. Be the guy people are asking for help when they are stuck.

People that do these things are usually will usually be perceived favorably by management, thus be seen as more valuable.

share|improve this answer
    
How do you make contacts in the industry? Can this be done over the internet with sites like stackoverflow.com, or are you talking about e.g. in-person developer conferences like Microsoft PDC? –  mathStudent May 14 '11 at 2:52
1  
@T. Webster : I was talking in-person. You can meet other devs at user groups, conferences, IT events. Building a contact network isn't just helpful for getting another job, it can make you more valuable by having people you can turn to for help, questions, info, etc. –  Gilles May 17 '11 at 1:13
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.