Excellent article! I've been in the business since I was 18 years old (now closing on 40) and I am proud to call myself a generalist.
As you say, by no means did I start as a generalist. I picked a speciality and did that exclusively for a while. Then I found something else interesting and did that for a while (years).
I always cringe when I hear "Jack of all trades. Master of none".
Specialists are often referred to as "T profile" where the "T" signifies where the Y axis indicates experience and the X axis different types of speciality. If that's true, I probably identify with an "M profile".
But who's to say what is specialised, and what's generalised. Technology as a field is huge and even "full stack engineers" don't know all backend/frontend/database/app stacks. At some point they found something in the layers that worked for them.
Right now I'd say I'm specialised in terms of "React, Go, SQL databases & Linux". In that particular stack, I might be "full stack". But that all depends on where I'm working at the time.
So, to sum up. I don't think it's white or black, or even bad or good. A good team needs to fill different roles. Some are laser-focused on one thing and others are more broad.
Thank you for this. I really like the description of an "M profile", it's a great way to put it. I also agree with your conclusion. A lot of it is contextual. Right now my team needs me to be the Rails backend dev because no one else has that skill. So although I think of myself as a generalist, I'm needed on this team for my Ruby knowledge.
I do the same. A month ago I was doing TypeScript and React because that’s what the company needed resources on.
Right now the need is backend services and then I do Go.
Doesn’t matter much to me. As long as I can deliver value 🙂
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.