I am not a teacher, professor, trainer, etc. but I recently was afforded the opportunity to teach programming to my co-workers.
At work we started doing more and more development in .NET. I previously acquired skills in .NET from a previous employer. My co-workers had minimal exposure to .NET and object-oriented programming.
My boss approached me to ask if I’d liked to teach ASP.NET to the rest of my co-workers. Naturally, I accepted because I thought teaching would help reinforce my skills.
The Setup
Lesson Planning
I got started learning .NET from studying for my MCTS, so I decided to prepare 10 one-hour lessons based on topics from the Microsoft Press books:
MCTS Self-Paced Training Kit (Exam 70-562): Microsoft® .NET Framework 3.5 ASP.NET Application Development
MCTS Self-Paced Training Kit (Exam 70-536): Microsoft® .NET Framework Application Development Foundation
Since many of my co-workers had not been exposed to object-oriented programming, I made the first lesson an overview. I knew that this would be vital to understanding the .NET framework. For this I just used Wikipedia as a resource.
The conclusion of each lesson was a “homework” problem using the techniques explained in the lesson.
Teaching Environment
Many of my co-workers work remotely, so teaching via the web was the best means. To facilitate this, I used the services of Dimdim for web conferencing in combination with a teleconference bridge.
Successful or Not?
I ended up delivering teaching all of my lessons. There were times where I had technical difficulties where the web conference experience lag time or my lesson samples wouldn’t produce the expected results. Through preparing each week’s lessons I reinforced my .NET knowledge and studied beyond what I was teaching to make sure I could explain any questions that may have been asked.
So my delivery was (mostly) successful and I learned a lot, but are these the criteria in which to measure success?
Feedback
What was missing from my teaching methods was the feedback of my co-workers. I never took it upon myself to ask them if they were learning. When you are teaching in a corporate environment it is difficult to gauge the progress of your “students”.
It would’ve helped me if I knew my lessons were heading in the right direction. I’ve asked my co-workers at the end of all the lessons what they got from my teaching, but by that time it was too late.
A couple of the responses I received were:
It’s difficult to learn a new programming language unless I’m using it for a project.
I tend to get distracted when learning via webinar.
Things I Would Do Differently
I think a classroom setting would be the ideal environment for teaching/learning. This may be costly especially if you have remote employees. Given this experience with teaching via webinar, I sometimes wonder about the quality of some online degree programs.
I also could have given an exam to ensure my co-workers were paying attention and/or grasping what I was teaching, but I think asking a more effective way would be to get them involved by asking specific questions or having them work hands-on in a classroom.
By becoming a teacher (if only through work), I know understand the importance of feedback/evaluation. In academia, most teachers and professors will require an evaluation at the conclusion of a class, but I think continual evaluation would be most beneficial for the student and the teacher.
The teacher can adjust his/her teaching style to adapt to the students and the students will be able to comprehend what they are learning.


3 Comments
Next time you should record them so I can watch them =], wouldn’t mind learning some .net… seems to be popping up in a lot of places I look.
I think one of the hardest things about trying to teach technical stuff is that your class is only as strong as the weakest person and talking over someones head is never helpful.
Seems to me like you did a good job, next time should be fun too ^_^
Perhaps also provide the good books and notes to your students so that they can even learn it in their spare time.
@Kevin I did make a suggestion to my co-workers the end of my teaching to follow up by reading the same .NET books I used to prepare my lessons. This may only be effective for some because everyone has different learning styles.