I recently held interviews of two offshore C# programmers (from India). Both interviews went reasonably well until I gave them a minor programming challenge to be solved in collaboration with me. On a whiteboard. Then both candidates failed hard. Or did they?
First challenge was to write a function that took a string as input and returned a Boolean indicating if the first character in the string was a capital letter. We spent more than 15 minutes on this simple task and the candidate could not even extract the first character og the string. Nor did he reflect on Unicode/multibyte compatibility in the solution.
The second candidate was asked to write a function that took a collection of integers as input and returned the input collection with all duplicates eliminated. This question could spawn a discussion about data structures and complexity analysis. But also this task stayed unsolved after 15 minutes, and the candidate apparently didn't know about complexity analysis, nor about hashing/HashSets.
So, can I conclude that they were both incompetent? I am not sure: an interview can be an incredibly unpleasant situation for the candidate with a lot of pressure and this may very well remove a lot of their ability to reason. Also, at least one og the candidates was extremely nervous. On the other hand: both had a CV with more than six years of professional programming experience, so how on earth couldn't they solve the above two very simple tasks? They were even allowed to solve them in pseudo code. And with me, helping on the side.
In short: what can I conclude about them, if anything at all?