Being the lead ColdFusion Software Architect I get the fun jobs, and I mean that in all seriousness, like training new developers. In some cases they are just new to ColdFusion and not new to programming other times they are new to it all. Today I had the sincere pleasure of training 4 individuals that have been working in ColdFusion on and off for the good bit of a year. The rest of the time they work in various Mainframe languages supporting a couple of core systems at Kroger. Its amazing to see how they have progressed from the Introduction to ColdFusion course I offered some 6 months prior. I've blogged about my training experiences before and I received some good feedback so I figured I would lob another training ball into the blogsphere and see what I get back.
I can not stress enough labs labs labs. Don't make the labs easy make them think; force them to apply knowledge. Many of my students hate me for it but I tend to make them drawn conclusions, simple ones, based off what they should have learned from the lecture. My training focuses on learning not memorizing, and they thank me later. I do 2 types of labs for each lecture segment. First a group thought exercise where we work through a problem together. I generally give leading questions to guide my students to the correct answers. These are exercises not simple questions like what is defaultFuseaction. An example exercise might be, "Given this Fusebox.xml and subsequent files what will the user first see on the screen?" Next is an individual lab that requires them applying a large chunk of the group exercise with less help and generally a more detail. Following the previous example I may provide 5 files to the user and give them a screen shot of what the final product should look like. They have to wire them together and submit to one more page. I make these individual labs hard because we have already done easier labs together. The end result is high retention and developers that are thinking for themselves and not just regurgitating exactly what they memorized.
Bring water, for yourself and others. Your brain loves fluid and dehydration causes mental fatigue. You have already lost a large amount of learning capacity if you are feeling thirsty, so I bring lots of water and encourage drinking it as much as possible. I am considering putting it in my slides in the future. As a result though make sure you plan for an extra 5 minutes in the labs for frequent breaks :).
Know your audience. Spend time to get to know them and their backgrounds. If you can learn their names ahead of time that is great, I hate name tags they feel childish. Wait, this goes beyond knowing names though! Know folks background; where they come from, what they are working on currently, take a few minutes to learn some likes and dislikes. I learned more about what runs on MVS and more about cobol so I could be an affective trainer. I don't plan to program in it ever but having a base knowledge allows me to related to my students better. I'm not a huge baseball fan but when I had training around the world series I watched, it allowed me to related to folks in the class.
You want to involve folks in the training. I hate using the word lecture to describe training; it should be a conversation. Lectures are boring and do not fire off nearly as many synaps in the brain. Conversational style lecture engages the students more which fires synaps more which leads to better retention and a more enjoyable experience. Conversational lecture also has a synergistic effect when you know your audience in that they become much more comfortable and this will lead to more honest and frequent feedback throughout the lecture.
That's all I have time for now, happy learning and happy training.