Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?

Best Approach to Learn Perl for a Non Programmer

by dru145 (Friar)
on Aug 11, 2001 at 01:56 UTC ( #104055=perlmeditation: print w/replies, xml ) Need Help??

Hey Monks,

I wonder if anybody else is in the same boat as I. It seems to me that the majority of monks are either experienced or semi-experienced programmers who probably already had a solid understanding of a programming language under their belt before learning Perl.

I have attempted to learn Perl about three times before and then giving up telling myself it is because I don't have any programming experience. Well this time I am determined to learn it because I know it will make my job much easier.

Are there any other Monks out there who never wrote a piece of code before attempting to learn Perl? I am looking for suggestion for the best way to become proficient in Perl. I know it will take time, but I just want to make sure I am heading down the right path.

Are there any books that you would recommend? I pretty much already read all of Learning Perl which is a good start, but not enough meat. I thought I was ready to move on to Programming Perl, but how wrong I was. It is difficult for me to try and grasp the concepts in Programming Perl. I believe it is because I don't have any experience with a programming language.

  • Comment on Best Approach to Learn Perl for a Non Programmer

Replies are listed 'Best First'.
Re: Best Approach to Learn Perl for a Non Programmer
by advocate (Scribe) on Aug 14, 2001 at 12:55 UTC
    I feel the same way...I have no experience in programming at all. Luckily, my mom (a PerlMonk) persuaded me to try learning Perl, and I am enjoying it!

    So to help me get started, my mom bought me Beginning Perl (Simon Cozens) This book is good for learning the basics and for getting a clear idea of how to understand Perl and how it works. I've noticed that a lot of monks have recommended Learning Perl. I hope this one still helps!

    I can't quite grasp all the concepts yet either, but from what I've been told, it's not something to worry about in the early stage of learning.

    Good Luck!

      As I've said elsewhere, Learning Perl is really aimed at people who have experience of programming in other languages.

      Elements of Programming with Perl is the book that I recommend for complete beginners. I've heard good things about Beginning Perl as well, but I've not read it yet. I bought a copy in the YAPC::Europe auction so I'm going to take a closer look at it soon.

      And don't worry if you don't get all of the concepts first time round. Don't forget the we're here to help :)


      Perl Training in the UK <>

        Thanks davorg and everybody else's comments. They have been really helpfull with some great node links.

        I actually just bought Elements of Programming with Perl and I am just waiting for it to arrive. In the meantime, I have been doing the exercises at the end of each chapter in Learning Perl, but I wish Schwartz & Christiansen wouldn't use the term "similar to how it is in C" to explain some of the commands.

        I still feel that this site is the best resource because it is like having your own personal mentor of Perl guru's at your fingertips, except they make you work for the answer : ) which is the best way to learn in the long run.

        Thanks Again,
Re: Best Approach to Learn Perl for a Non Programmer
by LD2 (Curate) on Aug 11, 2001 at 05:15 UTC
    You have the desire to learn Perl, that's a great start! The difficult part of learning any language is keeping up the desire and motiviation. The best way to learn a language is to gain experience utilizing it. A good way to start, think of a goal and create a deadline for yourself... and then GO For IT!! :) Granted, you may fall into some pitfalls or have questions - but that's natural. You'll learn with each problem and question. As you finish your project, you'll be amazed on how much you've learned - and you accomplish something as well(either something fun or useful for work).

    Here are some useful nodes: If you run into any problems, feel free to ask -That's what we're here for (or one reason.. besides learning ourselves).
Re: Best Approach to Learn Perl for a Non Programmer
by tadman (Prior) on Aug 11, 2001 at 04:05 UTC
    Like learning any skill, the fundamental requirement is practice.

    Since practice for the sake of practice is rather dull, and not especially rewarding, it is often better to practice on something you have an interest in. Instead of merely using book examples or "problems", try and find some task that you would like to do, and make a program to solve it. This could be something like picking lottery numbers, checking your favorite baseball player's stats, or finding duplicate files on your hard drive, whatever you have an interest in.

    The idea is to focus on the problem and not the programming. Subjecting yourself to dozens of academic examples will not teach you how to solve problems, which is really what programming is all about.

    I would recommend reading Programming Perl's function section, and familiarize yourself with every function that there is, though obviously not all at once. Understanding the tools you can use is very important, as there is often a single function which can save you a lot of time compared to writing your own out of ignorance. You won't understand all of them at first, but without exposure, you will never understand, so just take it at a comfortable pace. You must learn the vocabulary in order to learn the language.

    Unlike Learning Perl, which is more of a tutorial, Programming Perl is more of a reference, which means that you aren't necessarily expected to read it cover-to-cover in a direct sense. It's there for you to pick up when you need help with something, like how split works, or to find a function that sorts. It's like a dictionary in that sense.

    Making it enjoyable will make your learning more productive.
Re: Best Approach to Learn Perl for a Non Programmer
by melguin (Pilgrim) on Aug 11, 2001 at 03:00 UTC
    Although I had taken a class in Pascal, Assembly (sounds scary but we didn't do much), and C, Perl is by far the first language that I came to know well enough that I can claim as a language I can say more they "Hello, world" with.

    I asked the same question to others when I was at the stage you are in, and I got the same answer I'd also recommend to you. Find something you want to do with it then, solve learning problems as you come to them.

    Also, I would suggest that if you haven't already, do all of the excercises in Learning Perl, check your program with their's, implement what you learn from their's into your own code, then mess with and make it do other things it "doesn't have to."

    Above all, do something fun.


      This might sound like questionable advice, so read at your own risk...

      What I like to do when learning something new is start at a very advanced stage, just read through source code, the more advanced books, etc. without really worrying about catching onto any of it. So after you've done this for a week or so you really don't feel like you've learned anything at all but when you go back and pick up a beginners book, you find yourself focusing a lot better. You'll recognize things and know that there are real world applications for each of the examples and you'll remember them far better. Oh yeah, and like everyone else says do the examples, make up problems to solve on your own, and practice, practice, practice. Hanging around here doesn't hurt either :)

      Hope this helps
Re: Best Approach to Learn Perl for a Non Programmer
by mirod (Canon) on Aug 11, 2001 at 11:41 UTC
Re: Best Approach to Learn Perl for a Non Programmer
by ralphie (Friar) on Aug 11, 2001 at 04:45 UTC
    my strategy when learning has always been to pick a small project that has to do with what you do and just launch into it ... the first little perl endeavor i undertook was to update the ip address for the e-mail post office at work in the windows registry, then i launched into parsing logs, which led me into database access, etc. each leads you into picking up something new, and you've got the satisfaction of actually getting something done. personally, i'm amazed at the people who can actually read through all of the perldoc pages first, i'm far too impatient for that. i have been know to re-invent the wheel as a result, but what the heck, at least i know i can do it.
Re: Best Approach to Learn Perl for a Non Programmer
by lemming (Priest) on Aug 11, 2001 at 09:01 UTC

    Maybe what you should do is get a basis of programming?
    This link by tilly has some good suggestions down that path. Actually, his node has many good pointers to nodes and outside links about programming in general.

    Yeah, check that node too.

Re: Best Approach to Learn Perl for a Non Programmer
by Aighearach (Initiate) on Aug 11, 2001 at 04:17 UTC
    My recommendation is to read all of the perldoc pages, start to finish. Don't worry about understanding any of it! It's language, and just like a spoken language, you need a lot of fodder. If you read encyclopedias, you'll learn a lot, even if you don't remember any of it, or if it doesn't make much sense. Pieces creep out, so if you don't feel comfortable with the language, just keeping dumping more "gah gah gah" in.
    Snazzy tagline here
Re: Best Approach to Learn Perl for a Non Programmer
by princepawn (Parson) on Aug 11, 2001 at 08:04 UTC
    I have attempted to learn Perl about three times before and then giving up telling myself it is because I don't have any programming experience. Well this time I am determined to learn it because I know it will make my job much easier
    well what exactly is your job and how do you feel that Perl will make it easier? if you are a non-programmer, there are many things between full-fledged programming and non-programmatic point-and-click.

    Are you certain that you dont need something less than full-fledged programming (ie, spreadsheet, database, expert system)? Are you certain that what needs to be done needs to be done by you? I often try to take matters into my own hands when it would be better to delegate the task to someone with much more experience.

    Also, note well, you might just want to take a look at CPAN, a Perl archive of useful software. What you want done may well likely already exist there. And also read articles on and to see solutions to common problems.

    Not to scare you away, but again, what is the role that you feel Perl will fill in your occupational endeavors?

      i think there's a danger in categorizing "full-fledged programming" as opposed to smaller tasks. large applications are comprised of a well-conceived integration of smaller modules. if one learns to write smaller modules one is programming, period. there are additional skills involved with integrating components into larger projects, but these architectural issues are themselves meta-programming issues that evolve and change. this is an interative process for anyone who participates in it. someone who writes a complex app may be a master programmer, but someone who maintains an overall system involving disparate apps through the use of glue scripts can be just as much a master programmer.

      although i recognize this is an over-simimplification, a dominant model for large-scale software development involves smaller teams writing components that are incorporated into larger-scale constructs. as a person learns to write components, they are learning to program.

Re: Best Approach to Learn Perl for a Non Programmer
by DrZaius (Monk) on Aug 12, 2001 at 00:30 UTC
    My first programming language was perl. Well, I tried learning C before that, but it was really slow to accomplish anything, so I really didn't use it.

    When it comes down to it, it doesn't matter how much experience you have before hand. You need to use something in order to gain experience with it.

    One thing I notice is that unless I use something I just learned, I'm going to forget it. It is important to find practical uses for perl in order to get good at it initially. For example, write a web application of some sort, like a day timer or an mp3 database. Just do something with perl.

    It's kind of like "If your only tool is a hammer, all your problems will look like nails." But until you understand your hammer, all your problems will look like glass beads.

    If you want to learn perl, use it.

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (4)
As of 2022-06-30 04:58 GMT
Find Nodes?
    Voting Booth?
    My most frequent journeys are powered by:

    Results (97 votes). Check out past polls.