|
|
|
|
|
by scriby
4547 days ago
|
|
I don't see anything fundamentally wrong with this programming question, except that it might be a little involved for a short interview. The purpose of this question isn't to tell you whether the candidate can program chess boards or not. It could be used to help find candidates who: * Have experience with search algorithms * Specifically have experience with backtracking solutions * Can reason through a complex problem (and communicate while doing so) * Paid attention in school / knowledge retention (for recent grads) |
|
This was a real problem for me as a programmer early in my career and a source of great anxiety on interviews. I've gotten better at it later in life almost solely because I needed to do so for interviewing purposes, but to be honest, I don't think it is a real world problem if someone isn't great at simultaneously reasoning through a complex problem and communicating while doing so. I suspect there is a large group of people like me who are very experienced and knowledgeable programmers who may come off poorly in whiteboard-coding interviews because actively focusing on complex problems makes it difficult for them to interact in the real world.
I do think being able to communicate is key for developers, but even when I had issues with this I could very clearly communicate how I went about solving the complex problem after I had finished it (or at least was convinced I was on the right track with one or two solutions and my mind wasn't running through the problem on dozens of different threads anymore) and it never impacted any real world collaboration because it is extremely rare that you ever sit around with a bunch of other programmers trying to reason through exactly the same algorithm at the same time, and even when that does happen, IME it is better to just get a few independent solutions and then communicate about the pros and cons of each rather than just "brainstorm" in real-time.