I did not know what a career was when I started out as a software engineer; I did not even know what a job was. All I knew was that this was something I had to do, that everyone did: go to school, get a degree, get a job. My parents made sure that I went to school -- packed my lunch, paid my fees, frowned on poor grades and scoffed at the notion that humans could exist without graduate degrees. Once I got a job, my manager made sure that I had work to do and the corporation paid me regularly. I was on my own without ever realizing that I was. I was living by myself, making my own food, buying my own clothes and earning a good wage; but I was also at the bottom rung of a long and winding ladder of a career and I had no idea.
I spent the first few years of my career doing well a job that I loved doing -- writing code, building programs, making things work. I never gave a thought to titles or promotions or seniority grades. Those were vague notions at the back of my mind but the stronger notion was that if I did good work, it would be recognized and the rewards would follow. For this post, suffice it to say that it was not enough. I have thought back many a time since, at incidents that could have been handled better, opportunities that should have been seized, ideas that should not have been dismissed, roads that should have been trod, wishing I knew then what I now know. That rue has led me to accost fresh-faced engineers at work and lecturing them on what a career should be, leaving some more wary than wise, I've been told.
My fellow blogger on this site, Jim Coplien, does a wonderful job of talking about building an integrated career and wrote a great first post about what it means to be a software engineer. I love reading Jim's posts, and the first one in particular makes it clear that he is not going to talk about "planning to become a CEO". "Life happens a minute at a time", says Jim, and I cannot agree more. The rueful incidents I mention above have all been rueful moments, really.
But this is after all the "Build Your Career" site, and I want to pick up on what Jim has started in talking about the big picture and make the focus a little bit narrower. It will still be, as he says, in "the everyday stuff" that we shall find the nuggets that add up to a rich career but in the specific context of a software career in the modern corporation. A lot of the questions I raise, and answers that I suggest, will be opinions; self-inquisition disguised as opinions, really: What does it mean that I am a software engineer? Am I an engineer or a programmer? Why am I not a CEO yet? Why am I writing this blog? Will I be coding when I retire? Should I learn Ruby on Rails? Is it wrong that I haven't built an iPhone app yet? Why am I surrounded by idiots? And so on ...
I don't want to put myself into a strait-jacket as far as the content goes, but as I look back from where I am, I see three distinct phases in my technical career where I could have used some insight, some advice, perhaps a mentor. I am aware that The Social Network has skewed what a software engineer thinks a career should be, but this is a blog for the rest of us. Generally,
- The first five are when you are just starting out and don’t really know what to expect, and chances are that what you do expect is completely unrealistic. How you face, and grow, in the first five years impact how you handle the next five
- Years 5-10 are where you are perhaps comfortable with the technical aspects of your job, but are now faced with the subtler challenges of dealing with and leading people and projects. How well you adapt to and succeed in these years relate to the kind of opportunities that will open to you in the prime years of your career: years 10-15.
- Years 10-15 are where the engineer faces his/her toughest challenges, where s/he has to battle boredom and complacency, tackle threats from competing coworkers who want the same promotion and newbies who claim to know more than him/her, and face the biggest decision of his/her career: whether to switch to management.
With the above as my triangulation points, I will share my thoughts and experiences with you, for I have found that nothing clarifies thought and provides insight into oneself as thinking out aloud with friends; and that's a thought I leave with you, my new friends. Till next time, cheers!