University of Perl Wrap-Upby Nat Torkington
O'Reilly & Associates recently arranged a tour of two-day University of Perl tutorials in Seattle, Los Angeles, Atlanta, and New York. Students, from beginners to experts, were instructed in the fine arts of Perl by such luminaries as Damian Conway, Randal Schwartz, and Mark-Jason Dominus.
Everyone had a good time, students and instructors alike. I met one guy in Los Angeles who was from San Francisco. He'd rented a red convertible and driven to Seattle and then to Los Angeles to get in as many tutorials as he could! The instructors enjoyed the opportunity to talk and exchange techniques and ideas.
The ClassesBeginners were able to take the "Perl 101" class, taught by chief Perl monger, brian d foy. brian's course showed beginners how to become functioning Perl programmers--in only two days. The students even learned how to do one-liners in that time! brian always maintained a network connection and showed applications of everything he taught. My favorite part of his class was when he'd ask students for a program to write, then he wrote it in front of them, adding features as students called them out. The students really got to see how programs are written and how they can be enhanced.
I taught an "Advanced Perl" course to intermediate programmers. This class taught references, modules, objects, and process management, all topics you need to know to begin writing really powerful programs. As an instructor, one of the best parts of the class for me was hearing students going "aaah!" or "wow!" as they learned how to do something they'd only vaguely understood before.
The best-kept secret of all the tutorials was Damian Conway's "Practical Extraction and Reporting." This class regularly only had ten or so attendees, despite having excellent content. We scratched our heads and finally decided that the title didn't tell you enough about the class--it was a kind of boot camp, teaching you all the tricks and techniques that seasoned Perl programmers know about extracting and manipulating data from files, email, and networks. The small class sizes meant that everyone who did take the class felt incredibly happy about it--Damian is a fantastic teacher and really knows how to entertain as well as enlighten. Perhaps the next Perl Conference will see this tutorial reappear under a different (more illuminating) title.
"Database Programming with Perl" perfectly reflected the class's content, although perhaps we should have been called it "Database Programming with Perl and Puns," given that Randal Schwartz was teaching the class. His fast-paced style and obvious command of the material yielded rave reviews from students. He took great pains to make it a practical class, so there were sections on CGI programming and some sample applications.
Dan Klein, a trainer and the tutorial organizer for many Usenix conferences, taught his "CGI and WWW Programming in Perl" class. Unlike most beginning CGI classes, Dan took the students through the basics and into the advanced realms of dynamic graphics and database backends. His students especially appreciated learning how HTTP really works. Although HTTP isn't CGI, it's necessary component to make sense of everything.
Dan Klein's other class for the university was "Practical Web Site Maintenance in Perl." This course showed students how to automate user registration, site updates, referral and usage reporting, and all the other things that are part of running a large site. Beyond specific techniques, Dan also showed the students how to analyze Web site problems and decide on the appropriate solution.
"Advanced Object Oriented Perl" was also taught by Damian Conway. His students were ecstatic over the material, which taught serious Perl concepts like overloading and polymorphism using silly examples like Klingon arithmetic. Damian's the acknowledged OO leader in Perl, and it was an O'Reilly coup to get him for the tutorials.
Mark-Jason Dominus's "Tricks of the Wizards" was about the techniques that hard-core Perl programmers use. He talked about the black art of typeglobs, the subtle applications of tie, and so on. Mark-Jason's other advanced class was "Advanced Programming Techniques in Perl." Mark is writing a book on really advanced things like how to represent infinite lists, higher order functions, and iterators. There's an old adage, "When all you have is a hammer, every problem looks like a nail." Students came out of Mark's classes with a much larger toolbox of techniques for solving problems. In many ways, his classes were the truly advanced classes of the tutorials.
"XML Processing in Perl" was taught by Michel Rodriguez. Michel got to take advantage of teaching at U of Perl in four different cities. The early classes received mixed reviews because Michel included a lot of "What is XML?" introductory material. But he was able to prune that down and bulk up the "Perl for XML" side of things. So he ended up with very positive reviews by the time we got to New York. As instructors, I think we really enjoyed being able to fine-tune our tutorial delivery and the material we emphasized. At events like The Perl Conference, instructors give their classes and in most cases don't give them again. They don't get the benefit of different experiences, which we had in spades.
I also taught "Introduction to mod_perl." mod_perl is the Perl interpreter embedded in Apache, which lets you get incredible performance on dynamically generated Web sites and lets you code many different things that CGI alone could not do. I tried to show attendees how to move from CGI to the mod_perl environment, giving them mod_perl code to do things that they already knew how to do in CGI. I was really amused by the audience's reaction to my number-guessing games (I wrote a "guess the number" game, once using cookies and once using hidden fields). The crowd would call out numbers during the demo and clap and cheer when we finally got the number right.
The EnvironmentSo that covers the technical content. If that had been all, the University of Perl would have been a success. But what pushed U of P into the realm of great success was the environment. I've taught at many places over the years, and I know the sorts of things that can ruin a learning experience: loud fans, misplaced screens, incompatible hardware, flaky networks, disabled air conditioning.... The O'Reilly conference folks and their incredible A/V staff really worked hard to make sure that the rooms and hardware were working for learning rather than against it. I know that sounds corny, but until you've experienced Education Gone Wrong, you don't realize how hard it is to stay on top of it all.
The StudentsAnd the students. When you're a full-time teacher, as many of us have been, it's easy to get jaded and burned out. The material doesn't change much, so your enjoyment of teaching really comes from the students. Are they interacting well with you? Are they getting excited about what they're learning? We had great students in all four cities, and made many new friends along the way. One of my Seattle mod_perl students even mailed me a cell phone I left at the Seattle Perl Users Group meeting!
"But what," I hear you saying, "if I missed the University of Perl?" There may be a similar event in 2001, but until then, your best bet is to wait for The Perl Conference [This first link takes you to an introduction to The Perl Conference 2000.] scheduled for July 23-27 in San Diego, California, or contact the trainers directly.
brian d foy
O'Reilly is planning a similar set of Java tutorials, although they'll be held only in Boston, for early next year. Keep watching conferences.oreilly.com for more information on upcoming O'Reilly tutorials.
To conclude, I'd like to thank the students, teachers, and organizers
for doing a great job.
Next year in San