41mag,
It depends a lot on the industry. In software engineering, where I'm at, there was a period (during the dot-com bubble's inflation) where switching jobs was just about the only way to advance your career; rather than promote from within, a lot of companies would just hire someone to be above you, even if the new person was equally or less qualified than you.
I've been in the industry for 12 years, now:
3.25 years at CSTI
0.75 years at Lockheed Martin WDL (left because they flat-out lied to me about what I'd be doing)[0]
2 years at E-Systems/Raytheon Systems Company
1 year at MKS Datafocus (I left/was terminated largely because my boss was a pusillanimous man-child)
1 year at ComScore (my entire R&D group was laid off for lack of funding)
4 years at my current company.
The guy who hired me at my present company was initially leery, because my Lockheed, MKS, and ComScore gigs made me look like a job-hopper, and it took a lot of convincing him that I left them not out of lack of willingness to commit, but because of untenable circumstance.
In computers, anyway, there's a fine balance to be struck; if you switch job too often, you're seen as a job-hopper, but if you stay in one place for too long, you're perceived as an unmotivated drone.
I'm sure it's completely different in a lot of other professions.
-BP
- In the interview, they told me I'd be developing new software in C/C++ on UNIX. Once I got the job, they told me that I'd actually be doing in-field maintenance and emergency bug-fixes on a byzantine system written in Fortran 77 (!) running on VAXen under VMS. In other words, a short, narrow road to dead-end-ville.