DEV Community

Cess
Cess

Posted on

Discuss: As a developer would you rather be a specialist or a generalist?

Hello Everyone,

So I have been wanting to ask which is better, being a generalist developer or a specialist developer?

As a developer, would you rather be a generalist, someone who knows a lot about different types of software and can use them to get the job done? or a specialist, someone who specializes in a certain kind of software?

What do you guys think?

Also, I would appreciate it if yáll joined my online developer community on Twitter to share your articles, ask questions and share the different stuff you are learning. Here is the link

Latest comments (25)

Collapse
 
stakiran profile image
sta • Edited

Specialist is the only option. Generalists, who have many substitutes, don't hold much value.

However, to become a specialist, it's also necessary to be a generalist. This is particularly evident in sports; one cannot grow by exploring only one area. By broadly studying various fields, your growth in your own specialty will also improve.

Collapse
 
tracygjg profile image
Tracy Gilmore

Standards live longer than technologies so another option is to specialise at the standards level that can last a career.
Some might disagree but it has served me well for 20+ years.

Collapse
 
highasthedn profile image
highasthedn

I have always been a generalist, not only in development. Being a generalist can open you doors which you won't find when you are too specialist. I mean when I need real deep specialist knowledge I know which persons I need to ask.
Meanwhile I own a small company with some developers and I'm sure being my kind of generalist helps me a lot there.

Collapse
 
netch80 profile image
Valentin Nechayev

T-shape (already mentioned here) is a must. It allows having a basic understanding of a wide bunch of domains while keeping deep lore in a few most appropriate ones. I had to switch a few times between similar but substantially different domains. More so, I had got a case when a variant of burn-out led me to emotional detesting of the area I worked for 8 years... and rather easy move to another one saved productivity.

Collapse
 
darkwiiplayer profile image
𒎏Wii 🏳️‍⚧️

"Jack of all trades, master of one" is what I generally aim for. That is, be a generalist, but go more in depth in one (or a few) directions and build some proper expertise in those areas.

Collapse
 
eljayadobe profile image
Eljay-Adobe

I'm a generalist. In my experience, specialist developers have better job security and better pay.

To me, those upsides don't compensate for the downsides — narrow focus, smaller playground, and the danger of obsolescence (such as if/when that specialized technology becomes superseded).

Collapse
 
andrewharpin profile image
Andrew Harpin

To begin with, especially junior, specialist, learn your field.

It's easier to get promoted and once there ask to work on other things, but then specialise in that new area.

That way you become an expert generalist.

The "full stack developer" in web parlance.

Nothing stopping you learning other tech, just don't get distracted by the shiny too much, as your general work will suffer.

Collapse
 
rollergui profile image
Guilherme

For me, I never wanted to specialize in any tech... I liked learning a lot of different things and it didn't seem worth it to focus on one thing, as it would eventually be outdated, no "new projects" would be started in that specific tech.
6 years working as a programmer, and now I feel a huge gap. It's not hard to find work, but I feel there's nothing outstanding about me. That hurts my ego a bit :P but it also makes me feel that maybe, someday, I won't be a desirable professional anymore 🤷

Collapse
 
rollergui profile image
Guilherme

uhh I forgot to add that, now, I believe it should be both... Specialize in something, but stay flexible and open to learning new things, even if not in a deep level :)

Collapse
 
bradtaniguchi profile image
Brad

I don't think you can be a specialist without some element of being a generalist. Otherwise you'll probably be missing out on too many external aspects of what you're doing, or miss that bigger picture.

A generalist is usually more achievable, and flexible job wise, so I'd go that route. Plus I find it more fun to be a generalist :D

Collapse
 
chrisgreening profile image
Chris Greening

Depending on the day sometimes it's better to be a generalized specialist and sometimes it's better to be a specialized generalist 😜

I know "generalists" who can get solid jobs anywhere doing anything but I also know specialists that are practically the only person in the world that knows so-and-so DSL or legacy language and they get paid enough to live off of just by going in twice a month and pressing a few buttons (hyperbolizing but you get the point)

I think generalizing is incredibly important (to a degree) for expanding your knowledge within your specialization as it forces you to see other perspectives. For years I was exclusively a Python developer and although I became really, really good at Python I've recently been working a lot in R and this complete shift in perspective has made me an infinitely better Python programmer (and programmer in general). Likewise when I investigated and learned some C I was able to deepen my understanding of Python and again push my specialization inward while at the same time generalizing outward

Kind of a roundabout answer but I prefer a mix of both - too much generalization leads to not enough depth yet too much specialization could lead to stagnation. Seeking out new/deeper generalized experiences can infinitely improve your skills within your specialization