Another benefit is, its streamline job searching. You practice once and you can use the same skill to interview for many companies.
Another benefit is, its streamline job searching. You practice once and you can use the same skill to interview for many companies.
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.
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.
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.
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.
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.
Don't assume something is easy or straightforward for everyone because it was for you.
I switched tracks to the normal software engineer with only-leetcode interview questions. Spent 3 weeks studying and last week I went in and had an easy time because it was exactly what I studied for. Also applying to a few other dev shops was effortless because they asked the same stuff.
Doesn't that support the argument a bit? Its "not that hard" -- so even someone who _doesn't_ have the requisite experience could learn it? So its just another hoop to jump through, _before_ they validate whether you are a good fit for the job in the first place. That's what people are complaining about.
>so even someone who _doesn't_ have the requisite experience could learn it?
I consider it a plus. Every company use different technology and different way to do things. Not to mention it keep changing all the time. With a standardize test, even though I don't have the experience with the technology they use, i can still have have a shot.
> Every company use different technology and different way to do things
To a small extent, but mostly untrue. If you are an expert UI programmer, you should be able to move between disparate UI technologies relatively easily.
> With a standardize test
People aren't upset with the standardized test part. They are upset it (frequently) tests things that are not relevant. Hard things at that. There are an extensive number of practical, language / framework agnostic questions you can ask about UI or back-end programming that will easily tease out quality candidates. Instead they ask you merge sort. Hence people complain.
To some extent but the topic is still relevant, leetcode topics are algorithm, data structure, system design, etc.
Again whatever interview scheme you devise nothing is perfect. To me at least the pros outweigh the cons.