Saturday, January 7, 2012

Generalist vs Specialist

Jack of all trades, master of none
I've always wanted to know everything - to be omniscient. This is a little unrealistic, so I usually state this goal as simply being a generalist. Often, when something feels "wrong" in my life, and I just can't put my finger on it, I'll later come to realise that it was because I had focussed too much on one thing, to the detriment of everything else. Through my study at UNSW, I completed several general education courses, and tried to do so as broadly as possible. That was good, but didn't satisfy forever.

One of the reasons I'm in the software space, is because of the wide variety of things to do. There's a whole spectrum from kernel hacking, to pixel layouts. Apart from that, there's also the wide variety of ways to do things. This is embodied in the TIMTOWTDI principle of Perl, and Ruby. But I love even languages that emphasise one way and one way only - Python comes to mind here. And don't even get me started on LISPs, functional programming, constraint programming or logic programming!

I'm far from an expert in all of these, but I feel that each has helped me with the other. Knowledge is like a bunch of cables in a drawer. Add a cable, and it gets entwined with the others. The more cables you have, the faster and more entwined the later cables get.

But alas for the generalist, modern society, is only possible because of specialisation. Think, in your daily life, about objects you interact with. How many of them could you build? How long would it take you to learn how to build all of them - more than a lifetime! We even say "Don't reinvent the wheel" as a warning to those who would try.

I finish with this quote, however, from one of pop culture's most famous generalists.
Jack of all trades, master of none - the finish of that phrase is - though often better than a master of one. - Adam Savage - @35:55

No comments:

Post a Comment