As I watch (a rather large subset of) my peers headed towards job interviews and starting a career; I see that a lot of them face existential crises about the relevance of their education with respect to their interests and passion.
It can take a long time to figure out what you want out of your work life; despite the amount of time invested in what seems to be an outdated "get-a-job" degree that focuses little on the parts of computer science that matter; atleast where I come from. (This is a discussion for another day.)
I watch the tribulations unfold - the degree (is supposed to have) opened up many opportunities for him, but I don't think he ever found exactly what he was looking for. Instead, he's spent years after college flitting from job to job. Although, he had nothing to complain about. He was making a great living. He was never on the market for particularly long before some new opportunity would come up. But he wasn't choosing a career path. He was letting happenstance determine what was, and what he was becoming.
At some point in your career, you have to stop floating through life like the symbolic feather.
Unfortunately, I don't think my friend ever figured out what he loved to do. He never determined the colour of his feather. But I got lucky. A few years ago I realised that what I loved to do, what I really loved to do more than anything else, was build things and fool around with computers. Seems obvious, I know, but you have the advantage of not being me. Self-awareness is a perplexingly difficult thing from here on the inside.
Life is too short to stay at a job where you're not doing the things you want to do, where you're not enjoying yourself. And yet here I was, a guy hopelessly in love with all things computer and software, working with people that considered to be a byproduct, a cost center, a necessary evil.
A friend of mine works for a company that has experienced a mass exodus of developers. The best left first, the mid-range followed. What's left are the people who clock in 9 to 5 for the paycheck and don't take pride in what they're building. The company now has what they asked for: a team of low-level code jockeys. The people with initiative, energy, and passion have left.
Enterprises that consider developers "commodities and low level craftsmen" are doomed to have (at best) average developers working for them.
The work was interesting, but it was abundantly clear that software was not the lifeblood of this organization. Nobody was quite as obsessed with the software as I was; nobody saw it's potential to simplify, organize and streamline all the mundane tasks of the everyday routine. My passion for software, and everything around it, was clearly not shared.
I set out to change that. That's why, when I had the chance to run a small IT team; I chose to work with the people that share the same philosophy. I'm surrounded by incredibly talented people who are all passionate about software and recognize the potential it holds. Dammit, we have fun.
Joel Spolsky describes the guiding philosophy behind his software company:
Frankly, the main reason I had to start this company was to have fun at work. Working at Fog Creek is intentionally designed to be pleasant. We started the business because we wanted a great place to work, to spend our daylight hours. And we have a disturbing tendency to try to do a lot of things ourselves, especially if it's going to be fun or if we think we can do a better job. It takes us a little longer that way, but I figure the journey is the reward.
If you love computers as much as I do, you deserve to work at a company where people come to work not to punch a clock, but because they love computers, too. You deserve to work at a company where software engineering is respected. You deserve to work at a company where peers meet to enjoy building software together.
Choose wisely. And remember, this stuff is supposed to be fun.