How to Identify a Good Perl Programmer
modernperlbooks.com
modernperlbooks.com
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.
The next job will be Python too, although I've always got me eye out for that chance Clojure gig. :)
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...
I've been studying how to train novice programmers for a long time and programming even longer. Any decent Perl programmer should know the answers to these questions. (Anyone who can't answer most of these questions with ease doesn't understand the language.)
Certainly these questions are not the only questions you should ask in an interview to find the right person, but if you want to know if the interviewee understands Perl 5, these are effective questions.
Yep, the more I think about it the more impressed I am with that list.
It very neatly encapsulates a whole lot of Perl idiom and knowledge of common Perl errors (and "modern" ways to write Perl to reduce them), as well as more general "modern" programming techniques as used in Perl and the way other language's concepts are used/described in Perl.
Great list Chromatic, consider it added to my hiring resource arsenal.
I'm right there with you, but this list isn't trivia. It's a broad set of basic questions. In fact, these three . . .
- What's the difference between accessing an array
element with $items[$index] and @items[$index]?
- What's the difference between == and eq?
- What do parentheses around the variable name in my
($value) = @_; mean, and what would happen if you
removed them?
. . . are so critical that if you can't answer them instantly, I would expect you to experience long, painful debugging sessions on a daily basis.http://yro.slashdot.org/story/01/03/13/208259/Sophomore-Uses...
Believe the Camel when it says -- third edition, page 69 -- "You will be miserable until you learn the difference between scalar and list context."
Because you can know the answers to all of those questions and still write "write-only code." Easier in Perl than in most languages. ;)
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.
http://www.stonehenge.com/consulting.html
"Human resources hiring support, including interviewing and evaluating candidates"
I would at least have someone like merlyn hire your first person.
P.S. I do think it's a good list of basic Perl knowledge. Id on't think it's smart for someone who doesn't know the language to hire people though.
Unless their name is on a (good) Perl book I'd skip over anyone who won't submit even a small code sample.
I would be waiting for the Python one.
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.
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.
Still a good list, though.
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?
perldoc Data::Dumper
perldoc -f useAge is not an important property of a programming language.