3 tactics for programming tests
I have a short list of suggestions for people applying to programming jobs and who have to do a programming test. I am driven to make these suggestions after watching a lot of programmers applying at Mugo: I am a programmer myself, but I am in the position of judging candidate's efforts on the basis of a business owner or project lead.
Let me say about programming tests in general:
- As a programmer, you should expect to do these; I would say, if you are not asked to do a test, you should beware.
- When you review the test, it should be obvious that it is a proper test; that it is very intentional, that it has a tight focus, and that it is reasonably and appropriately challenging.
I once sat down for a PHP test where it appeared that I was expected to code up a database interface as a step toward accomplishing some other deliverable. Either I completely misunderstood the task, or the interviewer had set me an impossible and reckless challenge. In any case, when the person supervising the test wasn't able to clarify, I took the opportunity to bow out.
But back to my suggestions on doing programming tests.
- Be prepared; be prepared to tackle something challenging. Don't be hung over. This is the same advice I got when doing dishwashing jobs. It's going to be hard work, and you're going to be judged on it. You'll feel bad if you mess it up for no good reason. Same as I did when I got fired from my dishwashing job.
- First thing to do, is do a risk assessment. Treat this exactly as if it were a real project. I mean, that's what we're going to hire you to do, right? So, figure out if there is something that you're not going to be able to deliver and plan to work around it. Figure out the stuff that you are going to be able to deliver with certainty. Do a conscious triage and expect to be able to explain it post mortem.
- Pay attention to the parameters of the test. The one that really astonishes me is the range of resources that we allow people to use while the are doing the test; even though we have 1 or 2 Mugoers standing by to help, candidates never ask for help. I know that I'm going to regret emphasizing this so strongly; but if I offer to help when you're stuck, and then you get stuck but don't ask for help — that says: you're not paying attention; or you don't understand your capabilities; or you don't understand a fairly simple task — in other words, all significant failures.
Lastly, and especially for those people applying at Mugo: Even though we calibrate our tests so that a hirable candidate might only partially complete the test, it turns out that everyone we hire has shocked us by fully completing all the tests. Combined with the fact that they're all really nice people - daily, it helps me avoid thinking about dishwashing.