Thursday, March 25, 2010

The need for a Mentor in a Developer's early Career

(Author's Note: I wrote this a couple of years ago after my mentor left the company. Shortly after he left, nearly every other Developer who felt the way my mentor and I did left the company. Demoralized, I abandoned this blog for about a year, but there are still some good nuggets of information here.)

The old saying “When it rains, it pours” has proven very correct rather recently. Not only have I been busy with a particularly nasty bug lately, but I also received news that one of the developers on another team at the company I work for was leaving. He's been a mentor to me since I started my career in development, so it is with great reluctance that I see him leave.

I have been giving a lot of thought to learning from the events that occur in my daily work. So, I've been reflecting on why I've felt such a kinship with my mentor (and why I keep referring to him a such), as well as why I think it's been helpful for me.

First, he and I have a lot in common. Besides a similar sense of humor, we also have a strong desire to not only write code, but write GOOD code. On several occasions when I walk by his office, he will point out the code which he is currently working on and show me questionable coding decisions his peers have chosen and what he is doing to correct them. Often we'll discuss an optimum solution, but often, with project time constraints being what they are, this is purely an academic discussion.

Second, of most of the developers I know, he is one of the few who seem to care about the craft. I'd say most developers fall into a category called “Code Monkey”. A “Code Monkey” might do designs, some coding, and be very proficient at it, but has little desire to learn beyond what the everyday tasks requires of him/her. A “Code Monkey” knows a few languages very well, but couldn't name, much less code in the latest “hip” language. The ''Code Monkeys" will never see this post though, because the very same desire to read blog posts and other writings from other developers demonstrates a desire to become better at our craft.

The developers who care to learn beyond the every day tasks, who desire to make things better, and are actively learning about new techniques and how to employ them are true Software Engineers in my book. They care about their chosen profession, and realize that the field is always evolving and requires a commitment to learning.

He's also the developer who introduced me to Code Complete. This book has proven an invaluable insight into the Development process and thanks to it, I've found and have been a daily reader to the blog Coding Horror. If you are not familiar with either the book or the blog, then I urge you to check them both out now. I'll wait.

Finally, he's been a good friend whom I've always been able to talk to. The nuances of corporate culture, development style, internal code systems and the like make it easier for us to relate to each others problems.

In the end, I know my fellow Software Engineer must move on to another company for a variety of reasons. Hopefully the two of us will be able to stay in touch. In the mean time, I will look forward.

In many classic tales, the hero of the story must lose his mentor before achieving greatness (Luke Skywalker and Obi-Wan Kenobi, Harry Potter and Albus Dumbledore, Frodo Baggins and Gandalf, just to name some more well known examples). Perhaps this is my chance to step out on my own and find my own path.

If you're staring out in development, I urge you to make friends with some of the Senior developers, either on your team or on others. The bond you make with them may provide you with knowledge and understanding that you would not have gained on your own.

No comments:

Post a Comment