Software Developer Hiring Techniques
This week, an article by 37signals made its way around the Hacker Newswire that explained why they don't hire programmers based on riddles, puzzles, or other "parlor [sic] tricks" (sic because parlour has a 'u' in it - the Queen says so). It's worth a read and, as someone who went through the job hunting experience last year (twice), it's quite enjoyable.
Each company I interviewed with eventually offered me a job (who can blame them?) and they each had their own unique way of determining my skill as a programmer. I'm going to classify some of the employers I interviewed with into one of the following.
- The Riddler
- The Riddler is a programmer who, now that they're in charge of a company, feels the need test programmers with riddles they find interesting. It's almost like a payback from when they were being interviewed for jobs and were passed over for other candidates who excelled not a riddles, but unimportant things like people skills.I was asked by a Riddler a series of programming questions. Some of these questions were practical in the context of the job and, to the Riddler's credit, they offered a poke in the right direction if I ever needed it. However, they also asked me to write FizzBuzz (and didn't particularly appreciate it when I laughed at them).
The best way to deal with the Riddler is to play their game until the interview is over. When they ask you if you have any questions, ask them if you'd be directly reporting to them in the organization. Reflect on their answer and decide if you want to spend your days tackling brain-teasers or actually getting things done.
- The Academic
- The Academic is typically a former programmer who is now in a hiring position and legitimately means well. They ask questions that any first-year university student should know the answer to. Unfortunately, university students typically forget these answers after first year because its trivial knowledge - a matter of definitions.You might be asked for the dictionary definition of Polymorphism when a description of how to use polymorphism be a better indicator of an understanding of the concept. I use polymorphism all the time but during the interview, I honestly couldn't answer the question (except for the words "'many forms' in Greek").
- The Quizzer
- My interview with the Quizzer was an enjoyable experience. I had a 15 minute phone interview before being invited for a two-part in-person interview at their office. I was told I would have to complete a one-hour quiz before taking part in a one-hour, in-person interview with lead members of the development team. No problem.The Quizzer told me that I had an hour to complete the quiz, but that candidates rarely finished on time, so don't worry and just answer the questions which I'm most familiar with to the best of my ability. Maybe it's because I just came out of University, or maybe I'm just that amazing, but I answered the entire quiz in 45 minutes.
The quiz was, in fact, a good indicator of my experience and expertise in Objective-C and CocoaTouch. It had different types of questions (including long-answer) that not only tested my trivial knowledge, but also tested my familiarity with more subjective topics like code architecture.
- The Online Quizer
- All of the interviewers I've listed so far have one thing in common: their techniques are motivated by a sincere desire to do what's best for the company, to determine if the interviewee is a good fit. The Online Quizzer's motivation was laziness.The Online Quizzer is like the Quizzer insofar as they want to test my understanding of programming. Unlike the Quizzer, however, they're only interested in classifying me to make a decision about my salary. They needed a bubble to fill in on their little interview sheet, Beginner, Intermediate, or Expert, and the best way they knew how to get that information was an online quiz.
The quiz itself, provided by an online third party, was incredibly stupid. The questions ranged from inconsequential ("What happens if you delete a file in Finder but don't update the Xcode project file? a) the filename in the project browser appears red b) the filename in the project browser appears red and its icon is faded c) etc…") to arcane ("What is the return value of
ArcaneCryptoCFunctionon success? a) 1 b) 0 c) true d) void "). My answers were ranked and normalized according to the answers of all the other Objective-C developers around the world who took the quiz. I got "Expert", but admittedly I looked at some header files while completing the quiz. You know, like a real programmer might.
I do not beleve that an online, multiple choice quiz with outdated and arcane questions can ever be a capable tool in determining a potential employee's value to a company or their proficiency in their trade. Any hiring manager who thinks otherwise is a fool.