
Specialist vs. Generalist: Who Wins? - johns
http://www.sitepoint.com/blogs/2009/04/02/specialist-vs-generalist-who-wins/
======
wheels
As someone that considers myself largely a specialist, I'm going to say that
in the web world, it's mostly the generalist.

Technologies on the web are changing so fast that from a specialist's
perception, there's scarcely enough time to learn a technology in depth before
it's outdated. There are outliers, generally those implementing the technology
themselves (e.g. the people developing jQuery, the people developing RoR), but
in general most of the people using those things only have a couple years
experience.

Things like systems programming, where I mostly come from, it's not uncommon
to spend 5-10 years learning the field in depth without the technology
changing much underneath you. Web development 10 years ago was so different
that it's almost difficult to call it the same "specialization".

As a result, my strategy has been to learn just enough general stuff to get
myself by in a pinch, but more importantly to be able to recognize people that
know their stuff in the roles that we'll eventually want to bring in people to
fill.

~~~
russell
As a consultant who considers himself a generalist, I say it depends. If a
client needs a short engagement to fix some set of specific problems, then
they should get a specialist. OTOH for a longer engagement or for a fulltime
employee, get a generalist. The problem with specialists is they tend see
solutions only in their domain. If you hire an Oracle specialist, you are
going to get an Oracle solution. If you hire a J2EE specialist, you are
probably not going to get a Django or RoR solution.

Generalists are more expensive in the short run, but in the long run the
solution is probably cheaper.

If you are a specialist, you get work quicker, but it is the same work over
and over. About a decade ago I was working at BEA and one of my coworkers was
a CORBA specialist. He quit when they transferred him to the WebLogic group.
He wanted to continue to be a CORBA specialist. I wonder what he is doing
today.

~~~
wheels
I think if we're talking consulting, that's to say, a la carte development,
yes, there's a premium on specialists, presuming the person doing the ordering
knows what they're looking for.

There are domains where a lot of specialist knowledge transfers over. A kernel
hacker and jump into glibc with little pain. Someone developing databases can
jump into real-time systems and get up to speed pretty quickly. In those sorts
of fields, if you've not cut your teeth on something pretty closely related,
you're basically not worth paying for.

Turning that around to the web world, if you only know Ruby on Rails, but
can't do Javascript, don't know your way around an image editor and don't know
a little SQL, you're less valuable. Somebody who's competent in several of
those has a lot higher value.

A year and a half ago I basically wrote C++. That's it. Today, since I also do
our web programming, I regularly use three or four programming languages per
week. But looking down the line, it's not an especially good use of my time to
have me, a systems programmer, futzing around with jQuery.

------
tsally
This article makes it seem like there's a choice, when honestly for the vast
majority of all cases, there isn't. If you have the option, you should always
get your undergraduate degree in Computer Science instead of Game Design or
Security. Even better would be an undergraduate degree in Philosophy or
English, but let's not pursue that line of reasoning lest I say something
controversial. Suffice to say, programming (and Computer Science in general)
is essentially a task concerned with representing ideas. As the blog sphere
proves, most people have absolutely no training on how to represent ideas, and
the result is rather painful. English and Philosophy are far older disciplines
than Computer Science; consequently their methods of teaching students how to
represent ideas are far more developed. A major in English or Philosophy and a
minor in Computer Science will make you a far better programmer than most of
the pure bred Computer Scientists. Indeed, if I was designing a Computer
Science curriculum I would integrate English and Philosophy courses into at
least the first year of study.

If you want an example of a success story for the above doctrine, do some
reading about this man: <http://www.beckman.illinois.edu/directory/rpowers>

~~~
whacked_new
How much experience goes into these ideas? They are quite astounding. I have
the bias that physicists would make the best programmers. Anyone else?

~~~
tsally
Of course there's always going to be confirmation bias, but I look at people
who work on CS related stuff like Graham and Powers as proof. Also, I find
that great programmers often develop an interest in photography, music, or
writing later in their career. Is it then that hard to believe that they could
have studied these topics originally and still developed into great, even
excellent, programmers? The fact that English and Philosophy are concerned
with representing ideas (i.e. the act of programming) is undeniable. The fact
that people are not naturally good at representing ideas is also undeniable. I
personally would go with the fields that have a better track record at
producing people that think well in this way. Honestly CS has a pretty poor
educational record when it comes down it it.

~~~
whacked_new
Actually I think what you are saying is simply that smart people who enter CS
from tangential fields will still do well. Their competence will probably
manifest itself regardless of what field they came from. The striking thing is
when you say "English and Philosophy are far older disciplines than Computer
Science; consequently their methods of teaching students how to represent
ideas are far more developed."

This seems to make sense. But these disciplines, although old and established,
have spread across (diffused, if you will) a larger area, such that they
become umbrella terms for many other studies which may not be specifically
concerned with the formulation of ideas, and even less so in a quantitative
and procedural manner.

Thus it is still not entirely clear whether these older disciplines deserve
credit for providing better training in representing ideas than straight-up
CS.

~~~
tsally
I originally had this view of English too, until I took a formal course on
criticism in college. Some of the methods are surprisingly quantitative and
all of them are procedural. Indeed, many techniques of criticism grew of the
the fact that English Professors at universities in the 20th century had no
formal method of research, while the counterparts in fields like Chemistry had
no problem justifying their existence. I might be more precise in my words
above by saying Literary Criticism instead of English.

I agree with you that the direct benefit of these disciplines is not entirely
clear; must research needs to be done in this area. One thing that is clear,
however, is that the undergraduate CS curriculum is not particularly good at
teaching this way of thinking. The closest you can come to achieving the
effect of English and Philosophy on your thinking is a well designed CS
curriculum focused on theory. I've found that the students here who find
theory interesting also tend to be good programmers. Again, all of these
thoughts are based simply on unscientific observation, but I believe there is
a provable, related truth that might come out of them.

------
rw
News at 11: False dichotomies engender controversy, pageviews.

~~~
devin
Haha -- At least someone in here spotted the BS. This article is garbage.

~~~
krschultz
Pro's of being a specialist: "- They are experts in their specialty. \- They
know the work inside and out, upside and down."

I raised an eyebrow on the article too. The question is a good one to spark a
debate here but the article was thin IMO.

~~~
devin
Yeah. One thing I'd like to add is I'm all for a good discussion on this
topic. However, I really dislike the way blog articles, specifically their
headlines, are always being written with this "1 vs 0 -- CAGE MATCH!" style.
It often turns what ought to be a discussion into a debate. There's a big
difference. One of them is rational and inspires a healthy assessment of both
angles, while the other suggests you ought to pick a side. 0.02c

------
devin
This reminds me quite a bit of the "failure" vs "success" posts that are
always showing up. I don't think this is binary. You can be a generalist, and
still be a specialist in a given area. Why are people always jumping at the
opportunity to make something a 0 or a 1. Where is the damned ambiguity?

------
wildjim
I'd agree with the comment "it depends", except that I've always considered
myself a generalist, and it seems to be the main reason I've managed to avoid
employment problems over the last several employment "bubbles".

