I’ve read conflicting things about how individual contributor skills (writing the code) and people management skills relate to one another in programming.
Hacker News and the cscareerquestions subreddit give me the impression that they’re very separate, with many complaining about how advancement dries up on a non-management track.
But I’ve also read a few blog posts (which I can’t recall) arguing the most successful tech managers / coders switch between the two, so that they keep their technical skills fresh and know how their work fits in a greater whole.
What’s your take in this? Has it changed since starting your new job?
I’m a fan of the going back and forth approach, though I don’t think I’ve worked with anyone else whose done it. I’ve gone IC → Manager → IC → Manager → IC, based on organizational needs. On the other hand some people are just a really great fit for management and should specialize in it. How strong you need to keep your technical skills depends a lot on your style of management, your specific strengths, and whether your org uses a “tech lead” system.
While advancement does dry up in many places if you’re not willing to move into management, that wasn’t my experience at Google. I knew some very influential (and well-compensated) non-managers. Though even if you stay on the technical track more of your impact still comes via other people: designing things, giving feedback on other people’s designs, reviewing code, teaching other people how to do things, etc.
I’ve read conflicting things about how individual contributor skills (writing the code) and people management skills relate to one another in programming.
Hacker News and the cscareerquestions subreddit give me the impression that they’re very separate, with many complaining about how advancement dries up on a non-management track.
But I’ve also read a few blog posts (which I can’t recall) arguing the most successful tech managers / coders switch between the two, so that they keep their technical skills fresh and know how their work fits in a greater whole.
What’s your take in this? Has it changed since starting your new job?
I’m a fan of the going back and forth approach, though I don’t think I’ve worked with anyone else whose done it. I’ve gone IC → Manager → IC → Manager → IC, based on organizational needs. On the other hand some people are just a really great fit for management and should specialize in it. How strong you need to keep your technical skills depends a lot on your style of management, your specific strengths, and whether your org uses a “tech lead” system.
While advancement does dry up in many places if you’re not willing to move into management, that wasn’t my experience at Google. I knew some very influential (and well-compensated) non-managers. Though even if you stay on the technical track more of your impact still comes via other people: designing things, giving feedback on other people’s designs, reviewing code, teaching other people how to do things, etc.
I know a guy[1] who’s done the same Manager ↔ IC transition. Google as well. I do really respect this part of Google’s culture.
My dear old Dad