There are a lot of new grad and junior developers who can follow instructions. There are surprisingly few who can solve problems that they haven't seen before and are able to pattern match against.
The issue isn't lowering the bar. For a new grad/junior the bar is often lowered to the point of "can you do FizzBuzz in the language we use?" (and there are a lot who can't do that).
Rather, the issue is the "we need to solve problem XYZ" and have the developer figure out how to solve it.
For example, I just finished debugging a problem of an application that would run fine in the IDE, but fail when run on the command line when packaged into a jar. It turned out that the cause was that you can't open up a File inside a .jar (but you can open up an InputStream).
It got passed to me when the developer failed to get it working and gave up on the problem. The happy path failed.
That isn't a "lower the bar" thing - the developer who wrote it can write reasonably complex code. It's a lack of problem solving of the unknown problems.
This sort of problem isn't something that is easily tested by adjusting the bar. Its a "we're graduating people who don't have problem solving skills and are finding that those skills are rare."
Great example. Leetcode absolutely does not test for this. Frankly, no FANG interview question I have ever personally seen tests for this. This sort of deep experience comes out when you actually talk to a candidate about their technical work, what was a really subtle bug you tracked down, etc.
Its really hard to test for that as part of an interview question. FANG is able to resolve that by hiring lots of people that pass a sufficiently high bar and then figuring it out as they go... and even when the people don't have the appropriate problem solving skills, there's likely still work for them to do.
Smaller shops that don't have the luxury of hiring many developers may find that only 5-10% of their devs have the necessary problem solving skills... and that's a hard pill to swallow.
Those skills can be cultivated. Some get there through shear grit, but it takes time. But this is where jumping from one job to another gets problematic - it takes time. If someone is switching jobs each year its harder to know if they've gotten to the point where they can solve problems.
The issue isn't lowering the bar. For a new grad/junior the bar is often lowered to the point of "can you do FizzBuzz in the language we use?" (and there are a lot who can't do that).
Rather, the issue is the "we need to solve problem XYZ" and have the developer figure out how to solve it.
For example, I just finished debugging a problem of an application that would run fine in the IDE, but fail when run on the command line when packaged into a jar. It turned out that the cause was that you can't open up a File inside a .jar (but you can open up an InputStream).
It got passed to me when the developer failed to get it working and gave up on the problem. The happy path failed.
That isn't a "lower the bar" thing - the developer who wrote it can write reasonably complex code. It's a lack of problem solving of the unknown problems.
This sort of problem isn't something that is easily tested by adjusting the bar. Its a "we're graduating people who don't have problem solving skills and are finding that those skills are rare."