3 ms·
I'm a fan of using open-ended discussions rather than testing "book knowledge". Some simple textbook questions to gauge a candidate's approximate level of skill
by Silhouette 9y ago
I'm a fan of using open-ended discussions rather than testing "book knowledge". Some simple textbook questions to gauge a candidate's approximate level of skill and experience are fine, but that's just the introduction. For the main event, I might give scenarios that have a lot of potential depth for them to implement, or I might ask them to review existing code for such scenarios that is relatively crude in its implementation and perhaps contains some errors or oversights. In each scenario, I'm more interested in the way a candidate is thinking and what sort of level they are working at than any specific details.
For example, assuming the candidate can give me a correct implementation of some specified behaviour at all, do they just take a brute force approach? Do they demonstrate some basic awareness of different data structures and algorithms that might help them, and make reasonable choices? Do they immediately start looking at the required data and access patterns carefully, and automatically consider whether the standard library provides the required tools, whether other well-known libraries would be better, or whether something completely new will be best? What sorts of constraints do they take into account in making these decisions? Do they consider issues like how we might ensure the correctness of the code or measure its performance? What tools do they use? What sources of information do they automatically turn to for reference?
I would always prefer to use a natural environment for this sort of discussion if possible, so the scenarios would be realistic and relevant, and within reason I'm OK with the developer using whatever tools or information sources they normally would for any programming involved.