The fact that a bootcamp grad can compete for the same software engineering jobs as a Stanford CS grad is one of the very best parts of the hiring process in our industry. Are you proposing that we start using credentials as gatekeeping?
Treating engineering as an undifferentiated commodity measured by leetcode performance is partly why this charade exists.
I'd estimate (from browsing graduate boards) it's probably among the top 5 most hated aspects of the industry. #1 for many - because it's so anxiety inducing.
But it has this side effect that you need to test every candidates.
> Are you proposing that we start using credentials as gatekeeping?
No. As a fast-track sure. So you don't have to start every interview with a FizzBuzz [0].
[0] https://blog.codinghorror.com/why-cant-programmers-program/
But we already do use credentials as gatekeeping. There's a lot of talk about bootcamps and whatnot, but how many of these people actually get passed the resume screen when compared to a Stanford CS grad? FAANGs famously recruit from same 20 universities, and then complain about "lowering the bar" if they branch out anywhere else.
We could stop gatekeeping, but it still happens.
I have these I have used "challenging" algorithmic stuff a handful of times in my careerer. Same with recursion, I have used it, but not too many times.
If I do hackerrank or leetcode or something similar these days, it's pretty much luck if I will get it. If I sat down long enough I could work it out, but with a 2 hour time limit, its usually 50/50 whether the answer appears in my head in that time frame.
And here's the thing. I write a lot better code than I used to. I know what is important, and it isn't clever algorithms, it's choosing the right abstraction, and keeping things maintainable. Making the code easy for the next developer to follow. For the vast majority of software roles out there this will be so much more valuable than algorithmic knowledge. Sure knowledge of computer science fundamentals is important, but I think we give it too much emphasis over what really counts.
Basically these are testing for a computer scientist when the job is for a software engineer.
It would be interesting to look at the correlations between the two, as I'm not sure if that's every been done.
At some point there's a signal to noise ratio issue here as well.
If companies are passing on specific pockets, it’s likely from a belief that the conversion from top of funnel to successful hire is low.
There’s plenty of excuses for gatekeeping, but the real reason is laziness. Of course, we don’t call it that, we call it a meritocracy and apply our biases as “common knowledge”, “proven”, or if we’re feeling particularly full of ourselves, a “sufficient statistic”, but never what it is: a bias, a blanket assumption, a gate.
As soon as you’re relying on assumptions, it’s not a meritocracy. It’s bias promotion, ie gatekeeping.
If small companies weren't able to use inexperienced developers to spin up half-assed MVPs, we'd be at the mercy of whatever large companies are interested in developing, and time has shown that as companies get bigger, they lose interest in niches in favor of products that will be massive successes.
You're not wrong, but I also don't think the world you are describing is a problem.
That's an interesting perspective. I would say there is some truth in it, but a lot of small companies get plenty of investment money.
There seems to be some kind of inherent or cultural distrust amongst tech interviewing, where nobody trusts that anyone has tech skills unless they personally verify it. I don't think a professional exam/certification would solve this distrust.
Or maybe that was just an urban legend...
The problem with the algorithm/leetcode style is that you can run it at a very high bar and you end up selecting people extremely skilled at that one thing, but which has very little to none correlation with shipping reliable & maintainable production code.
I've never needed to hire (and surely never will) people who can reverse binary trees with a hand tied behind their back, so that style of interview is not a meaningful signal.
Nope, not at all. Despite their rigorous hiring process, even the FAANGs have bad hires, burn outs, or people who simply can't keep up with the pace. Some FAANGs require an interview loop even for internal transfers to guard against a bad hire.
https://www.computer.org/education/bodies-of-knowledge/softw...
https://www.computer.org/product/education/professional-soft...
By the time the exam is designed - not complete, designed - it will be obsolete. By the time the exam is completed, there will be 3 new languages invented.
This would be like changing what animal you have to study as a doctor every six months for the test.
The library and framework of the week is not fundamental experience.
I always advocate computer science training really needs more history of the discipline. So many new languages and libraries turn out to be a rediscovery of ideas thoroughly explored in decades prior, just that the creator didn't know.
An orthopedic surgeon gets new types of tools and implants in their toolbox through their career, but the structure of the bones they operate on is the same forever. It's the same with software.
It would be nice to have something like this completely divorced from a recruiting engine though.
I can understand distaste about having a time imbalance (ie. a candidate is not investing the same # of ours as our staff), but like I said, this is a one and done thing and can be used w/ a way to cut down time working with any other companies using the platform.
For us it means going directly to the final rounds, whether they took it at our suggestion, for another company, or just did it for themselves. If they do it for us and they don't end up with an offer, they are not left empty-handed from the process.
In sum, it moves toward some sort of accreditation system, that’s the reason I mentioned it. It's a shame my comment is at the bottom of the pile as I too would love a future where the only time spent interviewing is just a couple hours getting to know my future teammates, and I truly feel platforms like this may eventually get us there.
All the same I'd appreciate feedback on why they're disliked. I've seen them mentioned in other HN threads without any vitriol.
The system encourages the default distrust of developers resumes. That most of them out there are lying, and we need a test to be sure that they can actually code. How many people have actually hired the mythical devloper that can talk well in an interview and not code?
If you're doing work that benefits the company that is another matter, but that's not what's happening here (or anywhere I've ever worked) and is ethically dubious regardless. That's not the point of an interview. I can't believe I'm having to explain this.
You don't pay a dev for their time during the interview process for the same reason no one pays anyone for their time to interview in any industry.
To hire straight off a resume is beyond wild. I'm in the process of hiring a dozen developers for my team, and have had 3 people who had great resumes fail a basic pairing session - they couldn't code. In the 24 years I've been in this industry, probably had at least a few dozen encounters like this. Sure, 90% of the time this isn't true, but it's true enough that it's insane to do it.
"How many people have actually hired the mythical devloper that can talk well in an interview and not code?" I actually have. Twice. Earlier in my career when I believed these sorts of things. And was on hook for cleaning up the mess. Never again. The harm to the team's morale is not worth it.
If Software Engineers want to get rid of algorithmic interviews, all they have to do is come up with a professional exam and a strict licensing body... just like most professions carrying a tittle (MD, Lawyers...).
But as long as "3 months js bootcamp grad" can advertise himself as a software engineer just as much as a guy from Stanford CS then we'll keep having these interviews.