I've always been a generalist. I learn less and less about more and more until I know nothing about everything. Same limit, different direction of approach.
On the quiz team I was the trash-can, the guy who gets to come up with an answer when either of the other guys have no clue. So it fell on me to answer, creatively if possible, questions like "Here's a newspaper ad, with the brand name cut out. Name the brand." This was of course not the kind of question one expects in a school quiz.
On a work level, being a specialist seems to be a good thing. Being able to say, for instance, "I'm a level-3 God in linux device drivers," would probably set the pulses of many hiring managers racing, always assuming of course, that the manager in question knows that a linux device driver does not have four wheels. One presumes that for actually getting some deep and dirty work done, a specialist is better than a generalist. The specialist would no doubt be able to get the job done faster, cleaner, and with a minimum of fuss. I'm nowhere in that league. The number of topics which I can say I know to any reasonable amount are vanishingly small. And the rate at which I forget stuff that I learn is quite alarming.
As a generalist, I've been quite puzzled that people want to employ me*. Sure I know a lot of crap about a lot of crap. But the amount of stuff that I'm actually able to do in each of the things I can talk a few sentences about is quite low. For instance I know why it would be a bad idea to code a standard C for-loop in Verilog, but I'd probably spend a month doing a simple CRC generator. I know why you shouldn't call a virtual function from a constructor, but I'd take
forever to solve a simple algos problem. I can tell you what a financial derivative is, but not how you do math with it. I can argue with you for hours on the finer points of literary merits of X. And so on, ad infinitum.
This does have its positive points sometimes. When we needed a way to deliver software to our boxes, I knew that apt was probably a pretty good idea - although I'd never setup an apt repository in my life. When we needed to find something to cross-compile with I remembered reading about scratchbox. When the build time at my previous company reached titanic proportions (6hrs) I remembered reading about ccache and also took the effort to put it into place, cutting it down to a few minutes. I can come up with great analogies, marrying diverse fields. For instance we're trying to sell the idea that network connectivity should be as reliable and available as electricity**. When many of my friends have questions about stuff on which they have no clue, I get to track things down. For instance, "is there a java obfuscator?", to a guy who has an ECE background?
There is one thing I do know pretty well though - how do you learn something in the shortest time possible to be able to accomplish the given task? I always assume I can learn new stuff. I believe, as it has been stunningly put, the following,
Muad'Dib learned rapidly because his first training was in how to learn. And the first lesson of all was the basic trust that he could learn. It's shocking to find how many people do not believe they can learn, and how many more believe learning to be difficult. Muad'Dib knew that every experience carries its lesson.from Dune by Frank Herbert.
So I interview for a large Internet company which you've probably never heard of***. They are clearly looking, not for a mere specialist, but for a super-mega-ultra specialist. They have six-plus rounds of hard technical interviews I'm told, I quit after two to avoid giving any more pain to the interviewers. But the products the guys are meant to develop? Well they're so diverse that even the marketing guys seem sometimes confused, and only the founders have a goal that sounds grand, but could in reality, mean pretty much anything and everything.
Clearly, I'm not cut out for that kind of interview process. But would I do well there? I would have thought so, but the interviewers and the company think very much otherwise.
So what's an easily distracted generalist supposed to do these days? How can I get a job**** where the diversity of what I know is an asset? Drop me a line and I promise I'll host you a big one if it works out!
fReaK ouT!
* Potential employers please note that I'm just kidding here. I really do know enough for you to employ me on a nice fat salary. You can trust me on that. Really!
** It's a bit obfuscated 'cos it's a trade-secret ;-)
*** If you've been living in a small cave in Tibet for the last 10 years
**** Current employers who may be reading this blog, please note that I'm quite happy here, and that I'm soliciting suggestions for potential future utility :-D