Incidentally this is a very valuable instrumental topic for doing well on job interviews, specifically in software areas. The problems are usually a mix of skills, “basic” knowledge and a thinly veiled IQ test questions; the latter type rely on “going meta” at some point of problem solving. If I had a good heuristic for this I think I could pass almost any interview :).
E.g. (classic) how do you delete a node from a linked list if you only have (pointer) to that node, not the previous one?
At top software companies they seem to weigh the technical aspects more, though (somewhat understandably) the interviewers want to imagine working with the candidate as a future positive interaction.
Personally I think I pass the personality test, but recently blown an interview due to being stale in some areas and insufficient mental flexibility (“going meta”) on a couple of questions.
Incidentally this is a very valuable instrumental topic for doing well on job interviews, specifically in software areas. The problems are usually a mix of skills, “basic” knowledge and a thinly veiled IQ test questions; the latter type rely on “going meta” at some point of problem solving. If I had a good heuristic for this I think I could pass almost any interview :).
E.g. (classic) how do you delete a node from a linked list if you only have (pointer) to that node, not the previous one?
Sadly, a lot of interviews are more about “likeability” and people skills than pure critical thinking skills. (I wish it were that easy...)
At top software companies they seem to weigh the technical aspects more, though (somewhat understandably) the interviewers want to imagine working with the candidate as a future positive interaction.
Personally I think I pass the personality test, but recently blown an interview due to being stale in some areas and insufficient mental flexibility (“going meta”) on a couple of questions.