Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

comment on

( #3333=superdoc: print w/replies, xml ) Need Help??

Hello perloHolic(),

I am really looking for specifics such as a minimum amount of required knowledge in certain areas...

We may take it for granted that to be a professional Perl programmer you must, first and foremost, possess the attributes required of any professional programmer: an ability to identify, refine, and clarify a software specification; a basic grounding in data structures and algorithms; deductive/debugging skills; a capacity for self-directed learning; and an appreciation for that elusive quality we call “elegance.”

To be a professional Perl programmer, you should, of course, add fluency in Perl to your general skill set. This means being able to implement programming solutions in Perl, but that by itself is not enough. As Ed Post famously said, “The determined Real Programmer can write FORTRAN programs in any language.”1 When I first learned Perl, I wrote “Perl” scripts that were really C scripts in disguise. And that, by the way, is one of Perl’s great strengths: its TIMTOWTDI philosophy encourages learners to program in ways that are already familiar to them. In this way the learner finds he can be productive in Perl while still absorbing the more Perlish idioms. But a professional Perl programmer should be fully-conversant with Perl’s strengths, and should demonstrate this by writing elegantly “Perlish” programs. At a minimum, I would expect a professional Perl programmer to demonstrate these Perl-specific skills:

  1. use of statement modifiers together with the $_ variable to write concise code
  2. facility with map, grep, split, substr, and splice
  3. understanding of context
  4. facility with regular expressions
  5. dereferencing, construction of complex data structures, and understanding of autovivification
  6. use of hashes to perform common list-related tasks2
  7. facility with core pragmas and modules: autodie, Benchmark, bignum, Data::Dumper, Test::More, etc., etc.
  8. familiarity with sources of online reference: perldoc, CPAN, MetaCPAN (and of course bonus points for using the Monastery’s Super Search!)

But...

Job interviews aren’t always what they’re cracked up to be. At a company where I worked, management interviewed, then hired, a programmer who described himself as one of the top half-dozen C++ programmers in the world. He was later observed reading C++ for Dummies, and when he was eventually fired (surprise!), it was found that none of the code he had written even compiled.

At that same company, an Irish backpacker applied for a casual job as a junior programmer. She was given a C programming test — and she got every question wrong. But she was young and attractive, and the interviewer was a red-blooded Aussie bloke, so she got the job anyway. And proved to be an effective programmer and an asset to the company.

Go figure.

Anyway, hope some of that helps,

1 “Real Programmers Don’t Use Pascal” (1982. See wikiquote#Fortran.)
2 See e.g. “How can I remove duplicate elements from a list or array?” and “How can I tell whether a certain element is contained in a list or array?” in perlfaq4.

Athanasius <°(((><contra mundum Iustus alius egestas vitae, eros Piratica,


In reply to Re: What 'should' a professional PERL programmer know? by Athanasius
in thread What 'should' a professional PERL programmer know? by perloHolic()

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.
  • Log In?
    Username:
    Password:

    What's my password?
    Create A New User
    Chatterbox?
    and the web crawler heard nothing...

    How do I use this? | Other CB clients
    Other Users?
    Others wandering the Monastery: (7)
    As of 2021-03-04 15:50 GMT
    Sections?
    Information?
    Find Nodes?
    Leftovers?
      Voting Booth?
      My favorite kind of desktop background is:











      Results (105 votes). Check out past polls.

      Notices?