I've been thinking lately on how one effectively learns something, and of course especially how one would learn Perl. Many newbies, I'm sure, would love to be able to extend their Perl knowledge, but has no idea on where (in a Perl context, not www-wise) to go next.

I'm a strong believer in that you learn by doing things, merely listening or reading very seldom gives any insight, and that goes double for computer languages and other 'creative' sciences. With that in mind, I figured the PM tutorials, while being descriptive, would benefit greatly from more exercises. I've found that especially less straightforward exercises that requires you to understand what you are doing, are very hard to come by (excluding courses and books, both tough on a students wallet).

Considering the amount of time the senior Monks spend here answering basic questions (from myself, among others), if some of these would become unnecessary by exercises, it might be the right way to go adding an area where experienced Monks could post exercises. (Hopefully accompanied with commented solutions, as well as leads for the more nonobvious moments?)

/ Stormr

Replies are listed 'Best First'.
Re: The beauty of self-help
by chipmunk (Parson) on Aug 11, 2001 at 17:39 UTC
    A mural in my high school:

    Tell me, I forget.
    Show me, I remember.
    Involve me, I understand.
Re: The beauty of self-help
by FoxtrotUniform (Prior) on Aug 11, 2001 at 05:56 UTC

    You've definitely hit on the truth -- you just can't learn how to write decent code (or do much of anything else, for that matter) by reading books, man pages, or websites: you have to do. I'm not sure that exercises are the way to go, though. I learn a lot better if I have some real task to do, something more motivating than a contrived exercise.

    Instead of (or as well as: since people learn in different ways, the more resources PM has the better) exercises, how about a list of common, useful tasks that perl's really good for? We could provide links to useful information (or at least pointers to the right man pages), some examples, and so on: the idea wouldn't be to get people to solve the problems presented, but to spark the "hey, wouldn't it be cool if..." train of thought, and give enough help that they wouldn't run into brick walls.

    Some stuff that I can think of, off the top of my head:

    • log parsing
    • web page automation
    • document translation
    This would also be a great way to introduce people to CPAN, and especially to idiomatic ways of doing things in Perl. (My most common learning experience, especially with Perl, is to do something the first way that comes to mind, then a few weeks later find the right idiom for the job -- and suddenly my code is half as big, twice as effective, and four times as readable. And short of reading good code, it's difficult to find idioms easily.)

Re: The beauty of self-help
by aquacade (Scribe) on Aug 11, 2001 at 03:42 UTC
    I know many in the Perl community, not just the Perl Monks, are working vigorously to assist newcomers in a friendly and helpful way as Larry Wall as asked us all to do.

    You can go to and join the maillist (top right box) if that would help you. The 3rd edition of the Llama has gotten great reviews! I also know of at least one more book being written (much different slant than the Llama) for beginners (no publication date as yet). So between maillists, websites, and books you should find something to help get over the "mind-slam," as a friend of mine calls it, of Perl the language.

    You seem to know that NOTHING can take the place of writing Perl code and making your own mistakes and discoveries! I learn more from my mistakes than my successes! (I hope I learn from both actually!)

    ..:::::: aquacade ::::::..

Re: The beauty of self-help
by chromatic (Archbishop) on Aug 12, 2001 at 08:18 UTC
    I like that idea much more than I like golf. (No offense intended, it's just that golf and obfuscation aren't appropriate for new coders.)

    An old college buddy sent me an email this week, asking for me to give him sample writing assignments. If several monks looked back through their archives, we could probably come up with a handful of good, real-world problems to solve.