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.

Leaving aside anything you could do outside of work like OSS or self study, do you think job hopping is a good way of continuously learning new skills.

In this context, my definition of job hopping is every 2-3 years, move companies, possibly even domains.

By changing to the right jobs you could in theory learn a new language/framework and get exposure to other domains of knowledge.

A quick update: This is not my current situation, nor is it an approach I have followed. The thought just struck me and I thought it was a good question.

share|improve this question

closed as primarily opinion-based by gnat, GlenH7, Dan Pichelman, Robert Harvey, MichaelT Sep 28 '13 at 0:22

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... –  FrustratedWithFormsDesigner Apr 7 '11 at 13:46
1  
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 P Apr 7 '11 at 19:50
1  
Related: Job hopping, is it a problem? regarding the way employers perceive the practice. –  user8 Apr 7 '11 at 20:26

16 Answers 16

up vote 9 down vote accepted

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.

share|improve this answer
3  
A good point about the possibilities within a larger company –  Kevin D Apr 7 '11 at 12:39
1  
It is anyone's right to downvote, but if you don't tell me why I don't get the chance to learn what was wrong with my answer... –  Steve Haigh Apr 7 '11 at 20:04

Job hopping is one way of continuously learning new technical skills, true.

However, staying at a job for at least 3 to 5 years or more gives you the opportunity to learn the sociological and relationship skills that are also necessary to be a good software developer.

share|improve this answer
4  
Interesting, but on the other hand, changing companies, meeting new people and integrating into new teams it could accelerate the learning of those sociological skills. –  Kevin D Apr 7 '11 at 12:41
7  
@Kevin D: Not really. Humans require time to trust and accept. –  Gilbert Le Blanc Apr 7 '11 at 12:54
5  
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 D Apr 7 '11 at 14:16
1  
+1 Sticking around long enough to see people being fird and promoted helps quite a bit. –  Job Apr 7 '11 at 19:46

Absolutely.

Unfortunately.

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"...

So yeah, if you want to get ahead, hop around.

share|improve this answer

Unless you are working in a agile company constantly evolving, I would say yes, job hopping is very good for you.

It is not very good for employers, so be aware that this may be perceived as a bad thing.

Being a freelance working on short missions (6 to 12 months) is probably what you need.

share|improve this answer

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.

share|improve this answer
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 M Apr 11 '11 at 13:26
1  
Yep - I agree with you, @Wayne M. –  Jim G. May 4 '11 at 16:45

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.

My 2 cents.

share|improve this answer

Job hopping is the most sure thing, you will get a raise of income. Not always, but most likely.

Job hopping should be a result of something bigger. Imagine what would be the coolest place you would like to work or do.

Find out the kind of skills needed for you to get there. Now, job hopping becomes the process for you to develop the skills to be able to get where you want.

Job hopping aimlessly, is just as much a waste of time as staying at the same place for a long time. Developing your sense of purpose, is the most important thing.

share|improve this answer

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

  1. Cement that by teaching those around you by giving back until the next natural growth starts again.
  2. 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.

share|improve this answer

I'm thinking of job hopping as every 2-3 years, move companies, possibly even domains

This is a mistake.. you need to consider whether to move on a job by job basis. If you are in company that treats you well, and you are moving up through the ranks, why would you jump ship?

share|improve this answer
1  
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. –  quanticle Apr 7 '11 at 12:53
1  
Maybe I got bored... –  Ben Apr 7 '11 at 12:56
1  
+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. –  Dunk Apr 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!

share|improve this answer
1  
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 D Apr 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. –  quanticle Apr 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.

share|improve this answer

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.

share|improve this answer

There are no correct answer. Switch job if you feel that there are nothing more there that you can learn.

share|improve this answer

This might be a good post for http://careers.stackoverflow.com/

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.

Hope that helps!

share|improve this answer

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.

share|improve this answer

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.

share|improve this answer

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