{ on programming and the internets }


by Louis Brandy

Silence is not golden.

So RethinkDB wants to know where all the real programmers are. I do too. While I can commiserate with their post, there is one huge issue I have with it. That is the issue of silence.

Let me start by saying that the primary purpose of RethinkDB’s post wasn’t to discuss their interview philosophy (it was to generate good leads — if you are looking for work, by all means, go apply). That means this post is probably slightly unfair to them in that I’m about to construct a gigantic strawman out of their post. However, I believe this template is so common that it still applies, in general.

As I’ve said here from time to time, I do quite a bit of the HR stuff for our small (startup — when are we no longer a startup?) company. I’ve been doing technical interviews fairly frequently for a few years now. One of the biggest lessons I’ve learned as an interviewer is that silence is often times my fault, not theirs. If an interview is mostly silence, the interviewee was either woefully unqualified (ie, it should have never gotten this far), or the interviewer lost them.

Silence is not a sign of just ignorance, it is almost always a sign of ignorance mixed with confusion or panic. If you ask someone a direct question “do you know what X is?”, they may think for a minute, but they will usually say “no”. Silence, however, usually means “I do not 100% know what they want me to say, and I need to think of the answer that is least wrong”.

Let’s use one of their examples.

How would you implement a read-write lock?

It doesn’t surprise me such a question would result in silence. It’s actually two questions. Do you know what the term “read-write lock” means and how would you actually implement one? For someone who was recently a student, or someone who hasn’t done much concurrency recently, this sounds an awfully lot like an exam question.

On the inside it’s a bunch of panic…

What -is- a read-write lock? Is that what you are asking me? Am I supposed to know what a read-write lock is? What class was that in? The one with the philosopher’s dinner table? Yea, probably. It’s some kind of concurrency thing, probably. It’s probably related to reading and writing? Uhm, that’s not a very good hint… Are they really asking me for the definition? Am I going to get marked down for not knowing the definition?

On the outside, it’s silence.

Say no to silence, interviewer and interviewee alike

You don’t actually have to code it over the phone. Mentioning starvation issues is bonus points. For heaven’s sakes, just give us something.

We try to ask about the difference between cooperative and preemptive multitasking. We try to ask about condition variables. 19 out of 20 times there is silence on the other end.

There’s a good lesson for everyone here. Silence is pure poison in an interview. There should be all of five seconds of silence before you give up and answer their question with a question. If you are being interviewed, say something. “Let me make sure I understand what a read-write lock is, first. Is that when you can have many readers and no writers, or just one writer?” Even if you are wrong, you can at least get them to specify what they mean, and then you can try to answer the question that’s been asked.

Even saying “I don’t know what a read-write lock is.” is almost certainly better than pure silence. Yes, it’s a negative statement, but if I tell you, and then you proceed to discuss it flawlessly, I’ll chalk it up to your textbook using a different term (or you just forgetting the vocabulary). No harm, no foul.

And then there is the flipside of this conversation: the cold, hard, reality that every interviewer faces from time to time. If an inordinate amount of interviewees are troublingly silent, it might be because your standard are really high. There is, however, another explanation.

If you are the interviewer, you have to realize that silence breeds silence. It’s usually easy to break down questions into parts that make it much less likely to be ambiguous and promote that silent, confused, panicked state. First, ask them if they know what a read-write lock is. Then ask them what it is. And once you’ve both agreed on the definition, ask them how they’d implement one. This simple modification results in far more “yes” and “no”, and far less confused silence.

trackback

10 Responses to “Silence is not golden.”

  1. June 30th, 2010 at 8:17 am

    Don B says:

    I agree. I know of several companies in my area that have interview systems in place that they’re so proud of – they “weed out” all the “unintelligent, unqualified” candidates. What they’re really looking for is people who are exactly like them and who think on that same level. Doing so gets you the people who buy into your philosophy, but doesn’t help you get a range of different thoughts and creative energy you might need as a software company.

    One company near me will only hire people who are willing to do pair programming 50 hours a week in a large open room at big tables, then eat lunch all together in a large open room, then play volleyball after work with everyone. “We are open! We’re social! We work together, not like those other companies!” They are breeding homogeneous stew of programmers who believe in their philosophy and certain tenets of Agile (or whatever) but how can they innovate when everyone is of the same mind?

    Sometimes I wonder if the interviewers in these cases are spending too much time patting themselves on the back for being so amazing and uncompromising, and so skilled at weeding out the incapable, and not enough time helping their company find qualified individuals who are able to write and ship software.

  2. June 30th, 2010 at 8:55 am

    Kathy says:

    Conversely (I’ve been accused of this), if one asks too many questions in the interview, questions of the type;do you mean this or that? the interviewer accuses the interviewee of being argumentative. Granted this type of problem falls back on the on the interviewer but it’s problem never-the-less. And at this point it’s obvious the interviewee doesn’t want to work for company anyway because they ask too many open ended questions and expect their minds to be read for the proper answer.

  3. June 30th, 2010 at 1:06 pm

    Nick says:

    I personally have no issues with asking questions of the interviewer if I don’t quite understand the question.

    If I don’t have a clue what they’re talking about then I’m straight up about it: “Sorry, I have no clue as to what xxx is but I can certainly learn it and apply my knowledge”.

    Nobody is expected to know everything there is to know in the entire technology sphere. I’m immediately suspicious if someone I’m interviewing has all the answers anyway.

    If there is prolonged silence after a question then it tells me a lot about the candidate. They are not communicating to me their confusion or lack of knowledge. This non-communication will most likely manifest during development and in the worst cases result in them sitting there looking busy for weeks before their lack of understanding becomes apparent.

    I good developer is secure in their lack of knowledge.

  4. July 1st, 2010 at 2:17 am

    Sam says:

    You are obviously more of an HR person than a programmer. Any serious programmer expects to be asked questions that either directly relate to what they will be doing on the job or reflect the general level of competence they will have to have. So an interviewee who gets the question “How would you implement a read-write lock?” and doesn’t even know what a read-write lock is, knows he probably shouldn’t be interviewing for that job, even if he manages to fudge an answer. Also any programmer worth his salt should have no problems reversing a linked-list however long out of school they’ve been, except they haven’t been coding for a long while or spend all the time doing pedestrian stuff and no longer remember how in which case they probably shouldn’t be applying for a job that will require lots of low-level hacking.

  5. July 1st, 2010 at 2:29 am

    Sam says:

    Ok. Scratch my initial comment in the previous post. I just poked around your blog a little and maybe I spoke too soon. Great post on optimizing C by the way.

  6. July 1st, 2010 at 8:23 pm

    Nathan says:

    I had an amusing experience in an interview a couple years ago. I asked a grad student in CS a fairly simple question: “how would you write a function to count the number of one-bits in the binary representation of a 32-bit integer”.

    He just stared at the whiteboard for about ten seconds, which is my personal silence threshold, and I asked “do you have any ideas, maybe a basic design we could talk about?”, and he replied “Well, I was trying to derive a property of the number itself which could be used to infer the answer”.

    It definitely taught me that silence does not imply ignorance!

    (He went on to code it up the naive way, which is really all I wanted to see).

  7. July 6th, 2010 at 7:35 am

    Lo'oris says:

    Yes, it’s a negative statement, but if I tell you, and then you proceed to discuss it flawlessly, I’ll chalk it up to your textbook using a different term (or you just forgetting the vocabulary).

    this is so true.

    I was asked once if a database I designed was normalized; I had not a clue about what that meant. Then, I came to know that my database was indeed normalized: I just did it without even knowing that someone actually defined those rules… they simply were the logic thing to do.

    Almost the same story about the MVC pattern. Designing a website, I just did it because it was the most logic thing to do.

    I still am quite shocked knowing that most people will just fuck it up if you don’t give directions, even when those directions are totally logical, so that could figure them out if they cared to think a bit.

  8. February 9th, 2012 at 4:39 am

    key says:

    Air was chosen this time to be perfect. Go conditioning on the bus and headed to the mountain resort.
    климатици

  9. April 18th, 2012 at 4:04 am

    key says:

    To sum up the points that are awarded every slzhitel of his κλιματιστικά employment when comparing achievements in pairs.

  10. May 17th, 2012 at 2:59 am

    key says:

    The profiles are fitted with EPDM gaskets to автоклиматици ensure their high resistance to stress. pvc дограма

Leave a Reply


new server, if you see badness, please email me!

Need a new job?