Home >
The single biggest recommendation I can give to developers out in the field, the one thing that they can do that will impact their career and personal growth, is to get involved in higher education by teaching. The benefits are so many, so far reaching, and so distributed that I felt they would make a great topic for discussion.
The first and probably most obvious benefit for yourself is that teaching gives you real mentoring experience. As you advance in your career you will most likely need to mentor developers junior to yourself. This involves not only having patience but the ability to think outside of your own perspective, two things that greatly improve the longer you teach.
Teaching involves being able to take complex concepts and convey them to others, in a way that they can comprehend and absorb those concepts. Depending on the perspective and background of the person or group you are trying to instruct you will have to drastically alter your approach, and this requires a very thorough understanding of the subject matter. Thinking about these concepts in different ways builds new symbolic links in your mind, makes you think about better ways to express those ideas in metaphorical language, and can reveal nuances that you may not have understood before.
You also quickly become very comfortable with public speaking when you teach, and that is a skill that you will need as you advance in your career. Whether speaking to your team, or updating your department or giving reports to senior management, you will need to be comfortable addressing groups of people. This actually was the reason I started teaching. I remember my first day standing in front of the class unsure of the exact words I should say until I heard myself saying them, sweating uncontrollably, it was at that moment that I knew that I had to become comfortable and think on my feet or I'd never survive the semester. Within a year that became something that I didn't even think about any more.
The longer you teach the more your professional network grows as well. Today's graduates turn into tomorrow's engineers, upper management, and business owners. Each student is a potential hire at some point or even a future manager or client.
Pragmatically, teaching can also be another stream of income. If you treat it as a second career and foster it, authoring new classes, taking on more classes and responsibilities such as tutoring or taking part in thesis committees, it can be a significant supplement to your salary.
The school where you teach benefits tremendously, because of the wealth of real world experience that you bring. You are living what the students are training for, you know what tools are being used, what technologies and methodologies work, and you potentially could be hiring them. If you see gaps in the curriculum, things you think graduates should know but aren't being taught - author a class! I've found that schools are very receptive to creating new classes and either fitting them in to the schedule or offering them as electives, and students recognize those new technologies as something they need to learn.
Probably the most important benefit of teaching is being able to shape and influence the skill set of the next generation of top talent. Like I said above, these are tomorrow's potential hires and future business leaders, how they approach problems, what technologies they use, their analytical acumen - all of these you plant the seeds for in class. Easily one of the most gratifying moments I've had in my career is having a student come back to me after years in the field and say "Tom - you and your classes are the reason I pursued this particular career path"




Facebook Application Development
This is excellent advice, Tom. I've been teaching in some form or another for years (academia, technical, etc.). Not only is it rewarding but whatever subject I was teaching, I became infinitely more knowledgeable in it.
If you have the opportunity to 'educate', do not pass it up!
Great post, it's one of things I was thinking about. My friend and I graduated from same Uni and after gaining experience in development returned to alma-mater to give series of lectures about current standings in web-development world. Students were rather happy that they taught real-life experience, something computer science textbooks didn't tell about. We also continued to write blog for students to tell them in simple terms what we are learning by hours of real-world experience.
During these classes, I learned how to talk to people (yes, it's hard for me), how to explain something to freshmen, and also, learned deeply those issues I was taking for granted without deeper understanding. I was learning, while I was teaching.
Thank you for your post, it's 100% true.
i agree! teaching is work but there are many rewards to be reaped. for me the biggest challenge always comes in designing assignments. i want my students to have a proud feeling of accomplishment when they complete their work, which involves taking a leap themselves rather than being coached through every step or repeating exactly what we cover in class. it's always an interesting design problem for me.
What advice would you have for introverts? I come from a long line of teachers in my family and I found that this was not a character trait that came to me naturally. I really believe that this would help in my team building skills at work, but I am skeptical that this is something I can do. Do you believe that being a quiet person is like being a comedian...you can't learn to be funny anymore than you can learn to be comfortable in front of a group if you are not comfortable with more than one on one interactions?
@Anna: Anna - I was an introvert when I started teaching. I accepted the position as a way to force myself to get comfortable speaking in front of groups. Really it depends on what kind of person you are - do you jump into the deep end of the pool or do you slowly inch in on the shallow end taking your time to adjust to the cold before submersing further? On my peer team we've been discussing how to get our directs exposed to public speaking and presenting and one of the ways that came up was to slowly build up to it - present something you made to a small peer group like a small code review, build up to a larger team presentation for a lunch time brown bag, etc.
It really is a learned skill, like anything else. and the more you do it the better you get at it.
I'd say that this is generally bad advice. Most of the programmers I've met during my 10 years in web development are total sociopaths who are barely able to explain what their own code is doing, and can't put reason behind why exactly they decided to write it in the way they did.
And of course there is nothing worse than a teacher who cannot express well, or put reasons behind his teachings.
Marin
@Marin
I think that is a really poor description of developers (like myself) who also enjoy teaching through public speaking at conferences and authoring books and digital media (blogs, etc). It is very important that those who would be considered veterans give back to the community and help the newer community members find their way. That is the whole reason that I decided to be the community manager of InsideRIA.com and also why I regularly post free content to my personal blog at http://blog.everythingflex.com.
Have you never learned anything from a tech blog like InsideRIA.com? Who do you think created the content that you are reading on this site? Of the contributors of this site, I would say that over 90% would consider themselves developers.
All I can say in closing is that without the contributions or developers to this site (of which many are done without any compensation), InsideRIA would not exist. I hope you can see how valuable the writings of developers are to those who are in search of knowledge to expand their skills.
OK, my rant is now over. :-)
This is one of the best blog posts that I have come across in recent times. Teaching others is a win-win for everyone involved - the tutor and the students. If not for community driven sites, personal blogs and zillions of other sources for technical information -- we would be a poorer lot. Even writing a blog post discussing a subtle API is a form of teaching.
Great one post for encouraging teachers.. M want to repeat your these words here that make me write for this "Probably the most important benefit of teaching is being able to shape and influence the skill set of the next generation of top talent"
Really we can say that teachers investment for students is the actual investment for future.
Is it an advice due to recession ? Then its OK. Infact the coolest job is teaching. See below the advantages ;)
1. You will ve months of vacation within a year
2. Less no of classes per week
3. Does not matter the performance of ur students, you will get ur salary
4. you can take private tutions to add extra money
5. you can give more time to ur family and to ur research topics
6. You will always feel like a student/teen ;)
Great idea, but would like to hear more on how you got the job teaching (saw a posting, contacted the school, what).
Thanks.
Ditto what Michael said - how do you go about finding jobs teaching? I'm a developer who would love to try teaching on the side. Every time I go looking for a teaching opportunity, it seems they are looking for full-on professor/academic types. I have only a bachelor's degree (and it's in math) and my experience (about 11 years) as credentials. Is that enough to get a teaching role somewhere?
@Michael and Eric:
Michael's original comment actually inspired me to write a follow up post to share my experience how I originally started teaching and the path that I've seen to go about getting a position at schools. I'm almost done with it and should have it posted soon
Eric - what departments and schools have you approached? Different schools have different criteria for full time and adjuncts. Some schools want adjuncts to have advance degrees, some don't. Some departments might have specific things that they need in professors, etc.
Your best bet, and this is kind of the point of my next article besides my own personal anecdote, is to contact the head of the department you are interested in and find out what the criteria is for adjuncts and if they have any needs for someone to teach a class.
Great, I'm looking forward to the follow-up on how you got started and your thoughts on getting a position. To be honest, I've not looked very thoroughly - I never got further than browsing school and job sites for positions. Thanks for the idea - contacting the head of the department certainly seems like a good start. :)
-Eric