Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic
 
PerlMonks  

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

by choroba (Cardinal)
on Nov 24, 2016 at 23:19 UTC ( [id://1176518]=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?

I don't have a proper computer science background, either. I studied logic as my masters, and mathematical linguistics as my PhD. What made me good in programming (I mean, as good as I am) was practice and experience.

When you write a regex for something for the first time, you can't get it right. When you write it for the tenth time, you get it almost right at the first try; and when you write it for the hundredth time, you get it right without even thinking.

Besides programming at the university for my thesis and for money on my side jobs, I also registered at sites like Rosalind.info or HackerRank and programmed for fun in my spare time.

I was lucky to meet several people that were far better than me, and I learned a lot from them. And I'm still learning.

Good luck!

($q=q:Sq=~/;[c](.)(.)/;chr(-||-|5+lengthSq)`"S|oS2"`map{chr |+ord }map{substrSq`S_+|`|}3E|-|`7**2-3:)=~y+S|`+$1,++print+eval$q,q,a,
  • Comment on Re: How does one learn perl programming efficiently - if they do not come from computer science background?
  • Download Code

Replies are listed 'Best First'.
Re^2: How does one learn perl programming efficiently - if they do not come from computer science background?
by ktsirig (Sexton) on Nov 24, 2016 at 23:29 UTC
    If I may also add to my previous questions:
    What do you respond to people that tell you " Ah Perl is so much deprecated nowadays, you MUST program in Python instead!!"
    Would you advise someone to be expert in Perl or average in both Perl and Python for example?
    The way I see it, I would definitely feel satisfied with myself if I could become a very good Perl programmer, instead of putting this effort into learning another, quite similar programming language.

      If someone were to say you must write code in X (for any X), then I would immediately suspect them of not understanding computers.

      That's like saying shoes are deprecated, you must commute to work using only a Tesla. Which specific language you use is less important than having the logic skills and knowledge that underlie everything.

      For the car analogy, your language of choice can range from a pair of shoes to a bike, car, or stunt plane. They're all more and less useful in different situations, but can usually get you from point A to point B without excessive fuss. Logic and at least knowing of the existence of algorithms you can look up are like a sense of direction and the skill to read a map (and even the basic wisdom to keep control of your vehicle instead of watching a movie while the cruise control is set)

      So, the analogy was fun and got away a bit, but IMO, the important point is less what language you know, but the breadth of math you know enough of to look up, and the logical patterns of thought to allow you to map your task into a series of solved problems.

      Does that simplify down to "get a CS background"? Perhaps, but just from being around here for so long, it sounds like you've soaked up a some of it by osmosis.

        I like this but it has the side-effect of suggesting Python is the Tesla and Perl is shoes. Python is pair of correctional orthotics in square toed patent leather. Perl is a sweet, worn out pair of sneakers that fit and feel so nice you can’t wait to take off whatever else you were forced to wear during the day and put them on.

        I really like this reply. Got my heart beating reading about the factual realities that exist. Nice post.

      As someone who dropped out of high school (did go back and graduate though) and never went to college or university, and who now deciphers large corporation and government business processes and converts them into code logic (in Python), I'd say if you like Perl, go with Perl.

      Python is a decent language, but to be honest, it feels more 'childish' in many ways. Sure, you can get a coding job in Python anywhere, with the 5 million other out-of-school kids. You can do the same with any hot language. Perl, however, while it is in decline, is becoming very lucrative (because of corporations wanting to keep their legacy codebase running).

      Again... learn what you feel good with. Perl is a very good start, as if you know Perl, you can transition reasonably well into other languages (I want to say C/C++, Java and, well, Python). I think I find jQuery/Javascript to be easier to grasp as well with my Perl experience.

      Do what feels right. Python is easy to grasp with enough Perl experience (you'll need to understand Object Oriented Programming), but looking back, I don't think it could be the other way around as easily.

      I also find the Perl community to be much kinder to one another. Sure, there are fights and bitching, but it's handled appropriately for the most part, as many Perl hackers have been around for a very long time.

      There's also the CPAN. I don't believe there's another language that exists that has such a cohesive, consolidated grouping of all the published modules in a single, easy to access location.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others admiring the Monastery: (7)
As of 2024-04-25 08:57 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found