This is the story of the best question I have ever been asked in a job interview. The best mostly because I had a lot of fun with it, and I think it can show a lot about a person.
The question was just three words.
“Teach me something”
There are a lot of resources out there on the subject of interviewing programmers, from Joel Spolsky’s Guerilla Guide (on version 3 since 2006) to a wealth of books, archives of sample questions and a series of opinions on why whiteboard coding is terrible (or not so terrible). A good friend and former colleague of mine is also running an interview coaching business — so I really need to get my facts right here.
When the subject of interviewing for a programming job comes up, my experience is that there is a heavy lean towards discussing coding questions. Testing knowledge of algorithms, problem solving and which way round you write your equality conditionals. In most technical interviews I’ve experienced, three out of 4 sessions are either coding or design related. This is not necessarily a bad thing, but can get a bit samey. I was once asked to implement Fibbonaci twice in one week by two separate companies.
The question, “teach me something” has stuck out for me, and even three years later, it’s an experience that keeps coming to the front of my mind when I have to interview someone.
I was given 5 minutes to prepare, and then had 5 minutes to teach the interviewer about a subject I knew well. As it happened I didn’t choose a technical subject at all. I taught her my technique for memorizing a speech.
I had never heard about this question before, and haven’t had the opportunity to ask the interviewer more about it (I didn’t take this particular job), but some quick research finds people who attribute it to Sergey Brin, and it has apparently been used at a number of companies, including FreshBooks and Amazon.
As programmers, we have to teach all the time, whether we realize it or not. We have to onboard new programmers and introduce them to our workflows and tools. Got an idea for how to use a particular algorithm to solve a problem? You’ll need to teach the team about the benefits to get them to buy-in. The more you progress in your career and gain specialist knowledge, the more teaching you will need to do.
This is why this question is great, it forces the candidate to demonstrate a skill that will be used all the time, regardless of what technical work they’re doing. It is also a great way to get to know what interests a person, and perhaps see them demonstrate some of the passion that people always say is so important.
Many people have said you only ask three questions in interview: can you do the job, do you want the job, and are you a jerk? This question gives a candidate an opportunity to demonstrate all three in just 5 minutes.
So if you’re looking to hire technical people, leaders, or someone who’s just plain enthusiastic, I’d heartily recommend throwing this question into the mix, you just might learn something.