| > "Can you even remember when was the last time you had to write an algorithm to traverse a tree?" Fairly often? There are lots of things taught in comp sci classes you could have used for your example here, but traversing a tree is not one of them. Huge amounts of software will have something as basic as traversing a tree and if you can't remember how to do it even 20 years out of comp sci classes, I'm not sure you should be writing code anymore. I'd think that refusing a candidate who can't work out how to traverse a tree in 5 minutes for an interview isn't a strong candidate for any coding position. At least I wouldn't hire someone who couldn't. (Give it a try if you doubt me, if you've done any amount of coding you should be able to work this one out very fast without ever stepping foot in a CS class, although you might have to spend 2 mins on Wikipedia first to see what a tree is) I agree with the article though: best way to hire someone is to give them a trial run. However, most employable developers will laugh in your face if you ask them to come work for you as a trial run without pay. At least, I definitely would. Paid 1 month trial of remote work is a good bet, but relies on your candidate not being employed already - and if they're any good, they are probably employed already. I guess you might catch freelancers though, but freelancers are not going to agree with the rest of the points in your post. |
I've found this sort of generic statement ignores the practical aspects of a hiring decision. Maybe we need to qualify the definition of 'coding position', but I'm thinking of my entire devops team. I'm pretty sure I'd get some sideways looks if I asked many of them how they would implement tree traversal. And my devops team kicks ass. I don't know that a filter on tree traversal helps me in hiring more people for that team.
In keeping with the article, what we really care about is whether someone can be productive and learning how they are productive. It's not uncommon to find a disconnect between computer-science competence and acceptable developer output. I've watched candidates execute whiteboard graph traversal & shortest-path exercises quite well, but their actual code output is just silly. We're still working on finding the right way to detect that ideal mix of "smart and gets things done".