This coming Friday (April 29, 2011) I'll be teaching a half day class on Modern Perl here in my office at Shutterstock. Shutterstock is a big user of Perl as a core programming language and we are hoping to spread the knowledge around quite a bit, involve some of the less technical staff as well as some IT staff members that mostly work on front end technologies.
This class is the first iteration of a longer class I intend to teach for free to any and all comers sometime this early summer in New York City. It is my hope to build a solid and exciting introduction to Modern Perl that can serve as a positive advocacy tool for the community while assisting my employer in our recruitment efforts (great students may be offered fulltime jobs).
My lesson plan loosely follows the Modern Perl book by chromatic but I tried to slip in a few 'flashy' bits, such as social integration (Facebook, Twitter, etc) and similar.
I'm pretty excited by this opportunity my employer is making for me and I really hope to use it to postively impact Perl here in NYC. I'll be releasing more lession plan details online as I formalize the public class, but I'd love to hear from any and all of you about what the class should cover or if you have any advice or thoughts.
Good luck with the class and with the future plans for teaching it to a wider audience. I would be really interested to hear how it goes and any feedback you get.
I am hoping to bring more people into the Perl community this year even if they are of a lower technical level or unfamiliar with Perl, this is my main reason for pushing Perl projects on Facebook, if there is anything I can produce (a flyer with details of locations) for you to hand out please let me know. We will be starting the marketing push to get GSoC students for 2012 early this year (during and after the current GSoC) so interaction by Perl developers with students/universities would be helpful for us to push promotion at.
Please don't feel obliged, I am accepting any help and suggestions that come to me.
Posted by: Shadowcat_mdk | 04/26/2011 at 10:44 AM
mdk,
I'll definitely be posting more agressively about this work, and I think part of the external class should include some talk about GSoC stuff for next year. I figure it would be part of a final "What can I do next?" slide, or similar.
Thanks for the help offer, I'll shout out when I have a date and location!
John
Posted by: john | 04/26/2011 at 11:30 AM
I really like the fact that you mentioned wanting to do this back in February when I gave a Perl course to undergrads here in Brazil. You really went through with it!
If I may give some advice from what I learned, half a day is simply not enough to teach all the fun bits of modern Perl. Topics like Moose, Regex and even references can take up a lot of time, specially if the audience is not very familiar with such concepts or with programming in general. As such, you might have to reduce your scope to whatever you think is essential that they know, even if it means shamelessly skipping important topics (you can mention those, maybe in the "where to go next" slide or something).
If the audience can take it - i.e. already knows other high-level languages or at least basic algorithm - I'd try to work the slides more like cheat sheets: one for variables & references (creating and using); one for basic syntax (comments, strict, warnings, if, while, foreach, post-if, post-unless); one for functions & packages (and exporting); one for regex (m// and s/// only, with as little unicode as possible); one for CPAN/cpanm/local::lib/perlbrew; and one for basic OO (Moose). Then swarm them with practical excercises, stuff they can relate to actual work getting done quickly in Perl. Also, since this can be a lot to take in just a couple of hours, a break might be in order.
After the "standard Perl" part, I completely agree that you should show the flashy bits of CPAN like twitter and facebook. If they are into running/integrating external apps, show them Capture::Tiny. Web crawling and automation may also be fun. If they are into webdev, a very simple Mojolicious::Lite or Dancer example goes a long way. Try::Tiny, DateTime, or whatever you think they might want to use for their work. Oh, and Test::* if the team is addicted to TDD. You likely know this too, but I'd make sure to time the presentation before doing it - it's very frustrating for both the teacher and the students when time runs out and the course ends half-way. And this is bound to happen if you get as excited as I do when talking about CPAN =)
mdk's advice is very pertinent, too. In fact, I think it's interesting to add a "community & general help" slide pointing to irc, perl mongers (and the local PM group), perlmonks, websites, mailing-lists, and *specially* perldoc.
Of course, those are only suggestions. I hope you find them helpful, and wish you the best of luck! I'm looking forward to hearing how it went =)
Posted by: garu | 04/26/2011 at 01:24 PM
garu,
Thanks for the advice, and yes, your success story did inspire me. As for the shortness of the class, I intend for this to be a two day (or two half day = total 7-8 hours) when I take it public, but for the in-house test class it is hard for me to pull so many people away from work for a full day. I am scheduling this on a Friday when no deliverable projects are due, so it can spill over into lunchtime if people are excited by it.
Thanks for the advice and inspiration; I'll be posting more as the results come it.
Johnn
Posted by: john | 04/26/2011 at 04:10 PM
It's great to hear from you and see what you've been up to. In your blog I feel your enthusiasm for life. thank you.
Posted by: Kids Moncler Jackets | 11/20/2011 at 08:47 AM