I’m guessing the intersection of “people who read books full of brain teasers as a hobby” and really good [ engineers | programmers | artists | other creatives ] is significant.
Depends a lot on how the answer is allowed. If the interviewer just wants a correct answer, then useless. Probably asked by an HR drone who doesn’t understand the question or answer.
But if they allow open thinking, provide a whiteboard for sketching, etc., and will listen and evaluate the interviewee’s efforts at thinking through the process even if the answer is wrong, then a useful tool.
[threadjack on]
The few times I was dragged into interviewing, I had a simple question about PLC logic. Two rungs that did the same function; one that could be written in one line but was kinda tricky to understand, and the other being 4 lines long but much easier to understand. The question was to explain which is better from a long term, quality software point of view.
| *** compact, but not intuitive
|---(/)---(/)---(/)--(/)----------------------------o( )---|
| B1 B2 B3 B4 L1
| *** bulky, but very easy to understand
|---( )---+------------------------------------------( )---|
| B1 | L1
|---( )---|
| B2 |
|---( )---|
| B3 |
|---( )---|
| B4 |
Both these rungs compile to the same size, run at the same speed, and accomplish the same thing: if any of buttons B1, B2, B3, or B4 are pressed, turn on light L1.
What makes the first, more compact, rung tricky to some is the use of the NOT on the output ( —o( )-- ); to me, and many people I’ve asked, it’s not easy to determine what it does. Whereas the 2nd rung can be understood by almost anyone, even non-programmers with a bit of help.
Anyone who explained that the 2nd example was better since it would be easier to understand got my vote. Those that thought it was better to use “clever” code even at the expensive of understanding got a thumbs down.
And I’ve had a few heated arguments with “programmers” that felt if you don’t have the chops to understand tricky code, you shouldn’t be programming.
This was in the 1980s to 2000s, before agile, before “move fast, break things” mentality. It was also on multi-million$ heavy machine tools, when “breaking things” could hurt. Or cost. A lot.
Sorry for the thread highjack. I have no idea why I went on about this. I’m an old? Bored?
On topic: IMHO, Elon Musk is both brilliant and an idiot.