Beefy Boxes and Bandwidth Generously Provided by pair Networks
Come for the quick hacks, stay for the epiphanies.

Perl Enlightenment and Personal Journey To It

by WebHick (Scribe)
on Apr 26, 2001 at 03:49 UTC ( [id://75666]=perlmeditation: print w/replies, xml ) Need Help??

I like to think of enlightenment itself as an ocean and the further enlightened you are, the deeper the water gets. And reaching enlightenment is merely standing toe-deep in the ocean and saying, "I see more water. I want to go deeper. I want to be caught in the undertow." With that being said, every journey there is so very different. A lucky few stand in the utter blackness of cluelessness, point themselves in a direction and steadily walk towards the ocean. The unlucky many, of which I assume to be like myself, meander through the darkness for ages, weaving to and fro and back and forth looking only at their feet and barely manage to go towards the ocean.

And boy, my fellow monks, was I weaving! With the benefit of hindsight, I'd like to share with you why I was weaving so much. Maybe some of you can identify, maybe you can't, but I'm hoping it'll help someone who's wandering helplessly feel better.

  • I couldn't RTFM and understand it. It's not the authors' fault. More on this later.
  • From what I could understand of, it was a good module. But I was not capable of muddling through the documentation enough to actually use it. Hint, hint: I was rolling my own cgi stuff, not to mention some other modules I didn't know existed. I'd like to reiterate that this is not the author's fault.
  • I used various online tutorials to catch onto the basics. Unfortunately, some of the basics they taught me was how to roll my own :( Others did fairly well at teaching the basics, although one of them gave me an irrational fear of hashes.
  • I used other people's scripts/programs as an example of how to do things. I'll admit that it really helped me to understand how things worked, but it also pointed me in the wrong direction at times. Many rolled their own, had embedded html, commented out whole chunks of code, etc.
  • Lack of seminars, classes, etc (proper training). I'm self-taught, and that's a drawback in itself.
  • I couldn't really afford to buy books on the subject, and if I had the money, I don't think I would have known what to buy. A testiment to this is that when I was able to afford to purchase a couple books, I picked up the Camel (at least I did something right) and in a DOH moment, MSA's CGI Cookbook (I had it confused with the Perl Cookbook, which I didn't know had a Ram on it. Either way, it was a horrible purchase and I now use it to sit on when I type letters at the demolition dork's office).
  • And finally, the most important pitfall - I didn't find PerlMonks until very late (Sometime in February, I think), so I ended up developing a lot of bad habits along the way.

Finding The Monestary was the most important step in my journey. It's helped me to start moving forward: I've bought a few more Perl books (decided to stick to O'Reilly to be safe), I use modules (and if I don't understand the docs that came with them, I don't let myself go further until I do), I've overcome my irrational fear of hashes and enjoy the benefits of using them, and I test my knowledge by downloading cheap Perl programs and trying to find what's wrong with them. At this point in my journey, I can at least see the ocean, which is a lot better than where I was.

I'd really love to hear about everyone's journey to enlightenment, the pitfalls they experienced along the way, and where they think they are in relation to the Ocean of Enlightenment.

I said there'd be more on the RTFM, and here it is: For most people, I imagine that the docs that come with Perl are very clear, consise, and thorough. But I could read the same paragraph 3 or 4 times, research everything in that paragraph I don't understand, and still be completely clueless. I fear that this is partly due to my lack of programming foundation (okay, so I did a little BASIC way back when, but I can't remember most of it) and partly from lack of intelligence. Or could it be that I'm simply not programmed correctly for programming? Doesn't stop me :).

I propose we add a new(?) acronym: UTFM (Understand The Finger-lickin'-good Manual) so I can say "I RTFM but I can't don't UTFM"...or better yet, ICUTFM IDUTFM (I Can't Don't Understand The Finger-lickin'-good Manual) so I can say "I RTFM but ICUTFM IDUTFM"...oooh oooh, even better: IRTFMBICUTFM IRTFMBIDUTFM ( I Read The Finger-lickin'-good Manual But I Can't Don't Understand The Finger-lickin'-good Manual). Oops, I think I just digressed to the point where I have no idea where I was headed to begin with. Oh, wait, I think I have it now: It seems people here really hate it when someone asks questions that are covered in the manual, which is understandable. I'm happy to see that many people here treat those who don't understand the manual, well. After all, it is difficult to reach Enlightenment if there are other users lying dead on the trail from multiple RTFM wounds.

And if anyone is wondering why I think it's an Ocean of Enlightenment and not a Sea of Cluelessness: Dolphins are extremely intelligent and gentle animals (although, I wouldn't be surprised if someone was a victim of a dolphin attack), much like many of the monks I've met online (yes, that applies to the attack statement, too). I remember reading a theory that during the dolphin's evolution they came out of the ocean, walked on land, and then returned to the ocean. It may be a defunct theory, I don't know, but I'd like to think that there's something to it. So I'm merely paralleling the highest theorized physical evolution with intellectual enlightenment. Besides, Death by Enlightenment Asphyxiation sounds cool :)


Update: Fixed a few typos
Update 2: Took tye's suggestion (see below), but modified it a little to save an extra letter.
Update 3: tilly confirms that dolphins did indeed evolve into sea dwelling mammals

  • Comment on Perl Enlightenment and Personal Journey To It

Replies are listed 'Best First'.
Mission's Re: Perl Enlightenment and Personal Journey To It
by Mission (Hermit) on Apr 26, 2001 at 07:38 UTC
    WebHick, I agree with you. I am also on the journey to Perl Enlightment (like so many others here.) Heck, just go to the Newest Nodes and look at the new users each day. They just keep comming in! That's great that we get that kind of reaction and respect from the users at large, that they want to be a part of our community.
    My background is varied as far as programming, but I know the basics (I've survived classes in Basic, Fortran, Cobol, C, Pascal, etc.) I also understand the frustration that you mention about 'RTFM.' Heck, I think I was visiting Perl Monks actively for about a week before I figured out from someone's post that docs even EXISTED! I was so excited at that discovery that I didn't post for a couple of days (I was too busy reading.) Later, I was reading another node about Super Search. So I searched for it, and found so much info that most of my 'Newby' questions went away.
    I still have many personal questions about docs. I think the biggest question I still have is this, "Are there more docs I'm not aware of? (Again!)" I've never dealt with a language that had as much documentation (built in), if you know how to get at it, and read it. I do wish that people would talk more about the different docs available and how to get at them from different OS's. That might be a nice addition to the Perl Monks guide to the Monastery.
    The biggest help for me has been to be active in Perl Monks. Post questions, code, my current revelations, the hows and whys, etc. This allows me to interact with the people in the know. Heck, I get to the point that I'm starting to get the feel of the personalities of each of the monks. BTW: What's up with the cherry pies Node Reaper?
    I've been building a large application over the past few weeks. It's to the point that this project is about all I think about day and night. I find myself reading other people's code, and discovering ways to make my code more efficient. I assume it's normal, heck that's a majority of merlyn's posts. I enjoy reading his code and scratching my head most days.
    My last thought for this node is this: I know my code could be written better / more efficient, but it works. For me right now, that's a major accomplishment. I feel as though I'm swimming in the resort area of your ocean of enlightment with a Lifeguard in sight. I've got a long way to go before I'll be comfortable in the depths of perl (and in my code), and I'm ready for that journey.

    - Mission
    "Heck I don't know how to do it either, but do you think that's going to stop me?!!"
Re: Perl Enlightenment and Personal Journey To It
by eejack (Hermit) on Apr 26, 2001 at 08:16 UTC
    The scariest part is Reading The Wrong Manual. Unfortunately there are a lot of bad Perl books out there - most of them quick throwaway CGI focused (if you can actually call them focused) scraps of paper waste that deserve not the effort to put an ISBN number on them.

    I accidently wandered into using perl after a few years of being a cold fusion/java on Macintosh programmer - hosting on an NT server I could barely maintain. I was forced to learn perl because clients keep wanting to put scripts from an unmentionable script archive on my server.

    Talk about culture shock!

    It was like bumbling through the dark and falling off the pier. Picking up a ton of rotten books on perl was like hitting the rocks below and missing the water entirely.

    A kind soul gave me learning perl.

    Since then I have pretty much stuck to the oreilly books, even went as far as to purchase and run the oreilly webserver on my NT box ( cannot say enough nice things about oreilly - the two thick books for their webserver are overly complete and would be excellent reading for anyone working on the net - even if they *don't* run that webserver).

    That said, I still have problems reading through the perldocs - they are written from a perspective I only partially gained relatively recently. Personally I think the most frustrating bits of documentation are sprintf and printf. They basically say - they work like sprintf(3) and printf(3) or some such verbage. I still mess them up constantly. I'm sure many of the monks here chuckle at that and I will someday myself, but it was frustrating trying to learn perl without access to a command line.

    So now I am reading the right manuals...I just cannot find the preface and forword so I can understand them properly.



Re: Perl Enlightenment and Personal Journey To It
by Sherlock (Deacon) on Apr 26, 2001 at 08:12 UTC
    I propose we add a new(?) acronym: UTFM (Understand The Finger-lickin'-good Manual) so I can say "I RTFM but I can't UTFM"...or better yet, ICUTFM (I Can't Understand The Finger-lickin'-good Manual) so I can say "I RTFM but ICUTFM"...oooh oooh, even better: IRTFMBUTFM ( I Read The Finger-lickin'-good Manual But I Can't Understand The Finger-lickin'-good Manual).

    I'd have to say that I agree with this statement entirely. (As a software engineer, I even like all the acronyms.) My problem is that I'm a software engineering student and I'm much more used to writing large applications using C++/Java/Ada, etc. Also, I do my development in a Windows environment and I've done little work on Unix or Linux at all. For me, web development is a job I have on the side and something I like to do for fun. This can cause the rather "Unixy" cryptic syntax of Perl and its documentation rather frustrating. Granted, once I understand a function, the documentation makes perfect's just getting to that point where I have trouble. I need to see an example of how it's used before I can really understand it well. (See the section on books below)

    Finding The Monastery was the most important step in my journey.

    I'd have to go along with Mission (after all, I work for the guy) in saying that PerlMonks has been a great help. Granted, I seem to get razzed every time I post code because everyone tells me that it looks too much like C and that it's not very "Perlish" (Now that you know what I do, can you blame me?), but the monks are very helpful...and very prompt. I actually had one monk send me a lengthy e-mail (thanks again tinman) explaining what a module was and how to install new ones.

    I couldn't really afford to buy books on the subject

    Now if only I could convince Mission to buy me more books...

    - Sherlock
Re: Perl Enlightenment and Personal Journey To It
by clemburg (Curate) on Apr 26, 2001 at 12:47 UTC

    As eejack pointed out, there are big dangers in reading the Wrong Manuals (or at least, in reading them first).

    The single book that taught me the most was Structure and Interpretation of Computer Programs. I can only encourage every programmer to work through this book. Especially those programmers that are self-trained (like me) will profit from it. It will give you a strong foundation to build on.

    Christian Lemburg
    Brainbench MVP for Perl

Re: Perl Enlightenment and Personal Journey To It
by nysus (Parson) on Apr 26, 2001 at 17:15 UTC
    How I learned (and continue to learn) Perl/CGI:

    Thinking they were for advanced users/programming professionals only, I was a bit intimidated by O'Reilly books. Instead a bought Laura LeMay's "Teach Yourself Perl in 21 Days". My first lesson from this book was that THERE IS NO FUCKING WAY YOU CAN LEARN PERL IN 21 DAYS! Yes, you can get a good, strong foundation in that time but that is about all. The title of the book is nothing but a bad marketing ploy.

    Anyway, I digress. The book was just what I needed to get my feet wet. LeMay is an excellent writer. She really knows how to anticipate what the reader is thinking and what the reader wants to know. Also, the book is written for the newbie. I strongly recommend this book to newbies. It's definitely the book if you need your hand held. Just don't try to adhere to the ridiculous 21 day schedule or you will probably come out clueless on the other side.

    Of course the book does have it's problems. There are numerous typos in the example code. Also, the book glosses over more advanced functions and techniques. For me, this is where the O'Reilly books came into play. A few weeks ago, I purchased the O'Reilly 6 book Perl set (only $60 for 6 O'Reilly books!) they publish on CD-ROM. I now use this resource when I want to look up info on more advanced topics. I still find the writing in them a bit more cryptic, but far more accurate and concise (sometimes LeMay was a bit too wordy).

    About 1 month ago (and about 1 month into my journey) I was lucky enough to discover PerlMonks. Needless to say, it's been a great resource. I quickly discovered that you could actually get intelligent answers to a posted question here and so I knew that PM was a special kind of community. I've donated $10 and bought a t-shirt. I encourage you to do the same. Keep this community alive if you found that it has helped you:

    Visit the offering plate

    PerlMonks has helped me in two critical ways. First, the friendly people here have given technical assistance with code that has stumped me. They've also pointed me in the right direction with reference to Perldoc. From them, I learned that Perldoc could acutally be useful. When I first looked at it, it was nothing but gibberish. The second thing I've taken away from PM is the culture that surrounds Perl and the programming community. I'm more of a computer hobbyist and could only guess as to what it was like out there in the "real" world. I now have a better feel for what the landscape is like.

    But just put all the above aside for a minute. The real reason I think I've been pretty successful at learning Perl is my unwavering drive to learn it. I spent hours upon hours upon hours almost every day reading, playing with code on my server, and writing my own basic scripts. This kind of diligence is the number one ingredient. What I lack in a natural programming talent, I've made up for with pure brute strength. So far it seems to be paying off.

    $PM = "Perl Monk's";
    $MCF = "Most Clueless Friar";
    $nysus = $PM . $MCF;

(tye)Re: Perl Enlightenment and Personal Journey To It
by tye (Sage) on Apr 26, 2001 at 21:00 UTC

    I think that would have to be ICNUTFM for "I Can Not Understand The Fine Manual" so some of us can write ICUTFM (I Can Understand The Fine Manual -- sounds like something you'd find on the cover of a manual written by Dr. Seuss). ;)

            - tye (but my friends call me "Tye")

      You have an extremely good point! But, instead of adding the "N" to the acronym, why don't we just change the "Can't" to "Don't." It essentially contains the same flaw, but I don't know anyone who would say "I do understand the manual" without accenting the "do" somehow, in which case it would be best just to spell it out so the point comes across clearly.


Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlmeditation [id://75666]
Approved by root
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others avoiding work at the Monastery: (4)
As of 2024-05-30 22:17 GMT
Find Nodes?
    Voting Booth?

    No recent polls found

    erzuuli‥ 🛈The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.