Nick Ang profile picture

Nick Ang

Generalist vs Specialist

I had an interesting conversation with my friend Rama today. We talked about many things, from management to meditation, creating music to digging shell scrapes. The most interesting topic that we explored was the idea of a generalist versus a specialist.

table with laptops and an empty chair Photo by on Unsplash

A specialist is someone who understands deeply an area of a field. Such a person is an expert in doing all things related to that area. This might take the form of a front-end developer who is close to the cutting edge of programming languages and myriad frameworks used in the realm of front-end development. He is probably also good at designing and implementing good user experiences.

My friend Rama in his current job is an example of a specialist. He writes code for the front-end user interface of his company’s product (mainly React.js and Redux), and works closely with a designer to create a good user experience.

A generalist is different from a specialist in that he has an understanding and ability to contribute across a broad spectrum of functions. This might be a full-stack developer who writes front- and back-end code, runs deployment scripts and maintains security groups in Amazon Web Services (AWS) all in one day, probably meeting a few hurdles at many steps of the way. Sometimes he is also involved in scheduling email campaigns and returning customer enquiries and so on.

I’m an example of a generalist at my current job. I write code in the back-end to set up APIs and cron jobs, and I also write code for the front-end user interface (mainly React.js and Backbone.js). Some days I help setup, configure, and maintain server instances on AWS. When needed, I attend meetings with potential enterprise clients and draft and schedule an email campaign to our user base.

Why are more people generalists?

Based on the kinds of people I meet, there seems to be a lot more generalists than specialists in the knowledge-based workplace. But why?

Aside from the “interdisciplinary” argument that my lecturers like to put forth for being a generalist, Rama and I distilled a few other reasons as to why there might be more generalists:

  • It has become easy to be a generalist. With courses on anything now available on demand online, anyone can certify themselves as competent in three or five domains
  • Generalists tend to have more job opportunities because they are perceived to be able to double up here and there, whenever the need arises (but it’s a funny thing to obsess over when you realise you can only ever occupy one job at a time)
  • Specialists might be not be appreciated for their full value. If someone is great at their domain of work, and his manager is not as good as him at it, there’s a comically good chance that his manager might not be able to appreciate how good he actually is. —> This might be subliminally driving us to want to become more of a generalist.
  • Specialisation is often misunderstood as being only good at one thing. This is not true because if the area you choose to specialise in is broad enough (ie. provides enough leg room for movement, like front-end development for example), you can be good at a variety of things that can prove to be transferable further down the line (eg. if you’re good at front-end web development, it means you’re probably capable at organising complex project structures and optimising code for speed, which are both valuable in other areas of programming)

During our conversation, the last point really stood out for me. Recognising myself as generalist right now, this point that Rama made made me sit up and think. Do I have a skillset that is too broad to be valuable to an organisation? Am I spreading myself too thin?

I think organisations can benefit from both kinds of people, and it ultimately depends on the stage of growth that they are in.

Generally speaking, a small startup with no seed funding for example, is likelier to hire generalists that can span multiple domains, like Full-stack Engineer. Bigger companies on the other hand might hire specialists who fall in very neat domains or sub-domains, like Front-end Engineer or Software Engineer (UI). Companies in the middle probably need a mixture of both - generalists to manage and specialists to expertly execute.

This brings us to the next question - which type of person is more likely to X? Where X can be:

  • get the top job at a company
  • earn the most money
  • be happier and satisfied with their work
  • make a greater impact

UPDATE (10.10.2021): Four years later, I wrote a sort-of follow up article here.

Nick Ang profile picture
Husband, dad, and software engineer that writes. Big on learning something everyday and trying to have fun before the lights go out.
contact  |  subscribe