A couple of weeks ago I posted to jobs.perl.org again. A few things I quickly remembered.
My posting says "PDF or Text formats only!", but yet I get Word documents. I know it's been getting easier and easier again to find interesting work over the last year or two, but come on. If you don't care to read what I wrote, I am not going to care what you wrote either.
I ask for code samples and anyone reasonably interested sends them. But it's incredibly hard to get something useful out of. I am not really sure what to do about it, because it's by far the best way to evaluate someone without an actual interview. For relatively short-term telecommuting it's often the only practical way.
The code samples are rarely interesting. Either they are too brain-dead simple or they are too complex to scan in a couple of minutes. Either way, it takes a relatively large amount of effort to review.
I have a hard time discarding the candidates who sent bad code. "But their resume looked interesting".
And I keep thinking what would I send if I had to send a code sample? It's hard1.
So again and again I find myself looking for tests included in the code sample. I start looking because it'd be a sign of good coding practices, but what it really gives me is a much faster way to evaluate the code.
I love tests in the code samples. They give all sorts of benefits to the resume/candidate reviewer. For instance
- Tests lets me figure out quickly what the rest of the code is supposed to do.
- Tests demonstrate the APIs. perltidy can fix your messy indentation, but you have to know what you are doing to make the interfaces to your code decent.
- Tests are short and to the point. Even in Perl code there's always a fair amount of setup and teardown noise. In tests all that is pared down to the essentials.
- Code = Not particularly useful. Code + Tests = Useful.
How do you like to get code samples? How do you evaluate them?
1 The 20 line Geo::Coder::Yahoo? An early version of qpsmtpd? (The versions from the last few years wouldn't really work as a code sample unless you wanted to hire a particular dozen of people to write a mail server in Perl :-) ) Maybe I'd send the code for some of the perl.org things I've made, but would I want to be judged on that? Those things are surely not my finest work. The more interesting work is often encumbered by being owned by $client or $employer and by having lots of "yes, they really wanted it do that" things.
Hi,
If I wanted to find out how well programmers can write code I would ask them to code a little task I give them and then I would compare the code they wrote.
This way you know what the end result should be and therefore you can compare the individual styles based on common criteria. This way you are performing a homogeneous comparison and you can draw your conclusions in a much more scientific way.
My humble opinion.
Fotis
Fotis,
Yes, that does help give you an idea of the candidates level.
However, it doesn't help you figure out if the candidate can structure a larger system...
- ask
My comment is about this part of your posting:
"My posting says "PDF or Text formats only!", but yet I get Word documents. I know it's been getting easier and easier again to find interesting work over the last year or two, but come on. If you don't care to read what I wrote, I am not going to care what you wrote either."
Why do you not want a Word document! It doesn't make any sense. It's a retarded request. If your point is to bully people even before you hire them, then most good candidates probably don't wanna work for you anyways. The same goes for if you don't have a single computer with Word installed on it. I guess what I am really trying to say is that I find the way that computer programmers are treated to be repulsive. There is no other professional job category where people are put in so much preasure and asked to bend over backwards for their employers. It also doesn't help that software engineers often have to deal with egotistical people in management who have the mental capacity of pigeons.