Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

A question on software specialties inspired this question.

How valuable is a software generalist compared to a specialist?

When I say generalist, I mean someone who can take a project from requirements to deployment, and is competent with all phases of the software development lifecycle. Someone who can put all the specialties together into a cohesive whole. An expert generalist knows his or her weaknesses and fills them by relying on specialists - example: Oracle specialists or UX specialists.

What do you see as the ultimate career path of the software generalist?

share|improve this question

closed as off-topic by MichaelT, gnat, Kilian Foth, GlenH7, Martijn Pieters Jul 22 '13 at 11:13

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions seeking career or education advice are off topic on Programmers. They are only meaningful to the asker and do not generate lasting value for the broader programming community. Furthermore, in most cases, any answer is going to be a subjective opinion that may not take into account all the nuances of a (your) particular circumstance." – Community, Kilian Foth, GlenH7, Martijn Pieters
If this question can be reworded to fit the rules in the help center, please edit the question.

I like this idea. I would like to always be a general programmer, too - not language specific, or even paradigm. Just "programmer". – Michael K Nov 8 '10 at 19:44
up vote 8 down vote accepted

The ultimate career path of the software generalist is to become the one person IT army, able to take on any problem involving code of any kind as a self-employed mercenary. I'd imagine such people would be extremely rare, but they may exist somewhere. ;)

The generalist may have the challenge of maintaining their skill set as I'd imagine most people in this role would end up specializing a bit in terms of what they experience as it isn't often that a company would give the same guy the opportunity to know every kind of system,e.g. CRM, ERP and CMS to name a few by acronym. There are various points between the generalist and specialist though as something like web development could be seen as being rather general or rather specialized depending on one's view.

share|improve this answer
That would be an awesome job to have/create. I was thinking that it might be possible to pull off in a small town store front sort of consulting business, but you might just wind up fixing everyone's computers. – Peter Turner Nov 8 '10 at 19:36
Reminds me of a rpg class description. – Dominic McDonnell Nov 8 '10 at 20:53
livin' the dream! – Steven A. Lowe Jun 4 '11 at 4:36
@DominicMcDonnell It's called a Factotum. – World Engineer Oct 17 '11 at 3:46
@WorldEngineer, that's an interesting word I didn't know about, thanks. However, I was refering to the answer. A player class in D&D might be described as being a one person army, capable of tackling any problem. – Dominic McDonnell Oct 17 '11 at 4:06


I did this for a while, and being a generalist is the #1 skill that will make you a success. When people have a problem, they typically have been solving that problem one way for a long time, and need consultants to get a fresh perspective. As a consultant you need to know about ALL KINDS of products, open source, closed source, Oracle, Microsoft, Red Hat. You need to know what's good, what's bad, and what's best for the client. To be able to do that you need to be a generalist and know how to be an expert FAST. To be an expert fast (without already being one), you need to know the core principles and practices of software development, without only knowing ONE implementation of them. You need to be able to pick up things without having seen them before and within a short time be able to be proficient in it. As a self-proclaimed generalist myself, consulting was the best career move, and the most fun I've had doing software development. New experiences, new and diverse range of projects and technologies, good pay, and generalist traits help you succeed.

share|improve this answer
That's what I have been doing for 30+ years now. I almost always have multiple contracts. Currently I am doing embedded firmware in C (plus hardware design and PCB layout), some websites in PHP/MySQL (including some admin duties), and Windows software using C# and Delphi. – tcrosley Nov 8 '10 at 21:25

Software/System/Enterprise Architect - Too many x Architect titles out there these days, but you get the idea :).

As long as you remain a relatively hands-on architect (and not a white paper writing ivory tower architect) then that's a fairly good career path for a generalist.

share|improve this answer

I think working for a smaller company, if you can find a good one, is the way to go. I once I had a job where my duties entailed being the web developer, sysadmin, content writer, online marketer/"SEO", and general office tech support. Daunting at times, but it was a lot of fun and a good learning experience

share|improve this answer

A project manager that techies can respect, and who appreciates their art?

Of course, it could be a fine line before being a management toady knowing just enough to be dangerous about a lot of things...

share|improve this answer
Would also need to pick up PM skills - completely different role/skills required. Some people have a better starting knack for it than others mind you. – Martijn Verburg Nov 8 '10 at 20:00
@karianna: coding in the software lifecycle is one bit in the middle. A "generalist coder" maybe doesn't make sense. So what is a generalist if they don't have PM skillz? – gbn Nov 8 '10 at 20:11

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