This is what sucks about software, you can have many years of experience and fail a question about a linked list, if you have not utilized it in a while. I solve business problems, read documentation that is my age to work with legacy systems, etc. I keep up to date with the web dev area I'm working in but this is much different than college data structure and algo knowledge.
And that's OK, but in order for companies to make progress, they use questions like these to make sure they are hiring people that are knowledgeable and capable of solving certain kinds of problems. The other thing is, people that can answer these simpler kinds of programming problems correct are more likely to write clean code, make better decisions, and be an asset to a team. It is just an easy way to weed out bad candidates. That doesn't mean all candidates who can't answer the question are bad, but likely that all bad candidates cannot answer the question; there's a big distinction there.
Unfortunately a lot of people with good experience get left behind. But the other problem is just because somebody has good experience doesn't mean they are the right fit for the position. And that's just life.
I think the point of these questions for entry level devs is that they should be able to figure out how to remove an element from a linked list even if they have never used one. It's pretty trivial if you think about it and have some basic understanding of objects and references.
Also these types of questions are not usually asked for experienced devs.
Not disagreeing with you but I see the opposite problem. People who trust hashsets way more than they reasonably should. You need to reach economies of scale[1] before they make sense. A lot of performance is lost building these expensive structures.
1. https://gist.github.com/cmanallen/f40fe3b75d567057c98e5b3126...
FizzBuzz became a thing for a reason. Would you consider FizzBuzz leetcode? Would you consider a 5 minute discussion about how a linked list works leetcode, or whiteboarding pseudocode for a node structure and Add/Remove methods? (and for what it's worth, I almost never find a need to go even that far)
Parlay that 5 min theoretical discussion into 10 minutes of conversational discussion on application in practice and for anything less than a lead position I already know if you're "qualified" to be a potential hire or not.
I work at a small company with very low turnover so it's not like I've hired bunches of people, but in 10 years I've never hired a bad developer. Doubt I've passed on many good ones, either, though they might get passed on for other reasons.
Yes, 80% of the recent grads we interview are unhirable. By unhirable I mean can't answer things like:
-how to reverse a string
-how to remove an element from a linked list
-time complexity of hashsets vs linear searching.
But we do have applicants who do those things (the other 20%). And we have plenty of them. So many that we end up filtering many out for other reasons.
These prestigious companies try to put out an aura that they only hire the top 1%, but then claim there's a skill gap... Seems contradictory to me.
Google has a culture that reportedly claims that they would rather not hire 10 good candidates than hire 1 bad one... So how can you claim there is a skill gap when you're rejecting so many qualified people who almost passed your test?