6 ms·
> Somewhat related, I noticed a surprising correlation between programming skills in the small, and programming skills in the large. You can solve a problem in
by angarg12 3y ago
> Somewhat related, I noticed a surprising correlation between programming skills in the small, and programming skills in the large. You can solve a problem in five lines of code, or, if you try hard, in ten lines of code. If you consistently come up with concise solutions in the small, chances are large scale design will be simple as well.
Well, my anecdotal evidence doesn't support this.
I've done 500+ interviews for big tech, and often it is easy to spot people who have grinded leetcode. They excel at DSA, but fail at system design, or even low level design.
The thing is that overall I kind of agree with this article. Leetcode is great as a fun coding exercise. I also think they help the craft like katas help martial artist to practice.
The problem is when me getting the job depends on solving a coding puzzle. Sometimes I can solve a leetcode hard with ease and sometimes I get completely blocked in a medium one. Getting a job becomes more of a random toss than assessment of my skills. And yes, my company, and by extension me, are very guilty of this.
- snakey 3y ago> Getting a job becomes more of a random toss than assessment of my skills. I’ve coined a term for this throughout my long job search, it’s called the “leetcode lottery” (patent pending). You can do a couple of hundred leetcode problems, but you’re still at the mercy of the Gods when your technical interview comes around. The worst part of this whole charade is that I come out of most interviews having learned nothing valuable and I can say the same for the interviewer. They haven’t learned about my strengths and weaknesses, etc. I don’t have a better solution for how you can get an idea of my knowledge and skills over 2-3 hours of technical interviews though. And until someone does come up with a better idea, we’re stuck playing this game.
- tayo42 3y agoYou just skip the technical interview completely and start relying on some kind of certification for this
- pjmorris 3y agoI think certification is essentially the same thing as having someone else interview the candidate, so it won't be better and is easier to game than interviews. Working together with someone on the kinds of problems you actually face is the most realistic way to assess a person's abilities on the work to be done because it's less of a proxy than anything else.
- tayo42 3y agoYeah kind of. I think of it like DRY though. Most people aren't good at interviewing. Everyone does some random thing they think is better then the rest. But really it's uninformed. Just like you wouldn't implement your own hash map for most cases, you don't need to do a technical interview for everyone. I had one company do three seperate coding rounds. How many candidates do they have, what a waste of time for everyone.
- andromeduck 3y agoI've seen Stanford CS masters hard flunk leetcode-easy.
- matklad 3y agoI think our observations are consistent: I would say that candidates ability to solve leetcode-style problem during an interview reveals very little of their ability to code in the small or in the large. "Algorithms during code interview" is a completely separate genre to what's discussed in the article. To give a positive example here: when someone sends a 1k lines PR implementing a new big feature, how well a body of a single function is implemented is often a good predictor of whether the whole PR makes sense.
- angarg12 3y agoI'm not sure our observations are consistent. What I'm saying is that I've seen many times people who crush the DSA problem, but struggle to define clean APIs, write clear, maintainable and extensible code, or just design systems. In fact in some cases leetcode makes this worse, with it's emphasis on very terse code (e.g. single letter variables, all code in a single method, hard to understand coding constructs...). About your second point, not to be a dick, but if someone on my team sent a 1k loc single PR for a big feature, I would sit down with them to have a conversation about why that is bad (I have indeed done this before).
- vsareto 3y ago>They excel at DSA, but fail at system design, or even low level design. Leetcode was the gate for a while, then system design was added on to it. >Leetcode is great as a fun coding exercise. I also think they help the craft like katas help martial artist to practice. I know this is completely subjective, but it bothers me to solve toy problems that people have likely already solved (and now ChatGPT might be able to point you in a general direction given a plainly written problem description). And practicing it for a muscle reflex effect seems silly because you're unlikely to run into these again. However on the flip side, even business problems which are composed of things that people have solved before still seem novel, so I'm more engaged on those kinds.
- nonameiguess 3y agoI believe you're seeing people trying to game the interview system who think grinding Leetcode is all they need to do to become qualified as programmers. That isn't what Matklad is saying as far as I can. To keep up the analogy to physical training, you're not going to master or even get good at any particular sport, other than competitive lifting, just by lifting, but it provides a basis that makes all of your more specific practice easier and more efficient.
- mrits 3y agoIf I give you a choice of 5 mediums and you fail at all of them you probably are worth skipping for now.
- deprecative 3y agoTo be fair, if I am given any choice of leetcode I'll know the place isn't somewhere I want to work. I have little interest in that whole thing. I'm not grinding away hours and hours and hours of my life just so I can get denied in the fourth round, again.
- tialaramex 3y ago> The problem is when me getting the job depends on solving a coding puzzle. I have worked somewhere that we used online coding as part of our hiring process and it was valuable, but I agree that it's terrible as a gate. We used it because recruiters seemed to keep sending us people who can't write software, and it's just soul-destroying to sit down and interview people who are completely unable to do the job and had just sort of hoped we wouldn't check. My favourite interview though was somebody whose coding was excellent, and I spent the interview trying to figure out whether she's acting the way she is because she's terrified, or because she's incompetent. Turns out she was terrified, she's Russian and our interview was her first time using English, a language she'd learned in the classroom, in real life -- and she'd only been in the country for about one day. The reason I cared is, humans can't stay terrified for a prolonged period. No matter what's happening, even if it initially causes blind panic after not long they adjust to it. So if she was terrified that'll wear off after we hire her, which we did.