Possible Duplicate:
Is it better to specialize in a single field I like, or expand into other fields to broaden my horizons?

I work at a ~50 employee company (UK), where all the technical people do a bit of everything. Specialising in anything for very long (6 months) is discouraged. For example, last week, I built a new Debian webserver, refactored some Perl, sat on a sales phone call, did a tape backup, reviewed code, built and deployed an RPM, gave opinions about x, y, z...

With such a work scheme, I have gained a general knowledge how many things work, and pretty specific knowledge. I maybe program for 5 hours a week, despite officially being a developer.

Does anyone else work like this, (or is this company unique)?

Is it a problem to have skills developed in this way? (i.e. know a bit about everything in a certain domain, rather than know everything about say, one programming language?)

Is it okay to be a generalist?


7 Answers 7


Being a generalist is great, but in my opinion, discouraging specialization is one of the worst ideas I've ever heard. Why would you want to have everyone do every job well, when you could have everyone do their job exceptionally? Seems like a direct road to an uncompetitive company.

  • 4
    because you can't be the jack of all trades and be an expert at the same time.
    – Pemdas
    Commented Jan 17, 2011 at 1:13
  • 1
    @Pemdas Exactly, no one can do everything exceptionally. Commented Jan 17, 2011 at 1:15
  • Excessive specialisation is not always good for a person (like getting a PhD which has been defined as knowning more and more about less and less until you know everything about nothing. OK thats an exaggeration but the point is that excessive specialisation makes you employable in only a very small field, which limits your future options. It might be good for your employer, but even this only up to a point. If a business has only one person who can build webservers then they become a bottleneck, and the business is vulnerable if they leave. Commented Jan 17, 2011 at 7:00
  • 3
    @Pemdas I disagree: you can be a jack* and still specialize, there is plenty of room in your head to do this. But you need to put in the required effort. If you consider your work 9-5 then it will be difficult. Commented Jan 17, 2011 at 11:43
  • @Tedd Hansen: It might be impossible to fill your head before you die, but it's equally impossible to fill it with everything before you die. Even everything in CS. Point me to someone who has, and has never been surpassed in any area, then we'll talk :P Commented Jan 17, 2011 at 16:57

There are loads of great reasons to be a generalists, both from the perspective of the individual and the company, but there are risks too.

Many people have minds that aren't best suited to specialist, deep, knowledge, but are capable of understanding (and connecting) a broad range of subjects. This isn't to say they're not smart enough to understand detail, more that they're just not interested in that level of information - they'd rather understand lots of things a bit than one thing completely. It often (but not always) combines with a pragmatic approach - being more concerned with what works than what's technically best.

So if that sounds like you, then being a generalist is fine. What you should be concerned with is if you're in a generalist role and frustrated by it, in which case you should look to specialise more.

In terms of the company, from a managers perspective (for I am one), I love having a generalist or two on the team because they're the guys you can drop into any situation and know they'll cope. This might be because the specialist in the area is otherwise occupied (or because your company is too small to have someone full-time in that role), it may be because you simply don't know what skills are going to be needed (generalist are often great at assessing tricky support calls where you have no idea where the root problem is), or because it's the early stages of a project and you have no idea what the eventual solution might look like so want someone who is capable of understanding all the options without automatically trying to steer it towards their own preference.

From a career perspective, generalists the options for generalists are mixed. In some places generalists are the people who get ahead because managers do like them - they're the guys who get things done and aren't precious about it. In other places they suffer because they're never the best at any one thing so they're often seen as steady but unspectacular.

Certainly once you get to a certain level of experience things can be less than ideal. Generalists for obvious reasons often move into management (if is after all just one more thing to be interested in - that's what happened to me), but if they don't it can become harder to progress because you don't necessarily have the huge experience of one thing it takes to stand out. Because of this I'd say if you do intend to stay technical through your career, try and keep some level of focus around what you do (50% of your time or more) as otherwise you will find yourself in a bit of a limbo later on.


If you don't mind wearing so many different hats, then sure. Of course, many here obviously prefer to only be a programmer and not be distracted, but there are plenty of IT positions with variety. I code, am in operations, occasionally handle support and am going to be taking on some network admin duties. I think it keeps work interesting, and I'm sure there are many people in smaller companies that have similar roles. As long as you feel you're still learning things that will contribute to your career, I don't see the harm.


That was the buzzword of the Dotcom era "wearing many hats". What it boiled down to is that we're too cheap/lazy/whatever to hire the people who REALLY have area X (DBA, Sys Admin, PBX) nailed down. So we're going to attract people with stock options and let them pitch in wherever they can. I didn't mind it so much because it gave me exposure to a lot that I wouldn't have gotten in a traditional job. And honestly, Dotcom work jump started my career even though I didn't end up being a millionaire (yet).

Today, I think you should dive deep on a specific field but you should always be training on (free time most likely but if you can get OTJ more power to you) something you suck at. You're really great at UI development? Learn SQL. Master of the communications stack? Learn JavaScript. BASH is your middle name? Learn how to configure a Windows server. Don't worry you won't run out of new things to learn.

Eventually, you will come to a point in your career where you have to make decisions that impact entire systems, teams, departments, and if you're lucky companies. But in order to get there, you need a holistic view of technology and how everything fits together. Not to mention the ability to select the best tools for the job at hand. You'll never get there if you're too much of a specialist.

My trick is that when something new appears that looks like it will be useful to me. I spend the time it takes to go through the introductory tutorials. When I have more time, I'll dive deeper into it and try to build my favorite app (which has been built many times over on several platforms in multiple languages by me) using it the new technology. It allows me to have a feeling for what it takes to use the new tech and if it's ready for prime time.

So I'd suggest that you have a great opportunity to broaden your horizons on someone else's dime. Carpe diem.

  • Case in point...I just installed mercurial on my machine and am using it to create a journal of the evolution of a code sample for my book. Rather than printing dozens of pages of code to show differences in each step, I can just point readers to my repo and tell them to follow along with changeset 9aC534. In the process I'm teaching myself how to use mercurial. Commented Jan 17, 2011 at 8:07
  • I think you're being slightly harsh in terms of why companies don't have certain specialities. I manage a team of 15 in a company of 20 and the reason we don't have certain specialities is in an organisation that size, you simply don't have enough work for a full time DBA for instance so someone else ends up picking up the pieces until such a time as we're big enough that it can be justified. Commented Jan 17, 2011 at 11:23
  • No I was talking about DotCom days when companies were working with millions in seed funding and paying for advertising for a product that wasn't released yet. A small company definitely needs all hands on deck for any function to be competitive. Commented Jan 17, 2011 at 12:09

Well quite a interesting company you work for .yes the job will be interesting, no doubt,you are getting your hand in many things that's good but you should also make sure that you specialized in one or two things of your interest in the long run because you will find that the specialists rule and they are the pillars and cement of the company every where.

i will vote for specialists .


Try being a generalist and also specialize in something. It's not that hard. As a generalist you don't dive into the depth of every technology you use - you just know how to use them.

This leaves enough time to specialize in something you find really interesting.


The book My Job Went To India might interest you. Specially the following chapters, which are freely available:

  • While these links may answer the question, it is better to include the essential parts of the answer here and provide the links for reference. Link-only answers can become invalid if the linked page changes.
    – gnat
    Commented Jan 11, 2013 at 3:28
  • it would be 200% legal if you write brief summary of what you learned from there, in your own words (you learned from these, right? otherwise why would you recommend it?)
    – gnat
    Commented Jan 11, 2013 at 7:00
  • @gnat: you're right. I should apologize for being lazy. Sorry.
    – jweyrich
    Commented Jan 11, 2013 at 15:32

Not the answer you're looking for? Browse other questions tagged or ask your own question.