Because it is a horrifically flawed metric by which to hire engineers, and is teaching upcoming crops of engineers valueless skills to enter the industry
As someone who (last week) ok'ed a guy with 35 years experience to skip the first round of interviews, only to then watch him struggle to write syntactically-correct code in a language he's (allegedly) been using for longer than I've been alive, I disagree. HR isn't a be-all-end-all metric, and it certainly has its faults, but it's very useful as a first-round filter.
Did you give your guy an IDE that he would normally use? That your company normally uses? A real world problem to solve? Resources he would normally use? Resources people at your company use on a day to day basis?
White boarding or using codepen isnt remotely close to evaluation for the actual job, and neither are data structure brainteasers, curious what you and your candidate did.
You got one false positive and now want to use a system known for its false negatives.
If you're just using HackerRank as a first round filter to see if they can write syntactically-correct code in a language... you don't need hackerRank. Or to restate this, if your interview process can't filter out such a candidate without using hackerRank, your interview process itself is flawed.
Their interview process surely can handle "can this person code fizzbuzz", but it makes no sense to take time from one of your engineers to test this when it can be trivially handled by something like hackerrank.
I don't understand why people find this practice questionable, it saves time for both company and candidate.
But perhaps a different way of answering your question would be a more apt response?
Take this with a grain of salt, but in my experience of building organizations, it seems to me that in social systems, as opposed to engineering systems / code, the most powerful organizational forces are the second order and tertiary effects of the policies that are institutionally put in place. Not the first order effects.
The first order effect of using HR/LC easy questions might be that it weeds out people who really can't code in a language. And in that result, using HR and LC in your interview process, isn't a bad thing.
But the 2nd order effects of using HR/LC are often disastrous. Because once you start using HR/LC as your FizzBuzz question resource, you've made it easy for interviewers in your organization to start using HR/LC questions for more than just a FizzBuzz replacement. Maybe interviewers go to HR/LC for medium, hard questions. Maybe more?
HR/LC elevate what should be a small (though important!) part of the interview process, to one of the most important, hardest, and complex parts of the interview process. In most interviews I have witnessed in the last few years, this comes at the expense of other things that _should_ be more important parts of the interview process. And that's what is disasterous.
That's the issue with HackerRank and LeetCode. It is intentional from HR and LC's point of view. And is an unignorable, indeed one of the most important aspects of adopting a policy of using HR/LC in your organization.
I disagree. Kind of. There are many questions that are bullshit puzzle types but I do think HR and LC provides value of teaching when a Data Structure or algorithm is suitable for use. At the very least, It’s far better means of understanding the flexible use that college textbooks don’t teach while having test cases to see pitfalls of implementations. Having a community that shows ingenious ways of tackling problems is valuable too.
I agree that a good interview process should check that the applicants have their bases covered with algorithms and data structures. I agree that having a compendium of good questions to ask for this purpose is useful. And I agree that HackerRank and LC have compendiums of such questions.
However, I disagree that that makes HR or LC valuable or a positive in the interview process. Basic DS and Algo questions do not require the types, number, or complicated questions one finds in HR or LC. Such questions are easy to come up with and test, and should be a notable, but minor part of the interview process.
HR and LC take what should be a minor (though important!) part of the interview process, and blow them to huge proportions, and thereby distort and harm the very process they're supposed to be helping. They do this, in an attempt to present themselves as having a larger value add than they actually do.
fizzbuzz is the least of your concern if you do these type of interviews. the problem is that you will be asked a question which required several hours to produce an optimal solution, yet you are supposed to deliver this solution in under 5-10 minutes, and the only way to do that, is to repeatedly grind the solution and memorize it and then quickly reproduce it in the interview. as such, the style of interviewing is broken, and optimizes for candidates willing to endlessly grind LC or HR, and memorize the solutions. in the end, everyone loses. coding interviews are there to exhaust the candidate so when the offer stage finally arrives, they take any offer. all it does it put everyone in a bad position.
and you are mistaken that it's up to the company to decide what happens. as an industry of professionals, it is our decision.
If you have a computer science degree, you are expected to know fundamental topics such as data structures and algorithms.
As a professional software engineer, you are expected to be proficient at those skills to an extent in which you can demonstrate them in practice.
The burden of verifying you acquired the skills associated with your education falls on the employer.
Fizzbuzz is trivial and should not be a problem for any developer at any level. Writing a binary search function should not be a problem either.
But I agree that the industry's obsession with competitive programming has gone too far in some cases, especially in cases where the skills being tested are not relevant for the job.