Live data from Hacker News

Leetcode Considered Harmful

fullcontextdevelopment.com

81–90 of 132 posts

Re: Leetcode Considered Harmful

#81

Earlier quoted context omitted.

If programming is an art, then the programmer should have an audition instead of an interview. Which is approximately what leetcode is.

Except that would be like asking say a piano performer to run Liszt etudes mechanically, when you're hiring someone to play at your wedding. Completely different skills. Sometimes, you do need someone with these skills. These times are few. Often, a person forced to train to this test will neglect other skills or be unable to match top tier performance in the weird test. Wrong audition can be worse than no audition.

Some programmers are like wedding singers, some play for a global audience.

If you hire a piano player for large symphonic orchestra, or a famous band, and they are not already famous, you want to hear them play. Maybe one piece they chose themselves, but maybe also a piece everyone in the genre is expected to know.

And if they have to improvize a bit, that may tell you a lot, too:

https://www.youtube.com/watch?v=HtI3IMlGRMY

Sometime you meet programmer like this, than you can jam with on almost any topic. Those that can repeatedly improvize their way to "leetcode" solutions, while you observe their thinking process.

The "problem" with "leetcode" is that it has become too common and formalized. When people start to practice leetcode just to land the job, it suck the fun out of it, and it becomes harder to tell if the candidate is able to solve similar, but novel problems.

Re: Leetcode Considered Harmful

#82
post #77

I find Leetcode discussions strange. I recently changed jobs so I was preparing by doing some Leetcode problems. The actual problems I was asked during the interview process were very simple compared to what I expected. Interviewers even explicitly stated that they wanted to see how I think, and the solution didn't even have to compile. So in my experience the whole idea that «Leetcode is harmful» is overblown a litt…

I totally agree.

But I find the whole discussion not strange but rather dishonest. I realize I'm biased towards thinking that the blog posts condemning some special sort of interviewing come from the "losers", the people that didn't get the job. That isn't true in general, but there is still this aura of entitlement: "I am a good programmer! I have other skills than leetcode! I demand an interview process that is tailored to my specific skills!"

I don't believe the claims that the current style of interviews is not working. This claim usually is made in the blog posts and in the interview horror stories, but I haven't seen it any of the FAANGs I worked in. Sure, some questions give more signal than others, but that's the company's problem, not the candidate's. If anything, large companies realize that lack of diversity is a larger problem and are trying to combat that directly (not with changing the hiring process for the general case though).

What it feels like is the blog posts try to solve a different problem ("how can I get a FAANG job") under the disguise of making the world a better place. Meanwhile, companies try to solve a completely different problem altogether ("how do we weed out candidates that might not be a good fit for what we value at scale with low latency?").

As a hiring manager, I'm interested in applicants that are (among others) good at leetcode-style questions without having had to train a lot on leetcode: Technical problems that are not easy to understand (cognitive and communication abilities), have a simple and easy trivial solution (higher level view on problems and customer orientation) and have high technical depth at scale (specific technical knowledge). So that's where the post is right: don't spend so much time on leetcode. But also don't try to change how companies interview. It's unbecoming.

Re: Leetcode Considered Harmful

#83
post #4

I've never heard of an effective alternative to Leetcode though. We're engineers. If you don't like something, make something better. Take home projects and how many marbles in a jar are extraordinarily worse than traversing a binary tree. I suspect that any interviewing practice will always being in detractors. It's a process of culling, those culled will dislike it.

Literally any other process is better, in my experience. Short take-home exercises. A system design exercise around a whiteboard. Talking the interviewer through some previously-written or open-source code. Pairing up to fix a bug in the org’s code during the interview. Leetcode-style problems as an interview technique are probably the one that’s furthest away from testing the from day-to-day software development cha…

> Short take-home exercises

As others have said, open to extreme abuse in terms of timeliness.

> A system design exercise around a whiteboard

I've worked with a frankly extreme number of architects who can talk the talk but cannot (or will not) code the code.

If you're hiring for someone to code the code system design isn't the signal you want.

> Pairing up to fix a bug in the org’s code during the interview

Open to cheating. Very difficult and time consuming to rotate the problem. With Leetcode you can take the problem out of a college textbook.

> Talking the interviewer through some previously-written or open-source code.

Works well for small companies where you're hiring someone who fits a team well. Probably the best approach for small companies.

For big companies, it's open to extreme racial and personal bias.

And I don't mean racism in an abstract sense. I mean that I've interviewed with a company that pairs with a particular coding exercise across all candidates.

They asked me back whilst knocking back my INFINITELY more qualified good friend who was interviewing with the same company.

We walked through the same code base, I'm a LOT less qualified than they are. We got far different feedback, to the extent I genuinely can only assume unspoken racism.

Re: Leetcode Considered Harmful

#84

A lot of people say that they never encounter leetcode-like problems in real life and therefore they are silly. Am I an outlier? I feel like I actually encounter these kinds of things fairly often, or at least the insights that they represent. (Eg: this week I'm implementing a simple path-finder to deal with a sliiightly overgrown state machine from a vendor. ) So - at least because of that - I tend to think of leetc…

They occur primarily in certain types of performance intensive back-end programming.

What do you tell a React developer?

You're going to need Knuth-Morris-Pratt to center a div?

95% of software jobs involve using a library for algorithm problems.

Re: Leetcode Considered Harmful

#85

Earlier quoted context omitted.

Except that would be like asking say a piano performer to run Liszt etudes mechanically, when you're hiring someone to play at your wedding. Completely different skills. Sometimes, you do need someone with these skills. These times are few. Often, a person forced to train to this test will neglect other skills or be unable to match top tier performance in the weird test. Wrong audition can be worse than no audition.

Some programmers are like wedding singers, some play for a global audience. If you hire a piano player for large symphonic orchestra, or a famous band, and they are not already famous, you want to hear them play. Maybe one piece they chose themselves, but maybe also a piece everyone in the genre is expected to know. And if they have to improvize a bit, that may tell you a lot, too: https://www.youtube.com/watch?v=HtI…

Nah. There is a longstanding tradition of competitions in classical music, especially for piano players. The vast majority of concert pianists got some notoriety through such competitions. And no, improvisation skills are not something classical pianists are judged upon.

Orchestra musicians indeed are routinely hired via a process that involves auditions, but my understanding is that applies only to those at the beginnings of their careers.

Popular/rock/jazz band formation process IMO is indeed similar to how start-ups are created (i.e. rather informal process generally based on networking, though audition jams also happen to fill a specific position). I fail to see how corporate staffing is similar.

Re: Leetcode Considered Harmful

#86

Does anyone have actual metrics about whether this stuff works or not? All I see is anecdote after anecdote in both directions. In god we trust, all others must bring data.

Googles interviews works according to their internal data.

Google bans any questions that you can find on the internet though, including all questions you find on leetcode (they have people who check this, including the member only questions), they want to ensure that candidates only do problems they haven't seen before. Some accidents still happens, but since they have 5 interviews per candidate it is very unlikely for anyone to pass without solving a few problems they haven't seen before.

So the process works when the candidate hasn't seen the exact problems before. For those who just gives leetcode questions verbatim it might be less effective, or even counter productive, I haven't seen any data on that.

Re: Leetcode Considered Harmful

#87

Earlier quoted context omitted.

Is there a difference in the interview process between the US and the EU? Wherever I applied to in the EU I was almost always given a small, practical programming exercise relevant to the field I was applying for and for which I had a few days to hand in my solution (usually they were quick to solve, depending on the level of polish you would put in). In the interview itself we would then discuss the implementation a…

I'm in the EU as well and while I'm quite junior, I felt like I had lots of options during my recent job search. One company gave me a practical exercise (using Spring Boot) and since I'm not familiar with that framework there was simply no way for me to complete it in a reasonable amount of time (we didn't use Spring in the CS program at uni). I had to withdraw my application. I can't preemptively learn every framew…

The company probably was using Spring Boot in their production and wanted to find someone already familiar with the frameworks they use to ensure themselves with an easier onboarding. Of course you can’t preemptively learn every framework out there but chances are that you’d find a place to use the ones you already know, especially if said framework is popular. The alternative you ended up with was a company willing to test your general reasoning and train you on their SW stack. It’s great to have variety and the problem with leetcode is that standardized testing that doesn’t really test for anything practical but for which you have to put in months of preparation.

Re: Leetcode Considered Harmful

#88
post #12

Happily employed and had no trouble with coding interviews myself. So my opinion isn’t from some personal angst about passing this bar: I found it easy. That said: I’m tired of the attitude that there is no effective alternative to this style of interview. You do know we hired people to do engineering jobs for many decades before the industry started cargo culting what they observed a handful of Silicon Valley mega-c…

Is there a difference in the interview process between the US and the EU? Wherever I applied to in the EU I was almost always given a small, practical programming exercise relevant to the field I was applying for and for which I had a few days to hand in my solution (usually they were quick to solve, depending on the level of polish you would put in). In the interview itself we would then discuss the implementation a…

For my first programming job interview when I was just out of college I was asked to do a simple CRUD application with some sample database the team had. They gave me the general specs (do it in VB.net or C#) and left me alone for 3 hours. After that, I just talked a bit about my code .

This was back in 2003, way before the Leetcode crap had taken on small companies.

Re: Leetcode Considered Harmful

#89

Earlier quoted context omitted.

That's because programming is nothing like any of those professions. How many certificates do you see for musicians, painters, photographers? Programming as at least as much an art as it is anything else and art is very hard to quantify in the types of tests that most certificate systems use. It requires a project based certificate which needs more organization that exists today. IMO it'd require a guild like setup t…

If programming is an art, then the programmer should have an audition instead of an interview. Which is approximately what leetcode is.

> If programming is an art, then the programmer should have an audition instead of an interview. Which is approximately what leetcode is.

Except that audition is to heavy on theory and minutia and the performer isn’t really showing (not given the chance) their better performance. There’s a variety of skills that leetcode style interviews flattens into a narrow category.

Re: Leetcode Considered Harmful

#90
post #26

Earlier quoted context omitted.

> MANGA has built (or even contributed to in passing) basically 0 of the tools I use in production... Is the linux kernel a tool you use in production?

Linux kernel is not MANGA Otherwise could you tell us what you meant.

Didn't know Linus worked for any of them!
Post reply on HN