raganwald
(This is a snapshot of my old weblog. New posts and selected republished essays can be found at raganwald.com.)

Tuesday, November 28, 2006
  Don't overthink the interview process


You’re sitting in an interview. The interviewer hands you a marker and points you to the whiteboard. “Please write a sort routine” she asks.

Now let’s assume you haven’t looked at sort algorithms since your undergraduate days. You sort in the database. Or you use a library sort. You are a firm believer that writing your own sort routine is a case of premature optimization.

I agree, you ought to point that out. But still… do your best to write a sort routine.

Why get into the philosophy of whether you should be writing sort routines on the job? Yes, almost everybody knows that you need to be thinking about other stuff most of the time. But the interviewer wants to know if you’re smart, and for better or for worse she’s selected a sort routine to see how you think.

Here’s my suggestion: do your best as cheerfully as possible. Talk through your code aloud. Ask a reasonable number of questions, enough to show you think through cases and requirements in more depth than the other 199 people who submitted a resume.
On one interview, I was asked to do a substring search. I did the usual routine, but I explained that there was a faster method. I couldn’t remember that it was Boyer-Moore, but I explained that it used lookup tables to advance more than one character at a time. I asked whether I should work out the exact routine as best I could. The interviewer was happy that I knew there was a faster way, and especially that I could discuss the tradeoffs of building a table against the size of the search space. I wasn’t asked to write Boyer-Moore, but I was offered the position.

This is all to say that even if you don’t have QuickSort memorized (I don’t, and it’s two freaking lines in any language worth learning), there’s lots you can do to answer the basic questions “Is this person smart?” and “Are they experienced?”

Your goal is to show this off. Even if you don’t think the question is the best way to interview candidates, nothing is stopping you from using the question to demonstrate that you are smart and experienced:Good luck!
(This was inspired by this discussion on Joel’s discussion board).
 

Comments on “Don't overthink the interview process:




<< Home
Reg Braithwaite


Recent Writing
Homoiconic Technical Writing / raganwald.posterous.com

Books
What I‘ve Learned From Failure / Kestrels, Quirky Birds, and Hopeless Egocentricity

Share
rewrite_rails / andand / unfold.rb / string_to_proc.rb / dsl_and_let.rb / comprehension.rb / lazy_lists.rb

Beauty
IS-STRICTLY-EQUIVALENT-TO-A / Spaghetti-Western Coding / Golf is a good program spoiled / Programming conventions as signals / Not all functions should be object methods

The Not So Big Software Design / Writing programs for people to read / Why Why Functional Programming Matters Matters / But Y would I want to do a thing like this?

Work
The single most important thing you must do to improve your programming career / The Naïve Approach to Hiring People / No Disrespect / Take control of your interview / Three tips for getting a job through a recruiter / My favourite interview question

Management
Exception Handling in Software Development / What if powerful languages and idioms only work for small teams? / Bricks / Which theory fits the evidence? / Still failing, still learning / What I’ve learned from failure

Notation
The unary ampersand in Ruby / (1..100).inject(&:+) / The challenge of teaching yourself a programming language / The significance of the meta-circular interpreter / Block-Structured Javascript / Haskell, Ruby and Infinity / Closures and Higher-Order Functions

Opinion
Why Apple is more expensive than Amazon / Why we are the biggest obstacles to our own growth / Is software the documentation of business process mistakes? / We have lost control of the apparatus / What I’ve Learned From Sales I, II, III

Whimsey
The Narcissism of Small Code Differences / Billy Martin’s Technique for Managing his Manager / Three stories about The Tao / Programming Language Stories / Why You Need a Degree to Work For BigCo

History
06/04 / 07/04 / 08/04 / 09/04 / 10/04 / 11/04 / 12/04 / 01/05 / 02/05 / 03/05 / 04/05 / 06/05 / 07/05 / 08/05 / 09/05 / 10/05 / 11/05 / 01/06 / 02/06 / 03/06 / 04/06 / 05/06 / 06/06 / 07/06 / 08/06 / 09/06 / 10/06 / 11/06 / 12/06 / 01/07 / 02/07 / 03/07 / 04/07 / 05/07 / 06/07 / 07/07 / 08/07 / 09/07 / 10/07 / 11/07 / 12/07 / 01/08 / 02/08 / 03/08 / 04/08 / 05/08 / 06/08 / 07/08 /