4 ms·
Specialist vs. Generalist: Who Wins?
- wheels 18y agoAs 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 18y agoAs 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 18y agoI 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.
- whacked_new 18y agoI have the impression that it's much easier for a specialist to go general than the other way around. As such, I would like to believe that you are much more competitive than most generalists. Is this not your experience?
- wheels 18y agoIt depends on the specialization. I've got a friend who's a complete expert in object oriented ABAP and doing consulting for large banks. Unfortunately for him, he hasn't written anything of significance in a programming language that can be used outside of an SAP system in almost a decade. He's bricked himself in to doing SAP consulting for the rest of his career. There are some specialization which are just harder than others. Systems programming is just harder than web programming. So if you take an average systems programmer and an average web programmer, statistically, the systems programmer is probably going to be smarter. That's not to say that there aren't brilliant web developers, just that there aren't many dumb systems programmers. It's kind of like saying if you took a biochemistry student and a history student, which one would you bet on for learning a new technical skill? Probably the biochemist. Beyond that, it's easier to fake being a generalist. If I need to learn a new skill to a superficial depth, I can in a few days if need be. This doesn't mean that I'd have all of those things in my tool-belt like a true generalist would, but under appropriately lax conditions I can still get the thing done. It's almost impossible to fake being a specialist, at least when it comes to completing a job. If you've never used an SAP system, you're not going to learn how to emulate my friend mentioned above in a few days. Hell, I worked for SAP for 4 years and I can't really understand what he does. So, to go back to your question -- are specialists more competitive? If their specialization is in demand certainly. If not it mostly depends on how smart they are.
- whacked_new 18y agoI guess the problem is my question is inherently murky. I was speaking with the assumption that specialization implies greater difficulty, greater practice, greater determination, and in effect, demands greater smarts. "Generalist" is being thrown around loosely here. A really good generalist is probably a specialist in being general. In other words, a good specialist goes really, really deep, but a good generalist goes really, really broad. Both are very difficult, and after this discussion, I think a majority of programmers won't fall into either, even if they think they do.
- deleted 18y ago[deleted]
- tsally 18y agoThis 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 http://www.beckman.illinois.edu/directory/rpowers
- russell 18y agoActually, this is sound advice, although for employability, you might reverse the major and minor. Back in the days before the world was cluttered with CS majors :-), the consistently best programmers were musicians and people who never got a degree but liked programming.
- tsally 18y agoEmployability is always a concern, but honestly all you need is enough to get a technical interview. If you really know your stuff (as you should) and amaze the interviewer, they will be just that much more impressed that your degree is not in Computer Science. It creates an air of irreplaceability and uniqueness that is pretty essential. As you noted, there are a lot of CS majors floating around. :)
- russell 18y agoGood point. And if you get your coding experience in an extended fun project, outside job, or heavy OSS, you are far ahead of those pure CSers who did nothing but class assignments.
- rw 18y agoNews at 11: False dichotomies engender controversy, pageviews.
- tsally 18y agoIt's not really a false dichotomy; it's a pretty significant educational choice for many people. I agree with what you imply about the "quality" of the article, but I think it serves as a starting point for a valuable discussion.
- devin 18y agoHaha -- At least someone in here spotted the BS. This article is garbage.
- krschultz 18y agoPro'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 18y agoYeah. 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
- wildjim 18y agoI'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".
- devin 18y agoThis 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?