Tales from the interview: Can you rotate this two-dimensional array?
My colleague jeffdav told me about one job interview with a graduating college senior that didn’t go well because the candidate simply gave up.
He offered a simple programming task: Write a function that takes a 4×4 two-dimensional array and rotates it clockwise by 90 degrees. For example, the entry in the upper left corner of the array goes to the upper right corner.
The interview candidate simply gave up without even writing so much as a function prototype. “I can’t do it.”
— Okay, well, let’s take it a step at a time. Maybe take a specific example and see what we can learn from it.
“It’s some sort of matrix multiplication.”
— All right, well how would you start working that out?
“I don’t know. I can’t do it.”
That’s really not a good way to demonstrate your problem-solving skills: By responding to a problem with a simple “I can’t do it.” All of us are faced with things we can’t do. The important thing is that we are willing to learn what we need in order to be able to do them.
I wonder if this particular person thought that attitude would fly at a real job. If your boss gives you a difficult job, would you just say, “I can’t do it”? Heck, how do you even graduate from college with that attitude? Your professor gives you an assignment, and you just say, “I can’t do it”?
(The punch line for people who actually know matrix algebra: Matrix multiplication doesn’t solve the problem anyway.)
Bonus commentary: I reprint JeffDav’s comment which he posted below, since it is after all his story.
This was a question reserved for intern candidates and fresh out of college hires. I was usually the first one on the loop and used this as a warm-up question. Once they got it, we’d move on to something more interesting. This one guy just refused to believe it was even possible.
Also, I would phrase it as “rotate an N x N matrix where N >= 1, and you are given N along with the matrix A.” This makes it super easy. If you allow an N x M matrix (i.e. non-square) the question gets much harder.
I don’t ask this question as often anymore. I get bored with asking the same questions over and over. Furthermore, I think after about the 100th time you ask a question you have lost perspective on it. Once you can write the answer on the whiteboard by heart without even thinking, you get annoyed by anyone who takes more than a few seconds thinking about it. It may not be a conscious annoyance but it’s there if you think about it, and I think it gives you a bit of a negative bias at times. At least it does for me. It’s good to find new questions so you have to solve them yourself and you have that feeling of approaching the problem for the first time fresh in your memory.