Specialists And Generalists And In Between (More About Generalists)
To be a specialist, a generalist, or an in between (T-shaped) that is the question? well to answer this question, we first need to know what it means to be a specialist, what it means to be a generalist and what it means to be a T-shaped person (or a developer in our case). I’ll take this from a software engineering perspective, as this is my domain and day to day job, so let’s start.
For a generalist there’s a saying that summarize it all “A jack of all trades, master of none” which basically means that you can do a lot of things but you don’t master a single thing, you have a breadth of knowledge about many technologies, many stacks, and a lot of concepts but you don’t necessarily have a depth of knowledge in any of them. Now don’t get me wrong you can of course have deep knowledge in a technology stack for example and still be a generalist (the definition of a T-shaped engineer) the idea is you can fit in many roles and many stacks without being a specialist for only this stack.
A specialist on the other hand is a person who chooses to be a domain expert, he do one thing and he do it very well, you can easily spot those people in your organization they’re the go to person when you have a problem in Java, or a DB problem, or any kind of specific problems that the domain of this person covers.
As defined above a T-shaped engineer is an engineer who have a broad knowledge like the generalist, and also specialized in one stack or technology like the specialist, in my opinion he is the best in both worlds.
The above was a quick introduction to specialists, generalists, and T-shaped and what each of them mean,, let’s talk about why choosing one of them over the other in these series of articles we'll talk about the pros and cons of each one to pave the way for you to choose easily, of course it’ll depend on your preference but I may ease it for you a little bit if you knew my journey.
I’m a generalist at heart, I love to be able to do lots of things and be able to switch from one technology to another, from one role to another without having such hard time to do so, I’ve worked as a backend engineer, a front end engineer, full stack engineer, cloud engineer, I’ve worked with different technologies like Java, C#, Python, React, ES6, CSS3, SAAS, AWS, Azure, I’ve worked in different businesses like online banking, ERP, Cloud, GIS, I’ve worked in different companies startups and corporates, throughout this journey I’ve never found it hard to switch from one role to another, from one company to another, the only hardship was leaving my friends in different companies, but such is life where the only constant is change.
The pros about being a generalist (for me at least) was that I can switch businesses when needed, if the company is closing or laying off employees (such as in these hard times) I did have a broad domain of knowledge that made me able to apply for a wide range of opportunities at once until I find a suitable one for me, being a generalist gives you the flexibility even inside one company to switch roles from a backend to frontend from a technical role to a more managerial one, from one position to another without being locked in one technology or stack and can’t adapt to the new technologies.
However everything has its upside and downside, being a generalist has its cons as well, for example sometimes you'll need domain experts either in business or in the technical stack itself to solve a specific bug, this is where you'll need the help of a specialist to do so, it's not a bad thing really, people need to cooperate however, sometimes it's not ideal due to costs or lake of such experiences in your company or workplace. There maybe other cons to being a generalist such as losing some opportunities in local market that only target experts in a certain domain or technology stack however, I have found that generalists opportunities are way higher specially in Egypt market so I wouldn't consider this as a con really.
Why I’m telling you this? it’s not to promote the generalist mindset (well to be honest I do want to promote that a little bit, it's my personal preference after all and specially in such times where being multi skill is really appreciated) but to give you a hint on what a generalist in real life can be and can do.
To be a specialist or T-shaped will be in another article so stay tuned for that.