Most candidates mention spending months on LeetCode/HackerRank/Spoj before interviews. If you need to spend months brushing up a set of skills, it's a clear sign your previous job(s) didn’t use those skills.
Algorithms/Data structures knowledge is useful to software engineers, but using it as the most important proxy for candidates’ software skills is debatable.
Some arguments for this approach include:
1) It’s an objective approach, with little to no interviewer bias especially when interviewers use a common question bank.
2) New interviewers need little training, so practically anyone on the team/org is ready to take interviews after shadowing a couple.
3) Algo/Data Structures rounds can be easily automated with online judges.
What are some alternatives to algorithms/data structures approach that don’t lose some/all of the benefits mentioned above?
I think algorithm and data structure problems can be useful if used correctly. I think the main issue is that most companies tend to use leetcode style problems which are a bit more on the brain-teaser side and are often usually harder to solve if you haven't spent a significant amount of time solving such problems. These questions might make sense for super competitive positions at places like Google where they can afford to reject good candidates, but at most companies it doesn't make sense. I think simple problems that involve working with the same data types required at the job would suffice. The purpose of the question should be to screen out candidates who can't solve them, not to judge how good they are.