top | item 5623737

(no title)

strandev | 13 years ago

If you agree that these types of questions are not a good measure of job performance, why encourage this line of questioning? Wouldn't it be better for the industry as a whole to discover better ways to determine future job performance?

discuss

order

jamesaguilar|13 years ago

I don't set interviewing policy at my company, and anyway I'm unfamiliar with any technique that provides better results. I suppose finding it is a direction of research that would be interesting, but I have a full time job just being an engineer.

My comment is only meant as practical advice to candidates. It is not normative.

tezka|13 years ago

knowing these are not going to guarantee good performance. But not knowing them is a clear indication of incompetence. A programmer who doesn't know basic algorithms and data structure is a bad programmer.

scarmig|13 years ago

Obviously more knowledge is good knowledge. And perhaps the bar for being a good programmer involves being able to

1) Implement a red black tree on a white board

I would argue, though, if that's the bar, there are probably other bars that are a bit lower that at least some of the algorithm triumphalists would fail, such as to

2) Throw up a basic and secure Wordpress site on an Amazon EC2 instance

or

3) You're running into an issue where you're getting an error message about running out of file descriptors. Tell me what's the issue here and what you'd do about it

or

4) write a basic, safe script that makes backups of each file in a given directory and its subdirectories

or

5) tell me what the fuck is the clearfix?

Now, if intermediate algorithms is something that people should be able to do, surely you'd agree 2-5 are even lower bars to meet (since they're things that virtually all of those "bad programmers" are able to do). By the same token, though, it's absolutely the case that many hires at the BigCos actually wouldn't be able to respond to 2-5.

I wouldn't say that those people shouldn't have been hired; after all, people learn! But if algorithms are actually part of the everyday job, someone could also learn them, no?

To the extent that you're testing for raw intelligence--which is the most important aspect of any of these types of jobs--algorithms are a good ruler. But to equate the measurer with the measure is somewhat foolish, because it's a means to an end, not the end itself. If you can use other probes of raw intelligence, those function just as well as being able to vomit up algorithms and data structures that, as people point out, any person who spends a month or so studying can get a solid grasp on and then never need again.