I wonder how much of requiring a computer science degree is simply because the people hiring have computer science degrees. Seems like a self perpetuating insiders club.
I wonder how much of requiring a computer science degree is simply because the people hiring have computer science degrees. Seems like a self perpetuating insiders club.
It's interesting that this story appears at the same time that an article about how memory games designed to improve your intelligence only improve your memory with that memory game - not in broader contexts.
Chess masters are no better than beginners at memorizing chess boards with a more random arrangement of the same pieces.[0]
Expertise in humans seems to be highly specialized.
So then why do we expect algorithmic knowledge of a CS degree from people writing modern crud web apps?
It's ridiculous.
[0]https://psy.fsu.edu/faculty/ericsson/ericsson.mem.exp.html
In all seriousness, though, it's because the CS majors I've interviewed have (generally) been great at theory, crap at application. I once had a guy hold forth for 10 minutes about cardinality and then flop sweat when I asked him to explain the difference between "GROUP BY" and an "ORDER BY".
I also think many of the same biases and inefficiencies that haunt terrible whiteboard hazing interviews still apply to take-home tests. If you say something like, "write this as if it's going into production" it's a disaster -- whatever qualifies as good enough for production is a subjective opinion that varies from organization to organization -- and often varies considerably within an organization too.
A great programmer pressed for time might slap something together and add some notes in a write-up about the extensively different way they would work on it if they were being paid a wage, given quiet working conditions, and tasked with it in the regular setting of a job. And would likely get rejected, despite being a great programmer.
Meanwhile, a candidate coming from some situation without hardly any time constraints, perhaps taking time off between jobs or during a university break if still in school, might spend 20 hours on something that should only take 4 hours, polish the entire thing, write a full test suite, and implement extra features. They might be more likely to be hired even if they are an inferior programmer, simply because they had access to significantly more free personal time to fit it in.
It can even be prohibitively hard just fitting in round after round of technical screens and 1-hour phone calls that probe your experience or ask you to solve short form problems, especially if you're interviewing with many places and they all want you to do that.
Making it take-home sounds better in theory, but there still are a ton of failure modes that people don't adequately account for.