A list of lists of what has been the most effective in helping me learn Perl this first year.

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.

  1. Getting Over My Discomfort with the Perl Documentation: 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...

  2. 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.

  3. 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:

    1. 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 blanket.

    2. 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.

    3. 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.

    4. 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:

    1. 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, Eshcer, Bach.

    2. 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.

    3. 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 right.

    4. 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 Zahir.

    5. 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 final book...

    6. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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:

    1. I was tired of reverse engineering Wordpress, Drupal and other PHP content management systems to fit my designs.

    2. 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

In reply to What Worked In My 1st Year Of Perl: LOL by luis.roca

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.