38

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.

yannis
  • 39,647
T. Webster
  • 1,246
  • 2
  • 12
  • 21

10 Answers10

59

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.

40

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.

Bobby Tables
  • 20,616
19

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.

btilly
  • 18,340
7

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.

Gilles
  • 2,211
3

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.

hotpaw2
  • 7,988
3

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.

Michael Brown
  • 21,822
2

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.

Michael Brown
  • 21,822
1

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.

psr
  • 12,866
1

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.

jayraynet
  • 1,190
1

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)