I'm the CTO at a startup in London, so I'm spending a lot of my time interviewing developers as we try to grow our team. As part of that, I ask each of them to do what I consider to be a very simple programming exercise (See below.)
Yet, the results of this are disappointing. About 10% of candidates will be able to produce a solution in 10 minutes or less, another 30% of candidates will eventually produce something close to a solution in 30 minutes (though often with errors), and 60% of candidates will simply be unable to produce anything close to a solution. These are not junior or graduate developers, but senior, experienced programmers asking for £50k or £60k.
I try to make the candidates as comfortable as possible while doing this, but even so, the inability of 90% of the people I interview to develop a solution to a simple question is astonishing.
Am I being too hard on the candidates in asking them to do this?
-------------------------------------------------------------------
This is, verbatim, the problem sheet I show them:
Pascal’s Triangle
Each element in Pascal’s Triangle is found by adding the two numbers to the right and left of it on the row above it; where these don’t exist, they are assumed to be zero.
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
(This is correctly centered in the actual document.)
Write a function that takes a single integer n as a parameter and returns the nth row of Pascal’s Triangle.
For example:
pascal(1) should return [1]
pascal(4) should return [1, 3, 3, 1]
That gibberish. Unless you know what "Pascal’s Triangle" is prior to seeing this you have no shot of even understanding the exercise.
You haven't even said how you're meant to iterate through the numbers. If this is meant to be an explanation of a "Pascal’s Triangle" it fails at that.
You aren't testing programming, you're testing obscure maths knowledge and the ability to decrypt your question/explanation.
I bet a lot of the other posters had to google this just to answer it in their impressively quick times.