Tuesday, October 30, 2007

Training Developers pt. 1

For the last month I've been working on creating training content for ColdFusion as well as training associates throughout the enterprise, a total of 25 so far and probably another 15 by end of this year. I also got the chance to visit Teratech and receive an official training in Fusebox which was nice. Though in all honesty the lack of labs really made me question how valuable it would be for someone with no practical experience with the framework. Never the less I found the the fusebox training enlightening and it was very nice to see how others used/viewed the framework.

My main focus was Introductory ColdFusion training, you know the things you would find in the bootcamp tack at cfUnited. The audience was a pretty diverse range of people including mainframe programmers, interns, business analysts that wanted to gain more technical background, and Jr. level Java developers. With such a diverse audience I struggled with knowing exactly what content to cover and how much detail folks would need. I've learned quite a few things along the way about training and even a few things about ColdFusion. For starters when you think you have enough examples create about twice that even if one example is a copy and paste with a slight difference. Prepare as many of the examples ahead of time to reduce boring typing, remember to go through them SLOWLY. Do the labs you've created, twice, then multiple the time it took by about 5 or 6 that's how long it will take the class. If you know you will have a diverse set of aptitude levels having "extra credit" or slightly more advanced application of concepts ready for those done with labs early will give the advanced something to do, other than talk and create distractions (and potential frustrate others). Alternatively you can encourage them to help others.

I've always taken my skillset for granted. I've progressively grown with the internet, learning HTML then Javascript, then perl and ASP, then ColdFusion and Java and so on. Mainframe programmers know little at best when it comes to making web applications. Without any prior exposer, learning web application development is a daunting task. You have to learn a new IDE, a serverside language, a client side language, wait a client side language you mean the client isn't on the server? Hopefully you are getting the point, be prepared to teach about HTML and web basics even if the class is really intended to teach ColdFusion. While I'm on the topic of IDEs a good explanation and lab on just using the IDE is a great use of time. Concepts such as setting up your application server in Eclipse, starting a new project, deploying that project, what are views and perspectives, and how a workspace works are all very important foundation concepts for a budding developer. I'll get into the details about the topics and the order of topics in a future post, this one is getting a bit long. I look forward to getting feedback from others about training and their approach!