Thursday, July 21, 2011

The bizarreness of coding questions–it is time to cut the garbage?

There have been a trend in the industry to evolve to pro-forma interviews running off stock questions that are actually rote based and often irrelevant to the position. 


For an example that may make sense to you:

Asking for any job that require writing emails, the following questions dealing with literacy:

  • What is a Oxford Comma?
  • What is a split infinitive and give me an example of a valid exception to the rule.
  • What is the difference between obtuse and abstruse?
  • What is the collective noun for a group of crows? (murder); quail? (covey); magpies? (tidings), etc

If someone fails these questions, people could assert they are low literacy, and thus not qualified. In reality a person that aces these questions may write incomprehensible emails, while someone that funks these questions may write elegant clear emails.


In terms of coding questions, for a C# position you may get asked about single linked lists and how to do an AddBefore or other silliness. System.Collections.Generic.LinkedList is the standard linked list implementation and it is in that class, so no rational developer would ever code it -- it's a test for irrelevant information (rote learning from computer science courses) that would rarely (if ever) occur doing the job.




Testing for irrelevant information or skills not required to actually perform the job, borders on discrimination in some cases. If the question is one that a recent graduate from a university can easy answer, but a graduate from a different generation may not (for example, object orientated programming did not exist when I went through University), the issue of age discrimination may arise.


The root problem is that many interviewers do not know how to do test/interview construction. When I did my education courses (with a bunch of fellow math nerds), we were ruthless in identifying what each question on a test actually tested. Many questions were actually rote, consider this:

  • Sum 5+7+9+…. + 2343

This is a rote question for 98% of the students that requires memorizing this formula.

 S_n=\frac{n}{2}( a_1 + a_n).


The best interview questions that I have seen are when the interviewer asks problems that they are trying to solve themselves. There is no answer to compare to. It does exhibit the person ability to dissect a problem and do analysis.


Asking puzzle, math and computer science problems often detects nothing more than whether they have been exposed to this problem (for example, on or ) before and remember the solution or solution pattern (like the sum of an arithmetic series above).


To quote one of my old profs (Head of the  Bank of Israel IT Department), “You can teach a physicist or a mathematician to code, you rarely can teach a coder to think!”.


As a consultant, I have never been asked to answer such questions in dozens of gigs (including to Microsoft). On the rare occasions that I have considered a FTE position and been interviewed, I have been hit with such questions about 30% of the time. It’s interesting that my reaction to such questions is often to be put off the position because it telegraphs that bureaucrazy and politics may be problematic in the firm.


So why are you interviewing rote skills and not thinking skills?

No comments:

Post a Comment