[JOB] Perl Software Developer and Database programmer

O'Shaughnessy, Jamie jamieosh at amazon.co.uk
Wed Feb 22 13:52:53 GMT 2006

This is exactly it, there are two reasons I would ask technical questions at interview:
- to find out the depth of knowledge and experience of a specific technology
- to find out how the person would go about filling holes in their knowledge

So if someone doesn't know the difference between my/local - but gave me an answer like below, I'd be more impressed than if they explained the difference badly.

Demonstrating good problem resolution skills is more important than specific technical skills. I'd say the same for good interpersonal skills. If candidate can demonstrate they are a competent and quick learner, that is a massive plus.

On occasion, for some jobs, you do want specific technical knowledge. Right now, someone with a good clear understanding of Perl would be a lot more useful to me than someone who hasn't. 

My original point was more about the apparent lack of good developers, who are not just technical, but are more rounded - maybe fat developers don't want to work in Slough though ;)


-----Original Message-----
From: london.pm-bounces at london.pm.org [mailto:london.pm-bounces at london.pm.org] On Behalf Of Simon Wistow
Sent: 22 February 2006 12:34
To: London.pm Perl M[ou]ngers
Subject: Re: [JOB] Perl Software Developer and Database programmer

On Wed, Feb 22, 2006 at 11:52:44AM +0000, Peter Corlett said:
> Knowing the difference between local and my is kind of important. I'd 
> say that somebody who didn't know this basic stuff was not competent.

That's a hugely sweeping statement - as was pointed out some people may just never have come across local() but may know way more about, say, Formats than you. Or XS. Or regexen. 

I think part of the problem is that there's only only so much you can actually learn. What's more improtant to me is not mastery of compiler internals but the ability to pick new concepts up quickly and also the ability to know where to look stuff up.

Even if I didn't now what the difference is was I *do* know how to do

% perldoc -q local

which gives

  Found in /usr/local/perl580/lib/5.8.0/pod/perlfaq7.pod
       What's the difference between dynamic and lexical (static) 
       scoping? Between local() and my()?

but by using my knowledge of perldoc -q I also know the answer to how to parse HTML

  Found in /usr/local/perl580/lib/5.8.0/pod/perlfaq9.pod
        How do I remove HTML from a string?

Let's face it - most langauges within the same paradigm are almost exactly the same. Sure there's some syntatic sugar but the ability to program in the abstract and how to look up this particular brand of syntatic is far more important in general. And then on top of that you have what environment you're programming in - doing Web stuff in C is very different to doing, say, Embedded Mobile devices in C or graphics hacking stuff in C.

Having said that I've given a programming test that included the difference between my() and local(), HTML parsing but also Templated linked list creation in C++, reversing the order of some words in a string in C and the difference between GET and POST.

The test was emailed to the candidates and the could return it at their lesiure. What I was looking for wasn't necessarily instant recall but more the ability to reason and lookup. One candidate failed because he came up witha  hideously complicated regex to strip the text from HTML. 
Far more complicated than I could write. Everytime in the interview when I pressed him for problems he would think of one and adapt the regex to deal with it. All very clever. He didn't get the job.

Conversely, I once got asked what

	a = a++

or something similar would do  in C - my C-fu wasn't stellar at the time but it was sufficient that recognised there could be a problem (IIRC it's an undefined behaviour - I'm a bit fuzzy at the moment, mild


More information about the london.pm mailing list