LeetCode questions as interview questions are mostly theater. Most people who do well on these aren’t actually “solving them” on the fly from scratch. They just happen to have seen the exact same problem before and retake the steps they’ve memorized to get to the answer. Testing whether or not someone can regurgitate the solution they have memorized to a math problem doesn’t tell you much about how they will perform in a truly novel non-contrived constraint problem scenario, which is generally what most dev work entails.
Perhaps if you are working at Bespoke Algorithms ‘R Us, benchmarking this would have more value to your org, but for most dev roles at most companies it is hard to see it as more than a compliance exercise, or maybe even as a tool to weed out those with families that can’t devote the hours/day to LC memorization.
If the interview for a coding job doesn't involve actual coding, how do you know that the candidate can code? What you may get are people who are just really good at selling themselves. Maybe a good fit for the sales department, but not so much for the technical position you are hiring for.
LeetCode is not perfect, but no test is.
As for the "memorization" aspect. You can certainly memorize solutions. But you can't just memorize every character of every solution and regurgitate it perfectly. You will need to make some generalizations, just to fit everything into your brain, and as you type it back, you will probably misremember something, and have to fix the bug or bridge the gap. Those are useful, real life coding skills.
> Let us know if you’ve seen the problem previously
and also:
> In your tech screen, you’ll be asked to solve two problems in roughly 35 minutes. Practice coding solutions to medium and hard problems in less than 15 minutes each to help you be ready for the constraints during the interview.
The only way I could solve two problems in 35 minutes is if I've seen them before or it is a variation of a problem I've seen before.
Or just say “I’ve seen this one before” until they get to one you actually have seen before and ace it.
Leetcode is a joke. I’ve hired a dozen or so high quality candidates using a short 2-3 hour take-home. It shows us more than leetcode ever could. And sometimes people take it places I could have never imagined, these are people we move quickly on and they are the highest performers in the org.
I think it's stupid to try to judge if someone has seen the question before. The only time it's wrong to have seen the question before is if someone tipped you off to that specific company's questions. I think that most people are not good enough at writing reasonable questions to attempt it. For that matter they are not good at picking reasonable questions for an interview out of a collection of problems either. People often choose problems that are excessively difficult, ambiguous, or even impossible to answer.
[0] https://en.wikipedia.org/wiki/The_purpose_of_a_system_is_wha...
Creativity gets in the way of leetcode... Leetcode requires focus; you need to recall only the most relevant techniques for the problem, if you're being too creative and see too many possible solutions and you try to identify the most optimal one, it will slow you down and you will run out of time.
I tend to do better if the problems are more difficult with more time given. I'm built for solving difficult problems without hard time constraints. I'm bad at solving easy problems within limited time slots.
What got me a job was that I was a solo founder running a business and learning how to make the most of limited resources. Aka I was someone that gets things done and spends the least amount possible to get there. Use the resources you have and show you can create value.
Again, it all comes down to show don't tell.
Leetcode is valuable as a way to practice and maybe reaffirm skills. It's not useful for hiring in a direct way.
Fact is that no job can give a reasonable test for how it is to work there short of working there. There's team dynamics, developer / project fit, etc etc. All you can ever do is measure some proxies. Leetcode is just a much better proxy than the old "how many ping-pong balls fit in a school bus" questions.
I’ve never been good at tests in school. I probably averaged Cs on tests through college. Projects though? Aced them every time and sometimes got pulled aside and told I was highly exceeding the projects of others in the class. I just do well when I can think alone, or when I can actually work toward a solution with a coworker.
I’ve made the companies I work for millions of dollars. But put me in front of a white board and ask me an algorithm question? You’d think I was fresh out of CS101.
Also, you happen to be good at leetcode, surely? But that's not informing your view at all, because you're too smart to present self serving bias as fact, right?
Leetcode is effectively the opposite, because each one is usually a CS paper by itself, which by definition took a very hard problem a long time for a very smart person to create and test the solution.
You cannot practically invent the a leetcode solution from whole cloth if you treat it like an IQ test question should be done. It's a sport and you get good at sports via drills until it become muscle memory.
What? No. You need to practice to be truly effective at Leetcode.
I never give these type of questions in my interviews of senior/staff+, I build out topical problems for the space I’m actually hiring for, then simplify it down to the interesting bits. I give a ramp, a simple problem, a more complex tweak to the simple problem that needs an interesting data structure (maybe needs a heap or similar) and then another tweak that forces them to abandon that data structure and do something novel. You can also fail this and still get hired.
With junior engineers, I’m sorry but I need something that looks like leetcode so I know you put the work in, and I can’t ask the topical questions because they have no frame of reference. These questions are like the common denominator for someone with no real world skills. I need to see that you’re driven and self motivated enough to teach yourself this (probably useless, when is the last time you had to implement merge sort) skill.
I also don’t think there is a great alternative. I put an extraordinary amount of work into making my questions that aren’t Leetcode, when they leak I’m heartbroken. I don’t want to just let a fancy school be the decision point, so I need to find a fair way to test. Asking people to do 1-2 days work or pair program… it’s usually caused a lot of dropping out of the funnel. So I would love to hear alternatives that are working for others
I hope I never see you in my team.
LeetCode was never about LeetCode, it was always a stand in for culture.
It's now a signal for baseline compliance. That's generally good for companies that require mostly operationalists.
The problem is that anyone can learn to leetcode. If you're interested in doing something new and not just warehousing CS lawyers, you're gonna have to ask better questions than that.
They solve them instantly, and making matters worse they are 100% valueless to a company.
What universe do we live in that hiring managers want staff that are 100% as skilled as an LLM but probably not as strong in areas that actually matter?
The reality everyone with a brain is going to cheat on these, they are typically pretty early in the interview process and it will hopefully get replaced with a real world test.
At my last job we just used example problems that we had seen in the past, usually REST API focused with just enough nuance to make engineers think through it and potentially refactor their code. Then you can ask them specifics of their thought process and get insight to their experience.
Sounds like confirmation bias to me..
The reason big companies use these interview methods, is because they have to interview tens of thousands of candidates per year. None of the common alternative interview methods that get tossed around can scale to thousands of applicants.
if even low parameter LLM can solve most of these leetcode examples that cost nothing to run, why are we using it to discriminate applicants to measure "how badly do you want the $250k/year"
It's almost like the people hiring are optimizing for masochists and there lies the devil, you want hyper-rationality because they are the easiest people to manipulate and brainwash.
Highly sensitive and type B personality aren't going to sit around and let them trade their life to destroy or trap large number of the population with addictive algorithms or drone target selection.
Matter of fact IQ was invented specifically to filter out the most programmable minds, you wouldn't be able to run a country's intelligence agency without being able to brainwash people or a corporation. The promoters at the helms are usually the exact opposite of the producers, unwavering, unforgiving, uncompromising.
Being quick at the command line, using the right tools, can get around VS code quick, can solve the more trivial code problems quick (or quickly critique LLM output or a blog post). It adds up.
I would disagree with this premise. Leetcode identifies people who have just finished cramming for Leetcode questions. You don't need logical reasoning abilities to solve Leetcode, just encyclopedic knowledge of algorithms and data structures
You don't need leetcode for that. It's sufficient to talk about datastructures. In fact, that is a much better and actually reasonable thing to do in an in an interview.
> I also like these questions because you can ask them to any kind of software developer, from frontend to DevOps.
Only those that will apply at your place, which will exclude me if you require a leetcode interview. So, in fact, you will be biased by prefiltering candidates.
It's like when companies say "we only hire the top 1%" and I ask "the top 1% of all engineers or the top 1% of the engineers that chose to apply at your company?"
I enjoy that this assertion is made with essentially no attempt to justify it, it's just said matter-of-factly as if it's just obvious truth. Well, let me speak at least for myself: Absolutely not.
We lack an agreed upon, specific way to evaluate someone’s talent in 30-90 minutes. LC problems are not a terribly efficient way to fix this.
A lot of them require you to make, what to me at least, is some non-obvious clever observation about the problem. Sure the problem is talking about a guy robbing houses, but if you stand on your head and squint just right you’ll realize this is actually a graph cycle detection problem and you should use Floyd’s algorithm to solve it.
Because there are thousands of these problems the amount of time it would take someone to become familiar with them is prohibitive. So you are at the mercy of the interviewer, have they picked a super clever one, are they going to be ok with removing duplicates from the answer by tossing stuff in a set or do they want you to pull some dynamic programming out of thin air.
It’s the part where you have to divine the trick under pressure that measures nothing of value. I’ve been a professional software engineer for 2 decades. I’ve had times when I’ve been trying to solve some very tricky problem and done research and thought thoughts and come up with pretty clever solutions, or at least I think they are clever. Not once have I had to do this under pressure in a 45 minute time box with someone looking over my shoulder.
That’s my objection to leetcode. Sure it’s great if a candidate can recognize that your riddle about topological map rain capture is actually just a restatement of Kolger’s postulate at first glance (a problem and postulate I’ve just made up because I’m not going to wade back into leetcode right now) but that’s an insane thing to optimize for.
The vast majority of the problems programmers solve are actually just mapping business domains into code. The most common problems that need solving is taking squishy, incomplete, and contradictory requirements from multiple stakeholders and figuring out what needs to get done. People in the real world are rarely rolling their own data structures, because the red black tree you slap together is going to be infinitely worse than the battle tested highly optimized one you can pull out of the standard library or off your package manager.
In my long career I’ve had a handful of occasions to actually build a data structure or solve a problem with some very clever algorithm. And in those cases you don’t really want people shooting from the hip anyways, you would want them to do research and see what prior art exists so they can discover something like Floyd’s algorithm for finding cycles in a unidirectional graph (ok this one is real).
It is not clear to me what exactly leetcode tests. My best guess would be your ability to take a disguised questions and convert it into a handful of problem shapes and solve those. But if you grade leetcode like the website does during an interview, expect to lose a lot of perfectly fine candidates along the way.
Asking standard array/string manipulation/sorting etc questions in a 30min phone screen is very valuable to save your engineers 5hrs on a poor candidate. Conversely, throwing an NP hard leetcode hard at a senior dev with 20 years of experience and excellent culture fit with your organization in the 9th interview is basically meaningless.
Worse than meaningless, it's a great way to toss away a diamond in the rough.
Leetcode problems skew towards competitive programming and grinders. They do absolutely nothing to show real-world programming skills which involve: 1) working within a large, existing codebase, 2) strong code documentation and commit message habits, 3) understanding of coding styles within the company culture so that you don't write in an unintelligible, bespoke style, and 4) communication skills and the ability to work within a team so that the candidate is not fighting strong headwinds.