And that's why HackerRank, Codility and all the other coding sites have zero relevance today in regards of the actual capability of the candidate. The fact that hiring committees, HR departments and software engineering managers rely on them goes to show how detached all those people are/have been from reality for a long time now.
Good software engineering skills on the other hand are pretty much more needed than ever.
sorry, but i don't agree with that assertion. algorithmic skills are never going to be out of date.
true, widespread availability of high quality implementations may obviate the need to implement such structures 'by hand'. however, the developer must understand not only the operations that a data-structure supports, but also their complexity. one needs to understand the fundamental properties of data-structures to use them properly, so that the application satisfies it's own complexity requirements.
and complexity here is not just asymptotic complexity, but also the machine cycle count (ofcourse benchmarking helps here. a lot) this also implies that one must understand the architecture of modern machines f.e. how the cache-hierarchy affects performance etc. etc.
every decade (or even less !) new architectures are sufficiently different from the previous generation that makes a mockery of our 'intuition' of their performance characteristics. data structures that might work wonderfully on old pdp machines would probably not be a good choice on modern machines with multiple layers of caches etc.
this constant tension between abstractness and efficiency is what makes, imho, programming such a joy :)
The thing is, in large tech companies like Google, you might be tasked with designing (or modyfing a design) of something that works on Internet scale. For such cases, thinking in terms of algorithms is essential. That's why I think FAANGs still require algorithmic literacy. Unfortunately, other companies, which don't have FAANG-like problems, ape its recruitment process...
By definition, any code written to solve a problem is an algorithm (not just the standard stuff found in textbooks), since a lot of people in IT write code to solve problems, then yes they absolutely need to understand some what performance characteristics and the correctness of what they wrote. Even if you don't need to performance characteristics, you certainly need the correctness part!
I don't think its all or nothing. A component of being a good software engineer certainly involves being able to reason about performance characteristics, and the correctness of the algorithms you write (Every piece of code written to solve a problem is an algorithm by definition)
I always regarded Codility as just a test whether one is a University of Warsaw computer science alumnus/na - and no wonder given who authored most of the tasks.
Good software engineering skills on the other hand are pretty much more needed than ever.