Interviewing for Programming Jobs
Thursday, January 25th, 2007There’s a question I’ve often wondered - why do technical teams feel a need to use academic questions that only serve to test logic challenges when these have nothing whatsoever to do with the actual job?
Yes, I’m aware these can condense logic/problem-solving skills down to some degree, but ultimately they do not have a direct application to the abilities relevant to the job, which is writing code (which requires language skills, toolset knowledge, and dedication, not just problem-solving.)
I’ve interviewed with several companies throughout the years and each time a revolving series of questions about b-trees or linked lists comes up. When is the last time a practical (Mac OS X) programmer spent time coding up a linked list (I’ve yet to see one in any project I’ve worked on) and in discussing implementations and designs I’ve yet to have someone ask for the big O notation for its run time.
Yet over and over these questions come up. Do they actually serve to prove ability? I’ve had the (mis)fortune of being entirely self-taught yet I’ve been able to work on several notable projects, and build a company, without using these computer science abstracts. Does that make me an inefficient programmer? I think not. But in the eyes of interviewers, apparently so.
So here’s my take - you want a computer science degree, say so and stop taking in candidates that don’t meet that exact criteria. You want someone experienced in writing Objective-C, say so and you’ll likely get a qualified candidate with enough screening. But don’t waste time conflating the two, they are not mutually inclusive.