Since about 2 years into college, I’ve been trying to further narrow down my various, abundant interest. I started with just, “Yay computers!” and now feel that I am getting closer to that point where I can say, “I enjoy these things, specifically.”
I have been fairly good about it, even though I don’t much like to think of it as ‘specialization’. The things that I find that I really like are:
- computer graphics (with all that delicious math)
- programming languages (compilers, interpreters, virtual machines, et al.)
- game programming
- embedded hw/sw (ARM is very much so winning, which is probably a [Good Thing](http://www.c2.com/cgi/wiki?GoodThing))
That is still a little spread out but I feel that these fields are all concerned with performance and tend to get much closer to the bare metal or OS than what enterprise desktop applications do. My other interest have been relegated to the hobby-only domain: FPGAs and Web Applications. Though I have flirted with the idea of being a web app guy, working remotely, in Python or Ruby (or Clojure or …)
I suppose that I’m often overwhelmed with the stuff that I need (or want) to learn, and the daily amount of time I have to learn it. I feel that it is something like an under-damped system or perhaps a water reservoir where the outlet pipe is too small, requiring more time to drain than what is desired. I then also realize how much free time I wasted while I was in college, or while I was in the military. I suppose that is how it goes though.
 - From Robert Heinlein, “A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects.” Also, see this C2 entry.