The Perl Learning Environment
For YAPC::NA, I'm creating a new course called "From Zero to Perl" (although I'll probably actually call it "0..Perl"). JT Smith wants to create not only new Perlers, but new programmers, and he wants to start them with Perl. I'm up for the challenge. However, there are some things that you might have opinions and suggestions on.
The Learning Perl course I teach assumes that you already know how to program, just not in Perl. Some non-programmers do alright, many struggle, and a few outright fail. Most of those have nothing to do with Perl as a language. Programming as a way of thinking is hard, especially for the complex things people what to do right away with Perl. It's easy to make a turtle draw geometric shapes, it's not conceptually easy to design a blogging platform.
- The first problem is that this sort of audience has never seen a command line before, and the ideas of the default file handles are completely new concepts.
- Text editors are often foreign, and the idea of putting text in one program then switching to another program to use it is also new.
- The Unix universe and its shell, with permissions, environment variables, and other external forces, requires a lot of extra knowledge.
- The computer that many students have is often not the one they actually use for work.
As part of this, I think I want to build this class around a particular IDE. I'm not an IDE person, but I think featuring it in the class will help people get started. People don't have to use it, and I'll briefly show some alternatives.
The second part, I think, will be some sort of Oracle VirtualBox machine (it's free, although I like VMWare), configured with several different perls, all of the extra modules (especially tricky ones like the ones that require external libraries), cpanminus, and so on. Part of the class will have them install their own perl by hand, then by perlbrew perhaps. I'm going back before you can even do "Hello World". The trick is choosing which free operating system to use.
From there, I'm not sure what else I want to do with it.