http://www.perlmonks.org?node_id=1015722

No code here,,,just a crazy rant :

I am starting to re-learn perl and entered the monastery so I could say this...I am over whelmed. I used perl before and got paid for it, and walked away, actually more like slipped away, and now I've decided I don't want to do anything but perl, but, it's like I can't fit it all into my skull, and I feel like my plane is crashing.

I've been on this site quite a bit, and it helped me to learn XRC for wxperl , which I quite like, but --- I'm trying now to figure the best way to distribute that, and that's causing me some distress, and I've drifted into Perl 6,,,,which may be like a snow bank at the end of a rough ski hill...crashing. Is it hard, is it soft? I can't seem to fit 5 into my head...so where does 6 go?

Actually, I also had the exact same experience with pde's - partial differential equations. I wonder if there's a connection there? Total blind panic.

I don't know, just lot's of questions, and I don't feel like I'm sufficiently fluent to trust I'll go in the right direction. In practical terms that means I can read it fine, but writing it is difficult. Too many pointers pointing in too many different directions.

Originally, when I thought about getting onto this site, I thought I would ask if there are any Minnesota perl'ers that want to help create a Minnesota perl-mongers --- so at least that some kind of a question - that might make sense.

Sorry, crazy rant --- I feel like a could use some guidance or maybe a hug? -- Couldn't help it. Does anybody else feel this way? Or is everyone too busy for that?

I will try to avoid these kinds of emotional outbursts in the future.

Replies are listed 'Best First'.
Re: Out gunned - and crashing
by blue_cowdawg (Monsignor) on Jan 28, 2013 at 16:40 UTC
        I am starting to re-learn perl and entered the monastery so I could say this...I am over whelmed. I used perl before and got paid for it, and walked away, actually more like slipped away, and now I've decided I don't want to do anything but perl, but, it's like I can't fit it all into my skull, and I feel like my plane is crashing.

    No offense meant by this but when I read your post (not sure it really is a meditation) I get the impression that it was written by a jittery chihuahua. Being as I'm a dog trainer in my real life that could just be me.

    My advise to you is to prioritize your learning goals and break down those goals into bite sized chunks of tasks that you need to learn to accomplish each goal. Every time I've ever learned how to work in a new environment (Unix, Solaris, Linux, Windows, OSX, whatever) I start off with the little stuff and build on that.

    I'll give a dog training example here. Teaching the sit command.

    Before I teach a dog sit I make sure that I can get that dog's attention whenever I need to. Just like people, you can communicate with a dog much better if they are paying attention to you. Before that I make sure the environment we are working in is as stress free as possible because neither people nor dogs learn very well or efficiently if they are stressed out. I may take the dog into high stressed environments to practice skills once they know them, but that's much later on.

    Once I have the dog mastering how and when to pay attention to me I start with the sit in small bites. (there is no pun there... move along) I start by getting the dog's attention and holding a treat over their head so they reflexively look up at it and as if by magic their back end will drop into a sit. I do this a few times before I associated a word with that. When they are sitting every time the cookie is held by their head I'll start saying "Good Sit." After a while the food lure starts being used less and less and later on I just used the command "sit" when the dog has associated the word with the action and in their mind they know they'll get a treat for doing as told. I could go on and on about variable reinforcement, chaining, back-chaining and a whole lot of other subjects but that is beyond the scope of what I'm trying to say here.

    I looked at your home node to see how long you've been with us (an hour?) and how many postings you've made (one.. this one.) You have hardly given the PM a chance to help you along. So now that you are (hopefully) paying attention let me point out a few starting places for you to learn from:

    • get to know us better
    • Depending on how far along your journey of enlightenment for using Perl here might be a good place to visit.
    • Once you have played with Perl for a while and you run into questions first visit here, here and here are good things to read through and understand before your first posting.

    I would also like to point out a few thoughts:

    • Everybody learns differently. For example I can't read a book on programming without stepping through the examples and making the code run. I might change a value or two here and there (DB credentials, URLs, etc) to suit my environment but the reason in my mind for this is very simple. Seeing is believing.
    • Everybody learns at a different rate. I still have to go off to my notebook and look up a Schwartzian Transformation when I want to use one. It just won't stick in my head.
    • There is always more than one way to do it. (TIMTOWTDI) If you only have a hammer in your toolbox all your problems either look like nails or your thumb.

    So, to sum all this up I'll use an expression from my other big hobby, home beer brewing, and tell you "RDWHAHB" which is short for Relax, Don't Worry, Have a Home Brew. Take your time and learn. I've only been working with Perl myself since circa 1989 or so and I'm still learning.


    Peter L. Berghold -- Unix Professional
    Peter -at- Berghold -dot- Net; AOL IM redcowdawg Yahoo IM: blue_cowdawg
Re: Out gunned - and crashing
by muba (Priest) on Jan 28, 2013 at 17:44 UTC

    Lean back in your chair. Breathe. For a moment, just sit there and breathe.

    From reading your post, I get the impression that you want too much, too quick. So sit back, relax, and hear me out.

    Since Perl 1, back in the eighties, Perl has come a long way. It's a general purpose programming language, that strives to make easy things easy and hard things possible. Unfortunately, that comes at a price. To make easy things easy, Perl has to be a lot of things. That can be imitating.

    For example, is Perl an OO programming language? Yes and no: Perl has built-in support for OO, and modules like Moose (edit: fixed linkage) extend Perl's OO system even further, but it's not an OO language in the sense that everything is an object.

    Is Perl a functional programming language? Yes and no: functions such as grep, map, and sort take another function as an argument, and you can even write your own subroutines that do that, but functions aren't really first-class citizens. You can pretend they are by using references, if you want, though. This might sound like black magic right now, but given enough time, you'll find that you're throwing around references in your code like you've never done anything else.

    Keep breathing. Everything's all right.

    Then, is Perl an event-driven language? Well, it's not that hard to write an event-driven script, but strictly speaking Perl is not an event-driven language, although there are event-driven frameworks out there.

    So is Perl at heart an imperative language, then? Well, yes, if you want it to be.

    In short, Perl offers you, the programmer, a lot of ways to solve a lot of problems. Whichever way you pick entirely depends on what seems most natural for the problem at hand. But Perl tries to be in your way as little as possible, just handing you a bunch of tools that you can use as you see fit.

    For example, there are no stacks or queues in Perl, but there are arrays, and there are functions such as pop, push, shift, and unshift. An array + push + pop is just like a stack, ad a array + push + shift perfectly mimics a queue. Minimalist tools that at the same time provide a great deal of flexibility.

    If you want to learn Perl, you'll have to learn about the tools that Perl gives you. Once you have a solid grasp on those, you'll be able to combine them into something that does what you want. So pick up a good book, work your way through Getting Started with Perl (as suggested per blue_cowdawg), play with the examples and see how your changes affect the way the program runs, make mistakes and learn from them, and of course ask questions here if there's something you don't understand or if there's something you need to know.

    But take your time. Don't try to get it all at once. It took about two decades for Perl to get where it is now, nobody expects you to pick it up overnight.

    Once you get a basic understanding of the toolset that Perl is, you'll be able to make those tools work for you. And you don't even have to know all there is to know: Perl is friendly enough that it lets you write working programs even while you're just a novice Perl hacker, and you will find that the language grows with you as you grow into the language. You just sit back, keep breathing calmly, and give Perl a chance.

Re: Out gunned - and crashing
by talexb (Chancellor) on Jan 28, 2013 at 18:01 UTC

    You've already got two *excellent* answers. You've been here an hour. Perl is hard. Developing software is hard.

    Give yourself some time. Write a few little, simple programs. Don't stress. Work your way through Learning Perl (aka the Llama, available from O'Reilly (see below) and your local bookstores). Work your way through Programming Perl (aka the Camel). Read lots of stuff on this site. Breath.

    Alex / talexb / Toronto

    "Groklaw is the open-source mentality applied to legal research" ~ Linus Torvalds

    PS O'Reilly's here: http://www.ora.com.

Re: Out gunned - and crashing
by tonto (Friar) on Jan 28, 2013 at 21:00 UTC

    {{{Hugs}}}

    You are not alone. I've also just returned to Perl, although I was just beginning to really learn it when taken away by an illness.

    The ability to learn is like a muscle, it atrophies without use. We have to keep coming back to the task and exercise that muscle until it regains its strength.

    Have patience with yourself. Good luck!

Re: Out gunned - and crashing
by Anonymous Monk on Jan 28, 2013 at 18:40 UTC
Re: Out gunned - and crashing
by perl514 (Pilgrim) on Jan 31, 2013 at 19:19 UTC

    Hi,

    You've already got a lot of great answers, and these are from very well skilled Perl Developers. Now, how about some suggestions from a still "wet-behind-ears" Perl guy?? :)

    I am someone who started learning this fabulous language about a year or so ago, and let me tell you its been fun. I too get overwhelmed by the sheer reach, possibilities and absolute fabulous nature of this language. Many times, I have spent frustrated moments just like you and I have walked away thinking "this is not gonna happen", but some time (or days) later, I come back, and some new stuff pops up in my head, I try it out and it works. And it feels real good.

    I would suggest you first pick up 1) really good books, (two of them are in my signature. And I can vouch for them. If these books can teach me how to write Perl scripts, anyone can learn them.) and 2) pick up something that you want to automate....something that you find so frustratingly, mindlessly repetitive, that you say to yourself "I wish this could be scripted so I don't have to do this xyz stuff manually" every time you do it.

    So now, you have a task that you want to automate and the books that will tell you how to go about it

    Read a chapter first. Then, try each and every example given in the book. After some time, you'll know which examples are to be actually typed and which are just for the sake of understanding so you don't need to type them. What you absolutely must try are the End Of Chapter exercises. They will do you a lot of good. And if you don't get to use Perl everyday, at least spend 15 minutes writing something in Perl. Say you read a chapter and try some examples on a day. The next day, try to type the program without looking into the book or the script. You'll miss a colon, or a comma or typing an additional one. You'll get a lot of errors, and when you fix them, you'll know where you went wrong.

    Once you gain some confidence, try to solve the problem. Write a script that will get a part of the problem solved. Then build upon it...then go back to the book(s) and see if the new stuff you learned in the book, or the old stuff that you revised helps you to work on the problem in a better way. Then again go back to the script. Modify it, enhance it, and then back to the books.

    The best part is, you don't have to go through the entire book to start being productive. I wrote a small automation script by the time I was halfway through Learning Perl. A little more reading, browsing, and most importantly spending time and asking questions on Perl Monks and the script is now way better than its first version.

    The most important thing, in my very limited, humble (and humbling) experience, is that you need to start writing something. Start writing a small script, a small program, a small something, but please start. That will move your focus from the overwhelming nature of the language onto resolving an issue/writing a script.

    Another thing is, you seem to be upset that 1) you didn't fully utilize the earlier opportunity as a Perl Developer and 2) You have now finding the language overwhelming. Please let go of these thoughts. Only thing they will do is hinder your progress. Imagine your plight if you were never ever to come back Perl. Then you would really be missing on this awesome language.

    And talking of going to some other language, I have done that too. It all seemed fine initially, but the moment I tried to add some more functionality to the script, it started appearing very limiting. So, I came back to Perl and have never gone back.

    Hope this helps you my friend. Wish you all the best

    Perlpetually Indebted To PerlMonks

    use Learning::Perl; use Beginning::Perl::Ovid; print "Awesome Books";

Re: Out gunned - and crashing
by sundialsvc4 (Abbot) on Jan 31, 2013 at 23:08 UTC

    Maybe it’s a blessing that I have been involved in this industry for over 30 years ... such that I fully and completely understand what Mr. Philippe Kahn of Borland International referred to as “a sip from a firehose.”

    It seems to me that this peculiar aspect of “our mutual obsession” is presently catching you off-guard.   :-)   Perhaps no one clued you in, yet, that “in this (still...) very crazy business of ours,” you need to find a way to learn to expect it.

    Fact is ... you will always find yourself to be, as you say, “out-gunned.”   In other words, you will never find yourself in the happy position that the digital computer does not possess any means by which it can blow you completely out of the water.   You will always find yourself utterly overwhelmed (but only if you choose to be ...) by “what you didn’t even know that you didn’t know.”   Believe it or not ... this is par for the course.

    Welcome to our mutual obsession.   C’mon in, the water’s fine ... they’re coming to take me away ha ha ...

    And please rest assured ... I am quite (sober and) serious.   The actual situation that you now find yourself in, albeit “a sip from a firehose,” can in fact be dealt with, and even treated as (ha ha!) ... well ... not quite ;-) ... “normal.”

Re: Out gunned - and crashing
by cavac (Parson) on Feb 04, 2013 at 13:55 UTC

    Ok, this is probably only my crazy point of view:

    Since you already worked with Perl before, you know it's a quite complex, living language. If you choose Perl 5 or 6 depends on what you want now. If you want to be on the edge of modern Perl, choose 6. If you want to implement practical projects, i would choose 5 at the moment any time.

    You don't really learn a language (spoken, written, programmed doesn't matter) because you just want to. Not in any practical sense, anyway. You may learn the vocables and grammar by reading books. But you only learn the fine art of practical application by... applying it in practice.

    • Start with small projects. Ever disliked that your digital music or video library has no consistent naming? A homebrew Perl script can fix that.
    • Always wanted to professionally manage your families Piggy bank? Here's my version of that: 976888.
    • Always a good starting point is writing your own minimal text adventure. This has input, output, text parsing, state handling and much more. See "Cavac does text adventure": 976036, 978081, 978256
    • There are a few more useful nodes linked in my profile: 890813

    So, just relax, take it easy and have fun!

    "I know what i'm doing! Look, what could possibly go wrong? All i have to pull this lever like so, and then press this button here like ArghhhhhaaAaAAAaaagraaaAAaa!!!"
Re: Out gunned - and crashing
by Anonymous Monk on Jan 28, 2013 at 22:47 UTC
    { { { Hugs } } }
Re: Out gunned - and crashing
by punch_card_don (Curate) on Feb 01, 2013 at 16:32 UTC
    My number one piece of advice would be to adopt a frame of mind that never again lets you ask for a hug on a public forum.



    Time flies like an arrow. Fruit flies like a banana.
Re: Out gunned - and crashing
by RichardK (Parson) on Feb 02, 2013 at 12:20 UTC

    This reminds me of that old joke :-

    How do you eat an elephant?

    Just one bite at a time!