I started working as a full time software engineer when I was half way through my computer science graduate program, finished rest of the coursework as a remote student simultaneously. I've changed three jobs since then i.e., one job in every 1yr 10months on an average and, not bragging, I also got promoted at least once in each of these roles, often offered counter offers for retention which I humbly turned down. Many people including interviewers have asked me about this 'job hopping' of mine and I though I'd share my general perspective on this..
So, what's my perspective ?- Simple, be honest about it :) People can understand.
Each one of us is unique with our own set of aspirations/priorities- when yours align with that of the team/project's is when I think, you'll create a good atmosphere for yourself, people around you and ultimately the company you are working for. It may not be possible to synergize one hundred percent all the time, but, the synergy-er the better.
My career for example; I've always had changing priorities over the time and I did my best to be in a role that's more relevant while not screwing up the former employer. More on that..
First, it really was all about survival, my top priority was to get a decent programming job that pays my bills and helps me reduce if not pay off ridiculous amounts of college debt. So, I landed in a consultant role which actually helped me in striking off some items from my to-do list. I started growing in that role, then came graduation, then a new priority- getting a work visa sponsor, since a full time non-consulting employer sponsoring your visa is safer than a full time consulting employer, I had to start hunting.
Luckily, I was able to get into one of the tech giants in the bay area, who took care of my visa/immigration. I was surprised to see the difference b/n consulting & full-time roles as to how full-time roles don't squeeze out their employees to the bones. Work was good and progressive in the beginning, we solved some of the very interesting challenges in cloud computing, filed patents, got lots of accolades from everywhere ;), but, after an year, we hit the saturation point where we kept on doing same thing like a robot coz of job setting/'business needs'. At this point, I was totally out of the survival mode and it's time to seriously think about doing something that captures and sustains my curiosity without retrogressing.
Cloud computing being my domain of interest, I was able to get into a great company that has pioneered the field. It's been a great ~3yr ride, I've done my job well, but, looking at the product(s) life, pace of career growth and other 'tech-tonic' shifts, I've decided that it's time to switch. So, I'm off to a fresh start with another awesome cloud giant in the Tech market.
This was my story (if you have read through all of it ;)). Your's may be different, you may be in a different situation, getting food on the table for your kids and paying for roof above may be your 'first' priority, or building a product of your dreams..
Point is- Human lives are complex, we should try our best to balance the priorities of ourselves, team and the company. Be straight with yourself about what you want, what you 'really' want and where do you wanna be in next few years and be transparent about your priorities during the interviews- all of which can help create workplaces with good vibes.. Cheers :)