Don't be a manager early in your career path
After nearly 5 years of undergrad computer engineering I was thrilled to be done with school and finally earn some money. My first job was as a Program Manager at RealNetworks, a hot tech startup back in 1999. I was attracted to this role because instead of a traditional "code monkey" job I got to be a "manager" - a modern day misnomer itself but I digress. In retrospect this single decision was the highest opportunity cost I've incurred in my career.
Coming out of school I felt every job other than computer engineering was exciting. Writing code seemed downright boring and after a subpar internship I wasn't sure I'd be great at coding commercially. So I decided I wanted to be in management - or at least on a path to management.
What I didn't realize was how quickly my technical skills would attrophy by not taking a technical job out of school. Even worse, because I never worked as part of a technical team I never became versatile with processes, systems and tools that are crucial to developing world class products. My experiences in college were never at the scale commercial firms build at so I never knew first-hand what it meant to build in teams larger than a typical college project size of four people.
My father, still the wisest person I know, pleaded with me to take an engineering job or at least finish my masters in engineering upon graduating but I steadfastly said no... all the while trying to regale him with tales of how I was managing teams and important products. Only years later did I realize how wise his advise was as without my technical skills I was part of a huge amorphous population of "manager types."
The ability to create something - whether computer code, an article, a song etc - and do so without relying on someone else is rare and beautiful. Especially in today's economy where you may find yourself jobless on short notice the skill is precious. Beyond job security however, also comes the exhilirating freedom and fun of building something you can call your own - and done on your own timeline. A manager can only build with the aid of a team and may never know this feeling of true ownership.
This isn't to say that management is a waste. Quite the contrary, management is critical to scaling beyond groups of four people, and experienced managers can recruit and motivate teams through long grinds, avoid common execution pitfalls and ensure that business strategy supports the technology while outfoxing the competition (far too many companies have built a better mousetrap but failed to reach commercial success).
I quite enjoy being a manager but given my technical background I feel I could've taken some more time to get here. Once again, I should've listened to a cliche and taken time to smell the roses. Well, it's never too late so I'm off to learn Ruby On Rails now!