> Why would I be expected to write a merge sort when there are libraries for that? That's silly.
Definitely, work samples are better, for sure and there are other puzzles on there that are probably more appropriate for a simple challenge.
In practice I'd almost never expect you to implement a sorting algorithm and I'd probably bitch in code review if you did. However, on rare occasion for optimization you may need to - if you can't implement mergesort when you are given the algorithm and offered assistance in understanding it that probably reflects poorly on your ability to implement other things too and maybe to implement in general.
> Maybe I have a better understanding of some other aspect of your system than your team does but your questions will almost definitely fail to identify that.
Maybe you do, and of course you ask these kinds of questions too, work samples should be a main focus, but I immediately get worried if someone can't solve a basic problem and can't discuss programming using shared terminology - it makes discussing these things quite difficult.
> Likewise, one of the best programmers I know once defined Object Oriented Programming as "Imagine everything was a thing". And someone who speaks English as a second language might have difficult articulating the differences between two terms despite being able to code circles around you.
I'm not expecting a specific perfect answer, just a basic answer in the right direction for a question like that. "Imagine everything was a thing" is in that direction, I'd inquire more of course, but that's a good start. As long as you have a useful understanding so that we can have a discussion that's good enough.