If you would allow me a personal moment for a second, I promise I’ll tie it in to something technical and relevant. Recently, my grandfather passed away at age 84. He was a brilliant man in both quantity of knowledge and the application of that knowledge – especially in the realm of finance. I won’t quote his accomplishments here in the interest of time and topic, but I assure you they were many.
As my father and I were handling all of the things that need taken care of following the death of a loved one, I got to thinking about my grandfather and what he knew. I got down a little bit thinking of how his lifetime of knowledge and wisdom has now been lost and humanity was poorer for it. However, upon further reflection, I realized that these things were not lost; they lived on with my father and me.
My grandfather raised my father, teaching him and guiding him along the way. My father in turn raised me with many of those same principles and my grandfather was there as well for help and guidance when called upon. Many of you know where I’m going with this. You knew two paragraphs ago, but I’m going to say it anyway! We need to mentor other developers in this same style.
We need to have Code Children and Code Grandchildren, Code Cousins and Code Siblings. Each developer goes on a journey; learning little by little along the way from books, blogs, user groups, trial and error, forums, etc. However, in my experience, I’ve seen very little “direct mentoring”.
“Direct mentoring” (according to me) is the deliberate pouring out of your knowledge into another person. You take ownership in their learning process; you become an essential piece of their growth. I’m talking about something different than “drive-by” question answering where we offer a little help and move on. True mentoring is a deliberate act. You have chosen a person (and they have accepted you) and you become someone taking an active part in their learning and development. You can suggest books to them, peer review code, answer questions, and be a person who holds them accountable on goals like learning a new language a year or reading a book a month.
I know that I am not covering brand new ground here. I also know that there are other people talking about this very thing. The “developer as a craftsman” group is very into this idea, describing it through parallels to apprenticeship in other vocations. I would like to see developers begin to mentor others and to in turn also seek out a mentor so that we can all learn from each other and give all of our hard earned knowledge some new legs by passing it on to someone else.