I gave a two-day, hands-on training on PL/SQL collection this week, organized by John Goodhue of Speak-Tech. It was a very enjoyable, interesting and eye-opening experience. [ Note: you can download, study and use (inside your company) all the materials for this course without charge by clicking here. ]
I have been doing lecture-style trainings for years, to audiences big and small, and they have become second nature to me. I put together a Powerpoint presentation of about 100 slides per day, and within those notes reference dozens of pre-defined scripts. I then strap on a wireless microphone and spend six hours talking too quickly, covering too much material, and running lots and lots of code demonstrating my points and PL/SQL's features.
Developers seem to love it. But they also complain about the pace and ask that I go more slowly and include hands-on exercises.
So John, who helps me organize these trainings in the US, asked me to put together a hands-on class. I decided to focus specifically on collections, since they are at the core of just about every interesting new feature in PL/SQL and they are very much under-utilized in the world of PL/SQL development.
So I took my lecture materials, reorganized them a bit, and built out an extensive set of exercises, which I implemented in Qnxo as a script repository. That was fun. Qnxo is a very flexible and handy tool. It focuses on code generation and code re-use, but it can be easily adapted to other purposes. The download referenced above contains a script that will install the course exercises into Qnxo if you have it installed.
Anyway....off I went to Minneapolis to teach the course for about 15 students. The feedback was very positive -- and perhaps predictable, as more than a third of those attending said that I tried to cover too much in two days that that it should be a three day class!
But it also showed me how differently I must teach and prepare materials for a hands-on class compared to lecture-style. The materials I provided (and these weaknesses are still reflected in the download) did not offer enough basic information about syntax of features. That was fine when the main objective was to demonstrate to attendees how stuff works. But it was not adequate when those training materials were supposed to provide a foundation from which the students would actually write their own code in class.
So the next time I give this class (visit Speak-Tech to find out about scheduling of this class in 2006), the Powerpoint will have twice as many slides. I will also more carefully construct the exercises so that students will concentrate their code writing on the collection-specific topics.