| 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. |