[Kc] Question

C. Garrett Goebel ggoebel at goebel.ws
Fri Jul 14 09:02:52 PDT 2006


On Thu, 13 Jul 2006, jay wrote:
>
> Just curious if anyone here could give me some advice on if there's
> any schools around here that have good Perl classes?  I've done a few
> Perl programs but not many (and I'm very, very thankful for this list
> and the many helpful people that helped me out when I got stuck).  I
> looked on-line today at a few schools (Penn Valley, ITT, DeVry,
> etc.).  None looked real promising.  I know JCCC has a Perl class but
> I'm not sure if it's what I'm looking for.

A google search on "perl" "training" "kansas city" turns up a few courses.
Those might give you access to other real world programmers. But I imagine
the people in your class won't have a lot of real world perl experience.

Perl doesn't have the pedigree to make it popular in academic circles. I
remember reading how Damian Conway's peers told him he'd ruin his academic
career if he continued pursuing his interest in Perl. So while you might
find the occassional good Perl course at a college, I think you'll usually
find that Perl is given short shrift.

I think taking some general principles computer science classes on
programming languages, data structures, algorithms, etc. will help your
Perl programming as much as whatever language they're using for
instruction. Other  than that, I'd suggest that you pursue Perl learning
opportunities through mailing lists and peer groups like KC.PM. That will
bring you directly into contact with "real world" perl programmers.

If you haven't already, I would start at: http://learn.perl.org/. On the
right-hand column is a list of mailing lists for beginners. You might also
check out the master list at: http://lists.cpan.org. The beginners mailing
list archive is found at:
http://www.mail-archive.com/beginners%40perl.org/

I think the standard good citzen practice is to ask and learn from your
peers on those lists... supplemented primarily by purchasing and
working through the current editions of the more highly recommended
Perl books. Learning Perl, Intermediate Perl, Programming Perl. Once
you've got those 3 books under your belt, where you go next depends
greatly on what you are interested in doing. I'd also recommend
an oldie but goodie: Mastering Algorithms with Perl.

Back to the beginner mailing lists... Once your Perl skills have matured
to the point where you no longer need the list, stick around and return
the favor by helping to answer the new newbies' questions. At the same
time, start subscribing to other Perl related mailing lists in areas of
your interest and continue learning from your real-world perl peers.

[The rest of this email rapidly deteriorated into a "Why Perl?" rant]

I'm sure others can add to the list. But to my knowledge, Perl is used
most extensively in systems administration and web development. And to a
limited degree it has an established niche in Bio-informatics and
mathematics. In the "real world" of software development, Perl is often
relegated to banging out quick proto-types, munging data from legacy
systems, and providing the ducktape, chewing gum, and glue to tie
different systems together. I.e. the stuff that "better" languages are
often worse at.

In the end, programming languages are tools. And different tools are
appropriate to different problem domains. The thing that makes Perl
good at many problem domains is the philosophy behind it: laziness,
hubris and no grinding of philosophical axes.

What this translates into in practice is a very concise syntax, which
has the gall to steal the best ideas it can find in other languages
without forcing you to do things "the one true way". I.e., TIMTOWTDI:
There is more than one way to do it.

Perl also stands out from the pack in that it is a language that allows
novice programmers to solve their problems without having to understand
the whole language. I.e., you can baby speak in Perl.  While expert
programmers feel right at home too. It strives to make mundane tasks
simple, and impossible tasks possible.

When many "real world" programmers hear "Perl", they still think of
it in terms of Perl 4.0... i.e. shell scripting on steroids. Perl has grown up
considerably in the intervening years. The syntax is more consistent and
the semantics are richer. I.e., the stuff you used to use it for has
gotten easier, and if you care to dig deeper, you can now use it as an
effective tool for more problem domains.

Others will tell you that Perl is a write-only language. I.e., what one
programmer writes, no one else will be able to decipher. And extended
form of this is the complaint by some that Perl isn't appropriate for
large projects involving many developers. This is a fall out of TIMTOWTDI.

And the answer to that is that the developers need to agree on
best common practices, and use a tool like Perl::Critic or lint to help
enforce it. Other languages force bondage and discipline on the
programmer, whereas Perl allows you to opt-in and opt-out as desired.

Perl is fun. So while it hasn't always been the most often used tool in my
tool chest. It is one of my favorites.

cheers,

Garrett



More information about the kc mailing list