

How to Identify a Good Perl Programmer - rcfox
http://www.modernperlbooks.com/mt/2011/01/how-to-identify-a-good-perl-programmer.html

======
swombat
1) I'm of the school that measuring trivial knowledge is not a good way to
identify good programmers - merely knowledgeable ones. The two can be
correlated, but it's certainly not surefire. Lots of java programmers have
passed the certifications, which are similar to this list of questions, but
are not "good".

2) Good hiring effort for programmers should, imho, focus on hiring great
programmers in any language. They need to be willing to learn Perl, but
unlike, say, C++, Perl isn't the sort of thing that should take more than a
month or two at the absolute most to be proficient at if you're a good
programmer.

~~~
SwellJoe
On point 2, one of the best Python programmers I've ever known was a great
Java programmer until the day he was hired by a Python shop...and then he
became an amazing Python programmer. Great programmers are not tied to a
particular language, though they do tend to prefer better languages (one of
the reasons the great Java programmer took a job at the Python shop was so he
could work in a better language).

~~~
bigiain
Also, while the article describes a reasonable way to identify programmers
with Perl domain knowledge, I've rarely worked at jobs where that was "enough"
to hire someone. System domain knowledge and problem domain knowledge are both
at least as important as language domain knowledge.

I've never needed to hire "a Perl programmer", I've needed to hire people in
much more specific categories like "someone to work on a webapp written in
Perl for a travel company" - where system domain knowledge (knowing about
things like SQL injection, XSS, character encoding, SOAP and it's lack of and
"S", session management in http, authentication and security), and problem
domain knowledge (some understanding of the travel industry, ecommerce, online
credit card transactions) is at least as important as their Perl knowledge. I
suspect in a lot of cases it'd be easier to buy a copy of Perl Best Practices
for a candidate with strong system and problem domain knowledge but limited
production Perl experience and have then thrive in the above role, compared to
someone with a complete understanding of Perl's syntax and gotchas who's never
worked on a consumer facing web app. By the same argument, all the ecommerce
specific perl web app experience in the world won't on it's own win you a
bioinformatics/data mining job (with me) over a Python or Java guy with in
depth biology knowledge...

On an even higher level, it's easy to poke fun at Google/Microsofts hiring
gameshow style questions, but they're trying (however badly) to
identify/recognize problem solving skills, which are completely language
agnostic. A solid grounding in algorithms and data structures, and the ability
to do back of the envelope calculations based on reasonable
assumptions/estimates (with supporting reasoning and error bounds for those
estimates) is a very different skill to "just programming", and people
possessing those skills, while in a small company will still be "a
programmer", in a larger shop (like Google) would have a role perhaps better
described as "project architect" or "system designer". Being able to answer
with good explanations behind your reasoning "how many gas stations are there
in America?" or "why are manhole covers round" might not be relevant if your
hiring a programmer to modify Wordpress or write a Magento plugin, but people
who _can_ discuss and answer those sort of questions are demonstrating a much
higher level of skill than just knowing whether arrays are passed by value or
reference in programming language de jour...

~~~
chromatic
Medium and large companies need the article's advice much less than smaller
companies, where the difference between someone who knows enough to download
example code and modify it until it does something and someone who has current
and effective language domain knowledge is much, much more significant.

------
angusgr
If I was trying to find a good Perl programmer, I would try to read some of
their code before asking a single question. If I could read it, that's a good
first step.

Because you can know the answers to all of those questions and still write
"write-only code." Easier in Perl than in most languages. ;)

------
staunch
No. You just look at their code. You can scan sample code in 5 minutes and
determine how well someone knows the language.

I won't even consider having an in-person interview with someone until I've
seen their code. It's just too often a waste of their time and mine.

~~~
gcheong
How much code and what type is enough? All of the perl code I've written is
safely behind company firewalls that I no longer have access to. I could
probably whip up something of a trivial nature on short notice, but nothing
that would have seen any production use.

~~~
bellaire
I'm thinking that's a good reason to contribute to some open source projects.
Unless, of course, your employer prohibits you from doing so... in which case
I has a sad for you. :(

------
shuaib
Now lets wait for a stream of posts titled, "How to Identify a Good X
Programmer".

I would be waiting for the Python one.

------
Isamu
"How do you look up keywords in the Perl documentation?"

I hope there's a new clever answer to this that requires fewer keystrokes than
google instant.

Because the Perl docs are a ... heap. To some extent finding what you really
want but can't remember is a real skill - I don't know what novices do. They
probably do without, truth be told.

And I say this with some affection, having spent countless hours of my life
wandering the docs. And the various books.

~~~
nkurz
I'm not certain it's the answer he's looking for, but I'd probably start with
'perldoc -f keyword'. Are there better ways?

~~~
Isamu
I don't want to sound like I'm slamming perldoc, but you see, even its use is
a programming aptitude question. The help is probably not that helpful for
novices.

Note that offering 'perdoc -f' shows that you are interpreting "keyword" in
the original question as "something that resides in the perlfunc list". Fairly
specialized knowledge.

------
bugsy
I can answer about 1/3 of them and have been programming in Perl for 8 years
now. Perl's not one of my primary languages though.

~~~
Natsu
I can answer a lot more than that, but, err... I don't use POD much thanks to
Google and my bookshelf. And my programs live in places where the only people
who ought to be reading the documentation are other programmers, who will be
looking in the script itself.

------
drdaeman
> How do you read the documentation of a core library?

Ahem... I have read a lot of Perl5 documentation and the only response I can
think of is "I don't know, probably with my eyes open" (yes, that's rude). I
just find what I need (by means varying with the situation) and read it.

No, seriously, could someone explain me this question, please?

~~~
patrickas
I think he means something like

    
    
      perldoc Data::Dumper
      perldoc -f use

------
gaius
1) A long, grey beard

------
updog
Easy, the one that dumped perl a decade ago. It is truly archaic and has no
place in a production environment anymore. The only people still using it are
resisting change to a more productive and useful language.

~~~
lysium
Unless you are trolling, just define 'more productive and useful'.

Age is not an important property of a programming language.

------
nroman
If their code is an unreadable mess of slashes and dollar signs they must be a
good perl programmer.

