Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
PerlMonks  

Re: How does one learn perl programming efficiently - if they do not come from computer science background?

by GrandFather (Saint)
on Nov 25, 2016 at 20:48 UTC ( #1176554=note: print w/replies, xml ) Need Help??


in reply to How does one learn perl programming efficiently - if they do not come from computer science background?

Like many of the other replies my main advice is to practice. Unlike some of the other replies I think there can be great advantage into dipping into a University level Computer Science course. If you have the opportunity of attending a few selected papers that deal with subjects like data structures and algorithms you can pick up a few tools that you will use directly or for guidance often. It doesn't matter that the course uses a language other than Perl, most of that information translates well across languages and Perl is pretty good a being what you need it to be.

A lot of those tools and techniques you can pick up just by looking at the vast quantity of code around this site and by asking questions about it. But you will miss the overarching principles that let you use techniques in many different ways. A good computer science course will teach you the philosophy as well as the practice.

Premature optimization is the root of all job security
  • Comment on Re: How does one learn perl programming efficiently - if they do not come from computer science background?

Replies are listed 'Best First'.
Re^2: How does one learn perl programming efficiently - if they do not come from computer science background?
by jmlynesjr (Deacon) on Nov 27, 2016 at 01:29 UTC

    In 30+/-years at $work(EE doing realtime software), I found that if I got the data structures correct, the code usually flowed. If not, things got messy fast. Also, read all the code you can from acknowledged Perl experts(for me in the early days this was reading the Data General RDOS and AOS operating system code).

    Domain knowledge is as important as Perl knowledge(You want to control a power system give me a call, develop a website not your man).

    James

    There's never enough time to do it right, but always enough time to do it over...

      I found that if I got the data structures correct, the code usually flowed. If not, things got messy fast.

      This piece of advice reminds me of the following famous quotes from Fred Brooks, Rob Pike, Eric S. Raymond, and Linus Torvalds:

      The programmer at wit's end for lack of space can often do best by disentangling himself from his code, rearing back, and contemplating his data. Representation is the essence of programming.

      -- from The Mythical Man Month by Fred Brooks

      Data dominates. If you've chosen the right data structures and organized things well, the algorithms will almost always be self-evident. Data structures, not algorithms, are central to programming.

      -- Rob Pike

      Show me your code and conceal your data structures, and I shall continue to be mystified. Show me your data structures, and I won't usually need your code; it'll be obvious.

      -- Eric S. Raymond

      I will, in fact, claim that the difference between a bad programmer and a good one is whether he considers his code or his data structures more important. Bad programmers worry about the code. Good programmers worry about data structures and their relationships.

      -- Linus Torvalds

      See also: Re: Swallowing an elephant in 10 easy steps

        I knew the Raymond quote because itís used as a chapter intro in some Perl book or another. I didnít know the others. Good to see them.

        Great quotes! "The Mythical Man Month" should be required reading.

        James

        There's never enough time to do it right, but always enough time to do it over...

Re^2: How does one learn perl programming efficiently - if they do not come from computer science background?
by GotToBTru (Prior) on Nov 25, 2016 at 23:06 UTC

    Another advantage of a formal course is breadth of coverage. Learning only what you need to know at any given moment can provide a nice deep dive into that particular topic with the motivation that comes from being able to immediately apply it. For example, I know next to nothing about frameworks and CGI, because I've never had to learn it. I'd bet most Perl courses would cover them because that's a large part of what Perl is used for. Just not by me.

    But God demonstrates His own love toward us, in that while we were yet sinners, Christ died for us. Romans 5:8 (NASB)

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1176554]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others studying the Monastery: (3)
As of 2022-05-21 10:35 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Do you prefer to work remotely?



    Results (76 votes). Check out past polls.

    Notices?