Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise. If this question can be reworded to fit the rules in the help center, please edit the question.

2

Though you have to ask: if employers see a history of jumping around every 2 years, do they really want to take the risk of hiring you and investing in you to learn new tech only to have you lean shortly after? And then they have to hire someone new again...
– FrustratedWithFormsDesignerApr 7 '11 at 13:46

2

2 years is shortly after? How long does it take for experienced developer to give ROI(become productive) on time taken to familiarize himself with a new technology.
– Aditya PApr 7 '11 at 19:50

16 Answers
16

Early in your career I see no harm and indeed some benefit to doing this a few times, but sooner or later employers are going to get wary of someone who appears not to stay too long. So, you may get new skills but you may find it harder to get a more responsible role in the future. That may not bother you, but if it does I'd think about staying longer term in future.

You could also look to work for a larger employer that would allow you to develop and move internally, this has most of the benefits of job hopping and none of the downsides.

In terms of the timescales mentioned in the question, of a 2-3 year stay... I would say there is something very wrong if you cannot learn to trust or be trusted in that time.
– Kevin DApr 7 '11 at 14:16

@Kevin D: I wish I could agree with you, but I'm not going to argue with evolution. Haven't you ever heard the expression, "One 'oh shit' can erase a thousand attaboys."
– Gilbert Le BlancApr 7 '11 at 15:06

1

+1 Sticking around long enough to see people being fird and promoted helps quite a bit.
– JobApr 7 '11 at 19:46

I've sat on a couple of different hiring committees, and they both tended to place a higher value on the resumes where people jumped every 2-3 years... They always pay lip service to the idea of the "loyal" company-man that sticks around a business for numerous years, but they don't back that up with action.

I attribute that to the "bigger" alphabet soup can that job hopping allowed them to carry around. I clashed several times with our CTO about this.. when he wanted to bring in new people for a new development project, whereas we had smart guys sitting on legacy projects (and pretty bad turnover as a result).

And you hear it here from programmers too -- hardly a day goes by without someone putting forth the canard of "1 years experience, repeated 5 times"...

Your experience in this matter matches mine. I tend to work at companies that work with a wide array of technologies. While you hear people talk about loyalty etc...what they focus on when it comes to hiring is this candidate knows all 5+ of these technologies (the job hopper) while this person only knows X and Y (the guy who stayed at the same place).
– DunkApr 7 '11 at 17:25

Yes, it is. Most companies stagnate and the developers become complacent with the way they do things; they become lazy and unwilling to learn because it would actually take effort. Management often becomes short-sighted (if they ever stopped) and will shoot down anything from a technical standpoint as "wastes of time" except in rare circumstances.

If you are joining an established company, you will likely never really get a promotion of any worth as there are people there with more tenure there, whether or not their technical skills are as good as yours.

So yes, job hopping IS the best way to get ahead in our field. It's very rare that you can stay with one company unless you relegate yourself to a career of mediocrity and using the same technology forever, or if you are very lucky and can actually find a company that cares about improving itself. Most companies don't care about improvement other than lining management's pockets for the current quarter and showing a profit.

huge generalisation. I work with a number of large dev companies (international/global) and the prospects are awesome. You're not likely to end up running the show, as technical streams and management are separated but progression is quick!
– Rory AlsopApr 11 '11 at 8:57

3

I will admit it's a generalization, but speaking from my experience most companies don't provide a progression path due to seniority and tenure from other co-workers; even if you know more than your "senior" developer, you won't get his job ever.
– Wayne MolinaApr 11 '11 at 13:26

As I agree with many of the answers here already, I will speak from my experiences...

Early in my career I job hopped and I learned a ton. However, I didn't master anything until I stayed on a project for more than 3 years.

The fact is, you may get a title, but you will never get the respect of your fellow employees until you become the Subject Matter Expert. You can come in with the greatest resume in the world, but your other employees want to know what you have done for them lately.

I find that knowing a lot looks great on a resume, but being respected is even better.

Now, I say this after years of employment. Would I change anything that I've done in the past? Sure I think I could of made better choices (hindsight is 20/20), but job hopping got me to a decent salary and forced me to interact with a large group of different personalities.

Starting a new job every 1 or 2 years is hard, however, if you feel you need to go in that time then do it. Just realize that if it becomes a pattern, then it will be noticed on your resume.

The only thing I can add over and above what other have said, is to comment on the timing. I do not think it is a matter of calender time, but rather a matter of the learning cycle that you are in ( I am talking about long cycles in the year(s) range )

Once you have reached a learning plateou you have two options

Cement that by teaching those around you by giving back until the next natural growth starts again.

Find a new compnay to start a new learning cycle.

So don't base your decision just on the calendar, but rather on the learning cycle.

That's the problem; at many companies the technical ranks peter out much more quickly than the managerial ranks. If you want to gain a job title higher than "software developer" or "senior software developer", you're probably going to have to move around and find a company that has those ranks.
– quanticleApr 7 '11 at 12:53

+1 - I agree that you need to make your decision on a job by job basis. -1 - Even if you like the job, your salary doesn't rise commensurate with what happens when you change jobs. Thus, you are sometimes forced to jump ship just to keep up with the Jones's next door. How much you want to keep up with those Jones's is generally how often you need to change jobs.
– DunkApr 7 '11 at 17:29

If you are developing from a programming perspective or from a personal development or project skills perspective then I would generally advise staying (unless of course you really aren't enjoying it) - this will help to build your reputation as a 'stayer'

When looking at candidates for job roles I am always more interested in those I feel may stay long enough to repay my investment in them. I don't want to hire someone who just wants to leave 2 years later.

That said, if a candidate gives good reasons for moving then rapid changes won't rule them out. Best be good reasons, though!

Should a candidate have had 2 jobs in the last 6 years, giving them good experience across 2 languages and their associates frameworks and practices, would this not count as an good thing from your point of view? Provided those skills were relevant to the job being applied for.
– Kevin DApr 7 '11 at 12:42

1

That said, I would also be leery of any candidate who only has experience in a single language and domain. There's a difference between 10 years of experience and 1 year of experience repeated ten times.
– quanticleApr 7 '11 at 12:56

The world has changed. Two years used to be a short time to stay in a position, but its not anymore. In our minds it does seem short, but you have to consider what is really happening; what employers are actually seeing. One way to do this is by looking at the BLS.

Just a quick review shows us that people under 40 switch jobs 3 times in a 4 year period. That's barely more than a year per job. So, compared to your competition you are doing well to stay for 2 years at one job.

Someone who hops jobs too often gets passed over for interviews (and when hired, promotions) because he's deemed unreliable.
Someone who stays in the same job for too long gets passed over for promotions because he's deemed too valuable to promote away to other positions (and he's considered to not be likely to leave if he's not promoted or valued, so why invest in him?).

You have to find the middle ground. Moving jobs every few months (as used to be common in the .com boom) is bad. Sticking with the same job for a decade might be just as bad.
I find 3-5 years to be long enough to get bored of a job, but that depends highly on the company and job. If I like the work environment, and can get another project in the same company, that would for me be preferable to moving to another employer. I like stability though, and not everyone does.

It all depends what you are trying to do with your career - if it's gobbling up technical experience in a specific language during 8 of the 24 hours in a day, perhaps. Or if you are more interested in a breadth of work, then maybe hopping is the right way. It all depends on your own goals, I would say.

And it depends on companies you are approaching with your resume too - some would say jumping is a bad things, some would say jumping is a good thing.

I would say "it depends". See this answer to my (broadly job-hopping-related) question for one of the problems with job hopping.

There is definitely a balance. And it really depends on the company. In some companies it's quite possible to move around internally and learn new technologies - and even quite different management styles and soft skills, depending on how individual teams and departments are run.

As a general rule, I would say - yes it's good, but be careful that the stints aren't all very short. You want to have more than just a brief taste of each job (and the technology in it), and you definitely want to see projects through to completion. Very short stints can give you superficial experience, and make you look like someone who can't stick it out - and basically as quickly_now said: like a "seagull developer". Sticking around and maintaining your own work and living with your mistakes for a while is a crucial part of being a serious software developer. You don't want to look like someone who always runs away at that point.

Most job posts seem to require the "alphabet soup" you can get from job hopping. E.g. 3-5 years in Java, 3-5 Years in C++, 3-5 Years in .NET. Often a job like that needs someone who hopped 3 jobs because often you use just one in a job. Also most jobs I have had tend to repeat themselves over and over again after the first year or two. I am a quicker learner than a lot so it may not be as bad. But the first 6 months or so you pick up the day to day responsibilities of the job and probably any new nuances of the technology. For my first job it was more like a year. After that it is just repeating the same 6 months/1 year of experience over and over again doing the same thing. People who I know who hopped more got more varied experience. Some of them hop every 2 years or every 1 year. They get Ruby/Java/C/PHP/etc. and can jump on jobs with a variety of requirements. Meanwhile I change less often so I don't have such a variety of experience which makes it harder to change. Generally I don't even get an interview until an employer gets desperate.... And if they find a competent job hopper they won't even get desperate enough to call me in...

Also from a salary perspective you really suffer if you stay at the same place too long. I don't know why but when you work for a company year after year, your "loyalty" is often "rewarded" with a token 2-3% raise that barely keeps up with inflation. If you job hop usually you get 10-20% just for the hop. If the market has really picked up you could end up with way more. It's not all about the money for the sake of money, but future employers judge you based on your salary. If you stayed at the same job 5 years and then switch they will wonder why your salary is so low and be hesitant about hiring you....

Overall I think the situation is different with a consulting company where you can work for the same company but work on a variety of projects. Also some companies have strong internal mobility programs to help workers get around. But others are too small to have one or it is a joke. But on a per job basis I'd say you learn more by changing especially in a big company where the roles are more specialized. Although you don't always need to change companies for a new job.