A list of lists of what has been the most effective in helping me learn Perl this
Looking back, I wish I had spent more time on a number of these list items
and/or discovered them earlier in the year. That said, stumbling around is a big part of the
learning process and I feel great just having figured a lot of this out. I'll
carry all of this forward with me as a foundation to continue learning Perl
for the next year and probably for a while after that.
I realize much of this is pretty specific and some will disagree with a couple of the
items. Again, this is just what I find has and continues to work for me. I
post this both as a record for myself and just in case one or two people out there
relate to what I'm doing and find this course of action helpful.
Getting Over My Discomfort with the Perl
I have seen this over and over more than anything else with regard to
learning, improving and excelling at Perl:
"Read the documentation."
At one point I remember thinking I wish someone would say:
"L E A R N how to read the documentation."
Then I found this post by
brian d foy, began using a GUI POD
reader (A nice simple one comes with CamelBones)
to help me get a good look at all the docs in one long list and, most
importantly, #2 on my list...
Making The Effort to Work in The UNIX Command Line:
Honestly this is one of those things that, working on a Mac, I always
wanted to learn and do well but never got around to it. Thanks to Perl, I
was given a really good reason to begin stumbling my way through the
command line, learning how to change and view directories, download
modules from CPAN, tools from MacPorts and — read the Perldocs.
Books: I bought a TON of books this year. Some in digital,
some paperback, quite a few in both forms and some were even videos. I'm not going
into what isn't on the list out of respect for the hard work of their authors and
the people who have and will continue to find them useful. This is just what
worked for me:
Programming Perl: I had seen so many posts all over the web
about how this was not a good book for beginners or that it's outdated. I find
it to be a pretty approachable book especially when you break it down into sections
or chapters like one would the Perldocs. I've been getting in a good
rythm of using it alongside the documentation for further reference and
the Perl Cookbook for further examples. It's become my blue
Mastering Regular Expressions: I picked up this book early after
seeing how much importance many people placed on regexes and how many people seemed
to put off learning them. Having a text editor that supported regexes helped push me
to learn them. I have to say that I really love this book along with Programming Perl.
The book has a nice balance of technical detail, relevant examples and is written in an
approachable style. Not to mention, I think I'm in LOVE with regular expressions which may eventually lead to counseling but that's a small price.
Perl Cookbook: I've had mixed success with the Cookbook titles
from O'Reilly. I actually had a little bit of buyer's remorse when I got this
and placed it on the bottom shelf of my bookcase in favor of some of the
other widely recommended reading. It wasn't until recently that I picked it
back up after getting more and more into the documentation and Camel book.
I'm really glad I did because it's a great compliment to those two
resources as it reinforces the information in nice bite sized chunks
without dumbing it down.
Perl Best Practices: I'll admit that I only picked this up a few weeks ago.
It seemed like it was reserved for 3rd year Perl students and above. That
was a mistake on my part because I've always had success with style books
like this one (Designing With Web Standards, Transcending CSS). Like Mastering Regular
Expressions it provides some broader conversations about programming that I
appreciate and reinforces why I'm glad I chose to learn Perl. Most critically,
while I mostly work alone, I would prefer to form good habits now rather
than wait a few years down the road.
Other non-Perl books that provided added skills, insight, inspiration and
sometimes all three. Most of these books could (and should!) be their own
post and maybe I'll put that together one day. For now, here they are:
Anathem: Monks around the world working together
as their planet's intellectual leaders to face off a unique threat. Honestly, Neal Stephenson must secretly be a member
of the Monastery because this has to be one of the closest descriptions of
what I might imagine it to be in flesh, blood and stone. This book also
single handedly got me off my butt and in the bookstore to buy Godel,
Don Quixote: To me this book exemplifies the spirit
of Perl and it's community that I found so appealling from the start. It
consistently finds humor in taking life too seriously and says that even at
it's most disfunctional, imagination is one of our greatest gifts. I
recently read Larry Wall's talk on postmodernism and I think he might agree
that Cervantes shows some of those qualities in this book.
Godel, Escher, Bach An Eternal Golden Braid: A friend of mine recommended this book to me a few
years ago. He said this book would go a long way to help me understand why I feel so strongly
about visual design and programming being one in the same. He was
Labyrinths: There aren't too many people in history
who valued the pursuit of knowledge more than Jorge
Luis Borges. He was heavily
influenced by Cervantes, Lewis Caroll and German Literary Postmodernists to name a few. No one
has influenced my creative thinking more than this man and his fantastic
works (short stories, sonnets, and essays). Everyone should read
The Garden Of The Forking Paths and I would
also recommend one of my personal favorites: The
Learning the vi and Vim editors: The one year I
spent in Catholic school, a 4'10" 82 year old (YES 82!) Sister Margharet
taught me how to type. Vim just felt very natural from the first time I ran
vimtutor. Because it takes a lot more than knowing how to type to feel
comfortable in Vim I ordered this book and it's helping me get up to speed
quickly. As a nice extra, it reinforces what I learned in the next and
The Mac OSX Command Line: Unix Under the
Hood: A pretty non-intimidating but thorough introduction
to using the command line, learning many of the UNIX tools and gaining a
great appreciation for all of it.
Spending time on PerlMonks.org: Guidebook, reference,
lessons and supportive community — what can I say about this site that hasn't been said? I come
here at least several times a week. I've felt welcome from day one and hope I
can give back just a tenth of what this community has already given me.
Writing down code examples in my sketchbook as well as a text
editor: This just comes down to practice, practice, practice. Having a
good text editor like BBEdit or Vim to write Perl examples then contrasting
that utilizing the very same sketchbook I use to draw people eating lunch at
the mall has gone a long way towards helping me internalize syntax and theory.
Asking, trying to answer questions and learning the best ways to do
both: 100% of the credit for this goes to the Monastery and the many
good people who answer and ask questions better than I have seen anywhere else
— web or in the flesh.
Having a clear list of goals: Everyone has their
reasons for learning Perl. My motivations sprung from changes I wanted to see
in both my day to day freelance work and a desire to dramatically move my
creative abilities in a new direction. In short:
I was tired of reverse engineering
Wordpress, Drupal and other PHP content management systems to fit my designs.
I was tired of feeling forced to practice graphic design and illustration using Adobe
software (or any major software for that matter).
I wasn't exactly sure that Perl would be the answer for me on the first problem
and less so on the second. I just had a good hunch so I used these problems as my rough
draft of what I wanted to accomplish — my goals. I have been refining them
ever since. I could get rid of everything else on this list EXCEPT this last
item. It always seems obvious but somehow goals are the first thing I lose
sight of when trouble starts and the one thing that always gets me back on track.
"...the adversities born of well-placed thoughts should be considered mercies rather than misfortunes." — Don Quixote