For the overwhelming majority of software businesses it's far more useful to know if someone is disciplined enough to use good variable names than whether they can write an algorithm to count the number of edges in an acyclic graph.
For the overwhelming majority of software businesses it's far more useful to know if someone is disciplined enough to use good variable names than whether they can write an algorithm to count the number of edges in an acyclic graph.
Disclaimer: I have a stake in https://codility.com/
In my experience people who understand complex concepts can also understand how to write clear code. Maybe those that you are writing about were not motivated to do that - or maybe it never occurred to them that this was needed?
Would you mind also explaining what you mean by this in "this is not always the case"? Because it does not seem to refer to my comment.
It is much more difficult to debug and fix existing code than develop it from scratch. Hence, if you found the problem hard to code in the first place, then when you come to debug it again later you've just screwed your future self.
This leads me to think that conciseness is not necessarily as simple as we tend to think. Sure, overly concise code with clever hacks are often a nightmare to debug, but that's mostly because they are the wrong abstraction and not capturing the problem well enough.
Knowing how much to abstract and writing clear code is indeed an ability.
Beyond code literacy, the most valuable skills for a 99% of programming roles are empathy and diligence. Unless you're working on the kind of programming that's arguably pure mathematics, algorithms are just not important.
There are plenty of ways to test diligence; empathy is a little harder to test directly but there are reasonable proxies.
Disclaimer: I'm working on a product for applicant filtering (generic rather than coder-specific) https://www.beapplied.com/
I have some stake in https://Codility.com - I could perhaps ask them to add a new kind of tests :)
This then filters out anyone who just can't code, and you can review the passing tests for craftsmanship.
I think it's simply 'well, everyone is doing it so...'. So for some people it feels just safer to do what a lot of others do, while others can't be bothered, and a just don't know any better. I'd believe that's a very common reason for this approach :)