Jeff Atwood has been sounding the alarm about interview candidates who can't Fizzbuzz since nearly a decade ago (https://blog.codinghorror.com/why-cant-programmers-program/)
In today's discussion about the usefulness of HackerRank, and coding challenges in general, as a way to evaluate prospective hires, I suggest that the state of affairs with mediocre, or at least less-than-rockstellar, engineers is caused by the possibility that for "most" coding jobs, you don't actually need to know CS fundamentals every single day. We're at a point where for many types of development, those who use APIs, libraries, and code from Google are able to muddle through, ship products, and linger in companies for years - https://news.ycombinator.com/item?id=12826364
Is there any merit to this theory? Because if not, then why are there non-ninja, 1X or less engineers out there with years of experience? Some of whom who are apparently quite ignorant about the very languages/platforms/etc. that they code on day to day? Surely not all of them inflate their experience on their resumes. Evidently companies did employ them at some point, and have them code. So how can they code without knowing how to code?
And if this theory is accurate, and many coding positions now no longer require 10x types, or even people who are all that knowledgeable at all, doesn't that reveal an unpleasant truth about the state of the industry? That the quality or ability of an engineer does not have to have a strong correlation to the quality of the product? If large corporations are full of these folks, yet remain profitable, what does that say about the tech industry? And if smart nimble startups hire 10x engineers and throw them through intense gauntlets, yet still fail, does that then shift the responsibility of failure from engineers- regardless of their quality or ability- to management themselves?
Coding is just like anything else - some people only do the minimum in order to get a "passing grade" and so they never really get past the basics. It isn't so much that they code without knowing how to code, but that whoever is in charge of managing them isn't necessarily an expert on coding and often times people find it easier to improve their ability to trick their manager rather than the difficult task of learning new or more advanced things.