I've recently taken a new job where I work remotely. For those of you that know me, this is quite a change since I've spent virtually all my career working in the intense and crowded New York City. Even though I can work out of my home full time, I have had the habit of spending one day working out of the house, just to get a change of scene. One place I hang is the local MacDonalds, which has pretty decent Wifi (and they have McRibs right now, which brings me back in memory :) ).
Since I've been doing this I have had a number of people ask me computer oriented questions (I am after all sitting in MacDonalds with my Macbook Pro for nearly an entire day). This Monday past I fielded questions from a young person who is a first year student at our local community college. He was interested in programming, and quite interested when I told him Perl was my primary language. It seems at one point he had an older Perl book and tried to learn, but felt it just went over him.
I told him that I understood, and that the community was trying lately to do a better job regarding learning. I was able to point him to learn.perl.org and to a number of modern and free Perl ebooks.
I feel pretty good that we've gotten this far, but after speaking with him for a bit I realized there's still a long way to go if we want to close the gap between enthusiasm and enough knowledge to do useful things. In a way this is something that client side Javascript is a big winner, because you get a lot of gratification for knowing a little (its pretty easy to pick up Javascript and a modern library like jQuery and make a web page that does all sorts of fun blicking and animations). For a certain type of student, this immediate positive reinforcement is valuable.
Luckily with Perl and our modern toolchain we can show people how to build simple webpages very quickly. With Plack you just have:
my $app = sub { [200, ['Content-Type' => 'text/html], ['Hello World!']] };
And that's a web application that actually works. So I guess its something to remember, when showing Perl off, to think of ways to give someone more immediate gratification for there effort. Remember not everyone has that particular 'bloody mindedness' to plod through hours or days of effort to get somewhere with programming, at least right at the beginning. People that might otherwise be great members of the community can be a bit easy to discourage on day one or week one of learning.
Sometime to consider when writing Perl tutorials, in any case.
Hi John,
nice post, and enlightening. I should note that I've been contemplating creating a framework for playing with graphics and maybe random text on the screen (think BASIC's "LOCATE" and "COLOR") intended for children, teenagers and other people who like to see results. I recently found something interesting like that done in Racket http://docs.racket-lang.org/quick/ - see its tutorial .). Maybe it can be done inside the web-browser too using Perlito (a Perl 5/Perl 6 to themselves and to JS compiler) or https://github.com/kripken/emscripten (which converts LLVM bitcode to JS).
Also please consider recommending http://perl-begin.org/ as well as http://learn.perl.org/ , because it is more comprehensive and may be suitable for different kinds of people. Its navigation menu may be a little daunting for some people, but I feel its various resources, fill many useful niches, and it is under active development and open content/free content (mostly CC-by).
Someone told me he is looking for a more “hands-on” tutorial (said in English inside a Hebrew sentence) on Perl, but I need to think about it. Maybe an interactive REPL.
Good luck.
Posted by: Shlomi Fish | 12/24/2012 at 03:56 PM