If this isn't a metaphor for the programming interview I don't know what is:
http://www.techiedelight.com/multiply-two-numbers-without-us..."Implement multiplication without using loops."
"Uh, okay. What do you mean by loops?"
"Don't use a conditional loop."
"What do you mean by a conditional loop?"
"Oh, you know, the standard definition."
Time passes.
"I'm stuck. What is the answer?"
"Oh, you just have a loop on b dividing it by 2 using shift operators until it is zero."
"Wait a minute, you said you couldn't use loops."
"Did I? Ah, well."
Hackerrank/leetcode exercises are written the same way. So many times that a problem asks "Output the indexes of two numbers in the array such that their sum is K" and you write your code and the website says "INCORRECT! You said [3,6] but the right answer was [6,3]". Addition is commutative! The two are equal! And both right!
"Implement multiplication without using loops."
"Uh, okay. What do you mean by loops?"
"Don't use a conditional loop."
"What do you mean by a conditional loop?"
"Oh, you know, the standard definition."
Time passes.
"I'm stuck. What is the answer?"
"Oh, you just have a loop on b dividing it by 2 using shift operators until it is zero."
"Wait a minute, you said you couldn't use loops."
"Did I? Ah, well."
Hackerrank/leetcode exercises are written the same way. So many times that a problem asks "Output the indexes of two numbers in the array such that their sum is K" and you write your code and the website says "INCORRECT! You said [3,6] but the right answer was [6,3]". Addition is commutative! The two are equal! And both right!