Does Switching Jobs Make You a Worse Programmer? (forrestbrazeal.com)
Slashdot reader theodp shares some thoughts from Virginia-based cloud architect Forrest Brazeal, who believes that switching jobs or teams makes you -- at least temporarily -- a worse programmer:
"When you do take a new job," Brazeal writes, "everybody else will know things you don't know. You'll expend an enormous amount of time and mental energy just trying to keep up. This is usually called 'the learning curve'. The unstated assumption is that you must add new knowledge on top of the existing base of knowledge you brought from your previous job in order to succeed in the new environment.
"But that's not really what's happening. After all, some of your new coworkers have never worked at any other company. You have way more experience than they do. Why are they more effective than you right now? Because, for the moment, your old experience doesn't matter. You don't just need to add knowledge; you need to replace a wide body of experiences that became irrelevant when you turned in your notice at the old job. To put it another way: if you visualize your entire career arc as one giant learning curve, the places where you change jobs are marked by switchbacks."
He concludes, "I'm not saying you shouldn't switch jobs. Just remember that you can't expect to be the same person in the new cubicle. Your value is only partly based on your own knowledge and ingenuity. It's also wrapped up in the connections you've made inside your team: your ability to help others, their shared understanding of your strengths and weaknesses, and who knows what else. You will have to figure out new paths of communication in the new organization, build new backlogs of code references pertaining to your new projects, and find new mentors who can help you continue to grow. You will have to become a different programmer.
"There is no guarantee you will be a better one."
This seems counter-intuitive to me -- but what do Slashdot's readers think? Does switching jobs make you a worse programmer?
"But that's not really what's happening. After all, some of your new coworkers have never worked at any other company. You have way more experience than they do. Why are they more effective than you right now? Because, for the moment, your old experience doesn't matter. You don't just need to add knowledge; you need to replace a wide body of experiences that became irrelevant when you turned in your notice at the old job. To put it another way: if you visualize your entire career arc as one giant learning curve, the places where you change jobs are marked by switchbacks."
He concludes, "I'm not saying you shouldn't switch jobs. Just remember that you can't expect to be the same person in the new cubicle. Your value is only partly based on your own knowledge and ingenuity. It's also wrapped up in the connections you've made inside your team: your ability to help others, their shared understanding of your strengths and weaknesses, and who knows what else. You will have to figure out new paths of communication in the new organization, build new backlogs of code references pertaining to your new projects, and find new mentors who can help you continue to grow. You will have to become a different programmer.
"There is no guarantee you will be a better one."
This seems counter-intuitive to me -- but what do Slashdot's readers think? Does switching jobs make you a worse programmer?
I've heard it said that 10 years in one company is more like two years of experience repeated five times over.
That is a great way to put it.
My preferred length of time is three years - two years of learning to really understanding the domain and the related systems, then a year of great productivity as you really hum because you are no longer dealing with much internal overhead in getting work done.
Much longer than that and you start to grow tired of repetition, or the little things that were always problems start to annoy you more and more. For whatever reason, productivity drops again...
That's probably the thing to really look out for, be self aware of how you feel you are doing in your job. That can be the signal as to when you might want to start looking for something new, if you notice that your own performance starting to decline for any reason.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
Most developers don't switch jobs because their employer is going out of business. They switch because their job sucks, or they want to make more money.
Companies will pay more to lure away talent from other companies than they will to keep their current employees. You should switch employers every 3 to 5 years to maximize your income.
Productivity is higher in areas with more churn. Job hopping means new ideas and better techniques spread quickly between companies.
It does impact your productivity as you learn your way around a new code base, but it doesn't make you a worse programmer. Your employer expects there to be a ramp-up period, so that's not a problem. If you switch positions because you think there's some cool stuff to learn in the new position, it'll generally make you a better programmer over time. Plus, it's really the only way to get a decent raise in the industry.
I'm trying to teach myself to set people on fire with my mind... Is it hot in here?
Comment removed based on user account deletion
And to me this is just sad.
" two years of learning to really understanding the domain and the related systems, then a year of great productivity as you really hum because you are no longer dealing with much internal overhead in getting work done."
So as the employer, that's a pretty shitty deal. I'd really like to hang onto a team who are really humming for longer than that. Who know how things work, who know where everything in the code is and how its organized, who've mastered processes, who actually understand the knowledge domain we're developing software to solve so the friction between requirements and implementation is much lower...
"Much longer than that and you start to grow tired of repetition, or the little things that were always problems start to annoy you more and more."
I think this is where we diverge. You want out to get away from this... I want to know why we can't fix this.
FWIW I've never worked anywhere really big; i prefer smaller companies; because I like them more. They aren't as rigid, the work is really varied, everyone is wearing 2 or 3 hats.
"That's probably the thing to really look out for, be self aware of how you feel you are doing in your job. That can be the signal as to when you might want to start looking for something new, if you notice that your own performance starting to decline for any reason."
I agree with you here, but looking at it from the other side, as the employer -- they should be looking to figure out how to resolve these 'problems'. Because losing good people after a few years in an industry where it takes a couple years to hit their stride is a huge waste.
"I've heard it said that 10 years in one company is more like two years of experience repeated five times over."
I think it can be. I don't think it has to be. It'll depend on the company and your role(s) in it.