Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

How much time to become a good Perl programmer ?

by szabgab (Priest)
on Jun 28, 2005 at 11:46 UTC ( [id://470584]=perlmeditation: print w/replies, xml ) Need Help??

Funny, just 3 days ago I posted this question Are Perl and the dynamic languages dead or what ? and suddenly I noticed about 5-7 open Perl position for experienced Perl programmer in our neighborhood.

Some of the jobs are in the mail archive and some were just phone calls that might show up somewhere or be directed to placement companies.

While some of the jobs need Perl as an add-on tool many need Perl as the main expertise with several years of experience.

Being somewhat involved in the local Perl community and having organized a couple of workshops I feel that there are not enough good Perl programmers around to fill these jobs. (and I actually cannot define what a good Perl programmer would be). Most (if not all) of those whom I know and are good are also employed.

Select ppl. with 1-2 years of Perl or retrain others with 7-10 years of Java/C/C++ experience ?

If you really need good (experienced ?) Perl programmers from the local market and you don't find the perfect match you can either hire less experienced programmers whom already have 1-2 year of Perl behind them and give them more time or you can hire people experienced in some other language (e.g. 7-10 years in Java or C/C++ ?) and teach them Perl.

I wonder which approach is better ?
How long would it take for a good (expereinced ?) Java/C/C++ programmer to be good in Perl ?
Sure one cannot get 5 years experience in Perl just within a few month but with the heavy background in other languages it might be better than someone who has only 1-2 years of Perl and no other programming experience.

Replies are listed 'Best First'.
Re: How much time to become a good Perl programmer ?
by kaif (Friar) on Jun 28, 2005 at 13:20 UTC

    I'm still a big fan of Teach Yourself Programming in Ten Years. Personally, I think someone who has really programmed, though perhaps in some other language, for ten years is a better candidate than one who has coded in Perl for two, ceteris paribus.

      What a good link! kaif++

          -Bryan

Re: How much time to become a good Perl programmer ?
by cosimo (Hermit) on Jun 28, 2005 at 12:20 UTC

    Forgive me if I don't answer to your questions, but I believe you simply can't sit down for {your favourite number here} years and hope to become a {your favourite language here}. This rule is even stronger for Perl.

    Then, what makes a good Perl programmer? In my experience, it is the analysis of other people source code (CPAN!), ideas, algorithm principles and implementations, computer science books, ability to learn, ... whatever makes you a better programmer independently? from the language you actually use.

    Perl just happens to be a very entertaining and powerful way to express our programming ideas into source code.

Re: How much time to become a good Perl programmer ?
by dragonchild (Archbishop) on Jun 28, 2005 at 12:47 UTC
    It would take longer for an experienced Java/C/C++ programmer to become an excellent Perl programmer than it would a college intern. A Perl expert has a mindset that a static language developer simply cannot understand. Now, if you had said Lisp or Python or Ruby programer ...

    This is not to say that you should hire the intern over the Java/C/C++ programmer. I've worked with C-in-Perl and Java-in-Perl many times. While I might cringe at the use of parallel arrays instead of hashes and for(;;) instead of foreach(), the code worked, had been working for years, and was reasonably bug-free.

    I think you're asking two questions - expertise and usefulness. Of course, an experienced programmer will always be useful, regardless of retraining needs. They will just take longer to become an expert than if you started with a tabula rasa.


    My criteria for good software:
    1. Does it work?
    2. Can someone else come in, make a change, and be reasonably certain no bugs were introduced?

      Hmmm - before writing a lick of perl, I considered myself a very experienced C/C++ programmer, and a beginner Java programmer. (Of course, you'll have to take my word on those.) Now I consider myself an experienced perl programmer (although you can form your own opinion on that from my track record). I do believe that my background in C, C++, and, especially shell scripting, all contributed very highly to learning perl quickly and becoming useful in it.

      I do believe that I am one of the more effective perl programmers in our entire work group, and that I got that way partly from my C/C++ experience. That is, I learned to program, and then I learned some languages afterwards.

      I suppose the key to me is someone who likes to learn idiomatically. Who likes to write C in C, Java in Java, C++ in C++, shell in shell, Fortran absolutely nowhere, and will then likely want to write Perl in Perl. I suppose the tough part of this is figuring out that the candidate is such a person - asking this question point blank is useless as most people will understand what the desired answer is and give it, even if they don't really understand the question. Figuring out a behavioural question for this is going to be interesting.

        Code samples are good things, as are "How would you solve this?" type questions. Remember - the first answer should always be "Check CPAN". If it's not, pass.

        My criteria for good software:
        1. Does it work?
        2. Can someone else come in, make a change, and be reasonably certain no bugs were introduced?
      It would take longer for an experienced Java/C/C++ programmer to become an excellent Perl programmer than it would a college intern.

      I disagree.

      It's certainly not been true in my experiences of teaching newbie and experienced developers Perl. There's a hell of a lot of programming knowledge that's not related to the static/dynamic divide.

      A Perl expert has a mindset that a static language developer simply cannot understand. Now, if you had said Lisp or Python or Ruby programer ...

      There's a rather big assumption here that experienced static Java/C/C++ programmers are a completely different group from experienced Lisp/Python/Ruby programmers :-)

Re: How much time to become a good Perl programmer ?
by samizdat (Vicar) on Jun 28, 2005 at 13:52 UTC
    IMHO, it depends a lot on what kind of programming you are asking for. Somebody who can grok the complexity of C++ syntax has to have a decent mind to start with. If that person has coded at the _systems_ level, I think I'd be very willing to sit down and interview him/her.

    There's a huge difference between a systems (or embedded) programmer and someone who has only done programming abstractions. Some web programming approaches this level, though only some.

    Java, I'm less friendly to. The very things that are its advantages are in the way of getting things done in a Perl world, especially if your programmer needs to work with other programmers. I'd suspect that a Java programmer would quickly retreat back to his world with his tail between his legs (though he wouldn't see it that way!).

    As to your intern, I'd agree with the advice to assess that person in terms of his/her grasp of programming concepts, especially the ability to think on multiple levels. My first programming job was 8051 assembler for a complex automated factory system, and I'd never coded anything in the real world before, only studied Intel manuals and programmed one of their 8088 SBC's for myself over a course of six months. That job required interleaving multiple stepper motors with different acceleration curves and different mechanical requirements, and I was every bit as good as the guy who hired me within a month of hire, and far better after two. I contrast that with guys I know who have degrees, certificates, and years of coding behind them who can't sit down and write out a system description to save their bacon.

    There is a huge difference between programmers, both in their social and coding abilities. Every programmer is unique, and every work situation equally so.
Re: How much time to become a good Perl programmer ?
by GrandFather (Saint) on Jun 28, 2005 at 21:07 UTC

    I find this a very interesting thread. I come from a C/C++ background and before that electronics and embedded systems (using Z80 and 8051).

    I've been learning Perl for a couple of months. Using the teachings of my fellow monks I find I can now give good answers to a lot of the general "how do I do a regex" type of questions that are posted in SoPW. I feel I have reached a level of competency with Perl in a short period of time that would match less experienced programmers with 1-2 years of Perl and a level that would way surpass a college intern's competency in the same period.

    So to enlarge slightly on dragonchild's advice: CPAN and PM should be the first points of call (depending on the problem).

    The bottom line however, as has been implied by Tanktalus, is that an attitude and motivation to take on the challenge is the key regardless of past experience. And most often the past experience is the indicator of the attitude and motivation that are required.


    Perl is Huffman encoded by design.
Re: How much time to become a good Perl programmer ?
by Codon (Friar) on Jun 29, 2005 at 17:44 UTC

    One thing to take into consideration when looking at candidates is also their perfered language/style. Idiomatic programmers tend to solve problems in the style of their prefered language. I learned to solve basic programming problems with various languages in classroom settings. My first real-world programming experience was in Perl. I started off programming in a language-neutral style. The logic was all the same, only the syntax changed for the language.

    As I gained experience and competency, my coding style began to take on a very Perl-centric style. When I found myself forced to code in Java, I was extremely frustrated by the Java way and longed for my map and grep.

    In the process of hiring Perl engineers, I can tell that a person is a Java programmer if they solve a very simple Perl problem in an over-engineered Java manner. My current position requires me to maintain code that was written by a C++ developer. The system architecture fails to take advantage of some of Perl's OO features in favor of a far more restrictive C++ style implementation.

    The bottom line is this: If you don't mind the thought of potentially maintaining C++ or Java-style Perl, pay no attention to the candidate's prefered language; only look at their knowledge base. If you want someone that is going to write Perl-style Perl, hire a Perl developer. If the candidate does not have all of the experience that you are looking for, but has a proven track record of quickly learning new technologies, you can feel confident that they will fill in the areas that they lack with relative speed as compared to breaking the Java programmer of the habit of seeing everything as an object.

    Ivan Heffner
    Sr. Software Engineer, DAS Lead
    WhitePages.com, Inc.
Re: How much time to become a good Perl programmer ?
by CountZero (Bishop) on Jun 28, 2005 at 19:17 UTC
    Take yourself as the measure of all things.

    If you have some of your old Perl code lying around somewhere, see how long it took you to reach a level in Perl coding you would consider good enough to be hired by yourself. That's as good a measure as any other.

    CountZero

    "If you have four groups working on a compiler, you'll get a 4-pass compiler." - Conway's Law

Re: How much time to become a good Perl programmer ?
by TedPride (Priest) on Jun 28, 2005 at 19:54 UTC
    A few hours of Perl a day for 6 months should leave you with the ability to code properly and find the modules you need for most tasks. You'll do fine as a general-purposes programmer who has to design solutions on the fly for a variety of problems. However, it will probably take you significantly more time to really know Perl, to the extent where you can actually understand and modify the code inside the modules you're using. How much time? This depends entirely on how dedicated and intelligent you are. A general-purposes programmer won't have the time to study Perl to that depth, and some people simply may not have the mental capacity for it.

    Bottom line, it's pointless to try to quantify the amount of time necessary to make a good Perl programmer.

Re: How much time to become a good Perl programmer ?
by adrianh (Chancellor) on Jun 29, 2005 at 16:43 UTC
    If you really need good (experienced ?) Perl programmers from the local market and you don't find the perfect match you can either hire less experienced programmers whom already have 1-2 year of Perl behind them and give them more time or you can hire people experienced in some other language (e.g. 7-10 years in Java or C/C++ ?) and teach them Perl.

    Depends on the people. There are some people I know with zero Perl experience that I'd hire like a shot. There are people I've interviewed with eight years Perl experience who I wouldn't touch with a barge pole.

    Number of years using language X isn't really a good guide on whether somebody is actually any good at their job :-)

    Would I hire a good programmer with 7-10 years experience over somebody with less experience, but 1-2 years of Perl. Yup - without a shadow of a doubt.

    Unless I need somebody I can throw at a problem immediately general knowledge easily trumps specific in my experience.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlmeditation [id://470584]
Approved by Corion
Front-paged by Old_Gray_Bear
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others musing on the Monastery: (5)
As of 2024-03-19 09:53 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found