Fucking asshole. Almost no one
wants to change jobs every 12 months. Looking for work is a pain in the ass and changing jobs is inherently risky. Everyone goes into a job hoping they will work out so well at the company as to have no incentive to leave... at least for 5-10 years. All this is even more true for the best employees, because the number of desirable employers drops off faster than the number of talented people. (The best people, who want only to work at the best companies, have what is in a way the most difficult kind of job search.)
Job hopping is almost always involuntary-- not in the sense of a person getting fired, but in the sense of a person being wise enough to realize that he's in a position that his wasting his time, and moving on-- the rational response.
The "job hopper" stigma originally came into existence because people who did so would rise rapidly in salary through iterated negotiations; in times such as the late 1990s, it's possible to get to a very high salary level this way. Pursued inflexibly, it's a terrible strategy in the long term, because it makes you less likely to end up as someone's protege (rolling stone, no moss) and eventually compensation will reflect the resulting stagnation. But most "job hoppers" do not fall into this category; they change jobs not because they are trying to game the system, but because they realize they are wasting time.
If your career is not improving-- you're not learning, inadequately mentored, and no one is looking out for your advancement-- then you should change jobs as soon as you can do so with minimal harm to the company. (If you're in a small company, it might be right to stay on for a couple months, at least to train someone else.) Since most people are not and cannot be "protege", this means that it's good to shift around a few times until finding a fit.
Likewise, everyone has to do some grunt work and deal with some unpleasantness, and recognizing this is just being a mature person, but anyone who finds out his job is mostly or entirely grunt work, or work unrelated to his career (e.g. the programmer who gets put full-time on office tasks) is wasting time and should leave.
Sorry, but I have to say all this because I am sick and fucking tired of people ripping on my generation for not playing by someone else's shitty rules. Are the older people really so damn entitled as to not understand all this? And how can they expect loyalty to companies when layoffs happen all the time?