In my day to day I am working on mission critical applications, creating web applications that rely on legacy databases, writing SQL SPs. I'm decent considering my short career, i try to improve on every previous project. However, when I go home I'm not wasting my time grinding leetcode, even though I was top of every class in college, algorithms, data structures, theory of computation and so on. I'm competent and pick up new stuff very easily. I tell recruiters I will pass on an interview if they are doing leetcode/hackerrank. I'm okay to solve some coding problems that they have day to day, talk about architecture/design, talk about what I'm good at and where I want to improve. I also wish other people would stop grinding leetcode and that everyone was realistic about the job at hand. Most developers won't be writing the most efficient code, but start easy and refactor if certain part of the application becomes a bottleneck.
Should movements such as 'get [anybody with a pulse] into coding' succeed, you can expect to see an ever increasing absurdity in requirements. The reason is not to try to be elite or whatever, but because the reality is you have to get rid of of > 90% of applications, for larger companies it may be > 99%. And so as the number of applications increases, you get an ever larger quantity of people with at least the minimum requirements and so you are forced to be increasingly selective.
Does passing some leetcode task mean you're a good developer? No, of course not. But if you take 100 passable developers and you're looking for the best, are they more or less likely than average to be able to pass such a test? It's the same reason that even though a college degree has absolutely 0 relevance to serving coffee, you're increasingly seeing companies "preferring" college degrees for their barely above minimum wage baristas. [1] If you take 100 potential baristas is that best of the best of those 100 more or less likely to have a college degree? Even though it has nothing to do with the actual job, it's just a decent way to filter 100 down to 1.
[1] - https://www.inc.com/suzanne-lucas/why-that-barista-has-a-col...
Is the process great? Absolutely not, and I'm sure that these places miss out on qualified candidates because of the process and hire some people who gamed the process. Things like degrees and LeetCode tests and other screening methods are just ways to reduce cost and risk to get that "good enough" threshold.
Understaffed projects might lead to failures, people quitting, expensive consultant aid etc.
Hireing a bad programmer and two good and ending up giving the poor one easy tasks or letting him go might be cheaper than hireing two good more slowly.
In general I feel the recruitement process is so random anyway that employers should just get it done and pick someone after throwing darts at a billboard with resumés for picking some to interview.
Half of those questions are based on sophomore-level data structures and algorithms classes, the same concepts that operating systems, compilers, and most libraries/frameworks are based on. I would certainly hope that an experienced developer could effortlessly relearn basic concepts taught to college sophomores long enough to pass an interview.
If the job requires algorithm wizardry, I see the benefits of LeetCode-style interviews but many jobs are not like that.
You do it in addition of learning skills you use on your job.
For the me interviewee, it also make the interview process more streamlined, scalable and predictable. I practice once and I can use it for many other company, thus save my time.
At the margin, companies will lose out on qualified candidates that have better things to do with their time than practice algorithms and hire unqualified candidates that got lucky with their Leetcode practice.
Most companies have cargo-culted the programming interview, even when they don't have the same amount of demand from candidates.
1. being able to solve LeetCode tasks doesn't mean you're a good developer
2. not being able to solve these tasks doesn't mean you're a bad developer. So we have a tool that has a certain (IMHO high) rate of false positives and false negatives.
3. people start realising that LeetCode is becoming a go-to tool for recruiters, so instead of studying to become better developers, they study to become better at solving LC exercises, which increases the rate of false positives
4. with developers becoming better at LC, the bar is set higher and higher (because people spend time learning LC), so people who do not study LC exercises become far behind those who do, which also increases rate of false negatives
5. repeat points 3. and 4. until mastering LC exercises becomes more important than being a good engineer
This is a ridiculous trend which in my opinion only emphasises how screwed up is hiring in our industry.