top | item 10172080

(no title)

oxalo | 10 years ago

Your comment made me stop and think about all the times I've seen someone complain about 'coding' on a whiteboard during interviews. Did those people learn 'computer science' entirely in front of a computer, and so sort of 'trial and errored' they're way to the correct answer? Not trying to claim one way is better than the other, but rather trying to understand why the argument over coding in interviews is so polarized.

discuss

order

zephyrfalcon|10 years ago

I think the main problem with "coding on a whiteboard" during interviews is not that you have to reason about an algorithm without the help of a computer, but rather that you have very limited time to do so. You stand there, looking at an empty board, trying to come up with something sensible (or at least, a decent start) in a few seconds. In the meantime people are looking at you, waiting for your answer, which adds just a tiny bit of psychological pressure. :) This is a very different situation from sitting down at your desk and thinking an algorithm over, at your leisure.

taco_emoji|10 years ago

I can only speak for myself, but I just want a keyboard and a screen. I don't need a compiler--it's just got to do with the transcription method, not because I need the write/execute/debug loop.

I'd be fine doing a coding interview with just Notepad.exe or vi or whatever. It takes me ~2 seconds to type a line of code, but more like 10 or 15 seconds to handwrite it [0], and my brain's just not used to that kind of latency. It trips me up.

Plus, on a whiteboard, the mechanics of "oops I need to insert a line... I guess I'll just write it down here and draw a big arrow... ok now I need to rename this variable, but now the name is really long and I can't fit it... wait, what was I doing?".

It just mucks up my process. I don't precisely conceive an entire subroutine before I put fingers to keyboard--my code evolves as I'm writing it. I edit, revise, rethink, and refactor constantly, long before anything's even compiled. Keys and screen facilitate that process a thousand times better than pencil and paper. Handwriting just isn't the best medium for code [1].

[0] And thank god I have a CS education, because if nothing else I at least learned how to write legible braces, brackets, ampersands, and at-signs by hand...

[1] OP is obviously a wonderful idea but that's because it's teaching aspects of CS that aren't code.

geebee|10 years ago

Yeah, I opened a can of worms with my comment, didn't I? For the record, I'm one of the people who has complained here on HN about whiteboard interviews. Just because they taught me that I rely a bit too much on the compile/run cycle doesn't mean that I think coding exercises at the whiteboard are the right way to do interviews!

I think your use of the term "latency" is a very good way to describe some of the problems around whiteboard coding.

ksenzee|10 years ago

I do not "trial and error" my way to correct answers, but I complain bitterly about whiteboard interviews. It's the wrong medium. I wouldn't mind at all being asked to use a pack of cards as a prop to talk through a sort algorithm, but asking me to write one out on a whiteboard is just hamstringing me.

rietta|10 years ago

That is a valid objection. It's best to use the right tool to communicate about the problem and solution.

tjr|10 years ago

For me, part of it is literally the whiteboard. I do almost nothing in real life on a whiteboard. I don't like writing on them. I'd much prefer a pencil and paper on a desk.

I'd even somewhat prefer a chalkboard.

rietta|10 years ago

I would say, yes. Some programmers have trouble reasoning abstractly or think it somehow beneath themselves because it does not produce something real at the end.

There are also "programmers" who's entire method of work seems to be to copy+paste blocks of code from Stackoverflow, only changing the minimum amount to make something load and then move onto the next item in their hit list.

I always liked white boarding problems.

rev_bird|10 years ago

I've spent a good chunk of my waking life studying programming the past several years, in an effort to get good at this stuff and really understand what I'm doing. I am incredibly jealous that people get to be professional "programmers" without really caring.