4 ms·
To second this point, part of being a good programmer means picking up new skills quickly, and then applying them. Leet code is very contrived. However, learn
by nelsondev 4y ago
To second this point, part of being a good programmer means picking up new skills quickly, and then applying them.
Leet code is very contrived. However, learning leet code, then applying it in an interview shows you have the aptitude to learn quickly.
- bialpio 4y agoThis argument can be used to justify forcing candidates to learn how to do double-entry bookkeeping (or insert other skill that you won't use on the job) just to see if they can learn. Yes, it checks if they can learn, yes, it is somewhat related to the area, but maybe there's a better way? I've been 10 years in the industry. If recruiter tells me I need to prepare for an interview in ways other than looking back at the projects I've done, then the interview is not testing for what is important on the job.
- NateEag 4y ago> I've been 10 years in the industry. If recruiter tells me I need to prepare for an interview in ways other than looking back at the projects I've done, then the interview is not testing for what is important on the job. Some people lie on their resumés. If they're good at lying in person, it can be difficult to detect that. If they're able to deliver working code of some kind under the pressure of a job interview, then they're almost certainly about to actually program at least a little, so you can trust me of what you see in their background and what they tell you about their achievements. I'm personally skeptical that leetcode really tests what most companies need in a programmer, but it's probably better than nothing.
- bialpio 4y ago> Some people lie on their resumés. My point isn't that I want to only chat about my resume - just that the problem you give me should be something I may encounter in the new job, ergo I do not need to prepare for that since my entire career prepared me for those (unless I want to reskill and the new job is different than the old one, then some preparation may be warranted). > If they're able to deliver working code of some kind under the pressure of a job interview, then they're almost certainly about to actually program at least a little, so you can trust me of what you see in their background and what they tell you about their achievements. Sure! But if the assignment is depending on stumbling upon a brilliant idea, instead of solving a problem that you may see in your day-to-day job, then I don't think it's useful. Think "trim a string" or "split a CSV" [1], not "find the longest increasing subsequence". And maybe also explicitly stick to ASCII encoding for string-based problems (but TBH, if a candidate asks about encoding, they probably know their stuff, or at least know where the gotchas are)... > I'm personally skeptical that leetcode really tests what most companies need in a programmer, but it's probably better than nothing. Agree that it's better than nothing. Disagree that we can't do better. :) Edit: [1] ... maybe w/o relying too much on standard library if those are built into the language you chose.
- NateEag 4y agoYep, that all makes sense. FWIW, I agree we can do better than leetcode. I'm personally a fan of an approach I saw someone else describe here, where you literally have the candidate do a few-hours freelance gig for you, paid at a decent rate. Triage some of the low-priority bugs so when you're interviewing you have a little stack of relatively self-contained, well-defined tasks for candidates to pick from. Probably good to have someone pair with them, if the candidate is willing. You get to see them work in a real context, they get paid, you can learn about how they work, and it seems like a win-win to me. I also think it's good to be open to other options - if a candidate has a different way to show they'll be good at the job, let them do that. If burntsushi wanted to work on a company's CLI tools, I'd hope a link to the rg repo would satisfy everyone that he knows how to write a good CLI.
- mikymoothrowa 4y ago> However, learning leet code, then applying it in an interview shows you have the aptitude to learn quickly. That’s not why they were introduced. Leetcode using tools like hackerrank were introduced because college GPAs were very bad indicators of programming proficiency and a lot of people also did not have a CS degree. The questions weren’t this bad before. And these competitive programmers aren’t necessarily fast at learning things either.
- b20000 4y agoleetcode was introduced because the founder in india could not get a job because he didn’t have a degree. so he made a platform where people could prove how good they were. the trouble is that this just trains code monkeys to memorize optimal solutions to a set of problems and to quickly reproduce them. it does not optimize for real engineers who have the experience to build good software and to come up with creative solutions to hard problems.
- ripvanwinkle 4y agoIt also shows you have the time to prepare. Not everyone has that luxury - think working parents with some other challenging happenings thrown in and you have an advantaged and disadvantaged class of people for these interviews
- mikojan 4y agoNaturally, but how is that a flaw?
- c7DJTLrn 4y agoThe cynic in me says that's intentional. They want young, enthusiastic people willing to work for less that they can throw away when they're done.
- noasaservice 4y agoIt's more than cynical: https://www.britannica.com/event/Griggs-v-Duke-Power-Co https://www.britannica.com/event/Griggs-v-Duke-Power-Co outlines that IQ tests are unconstitutional due to racial biases. It was out of that judgement, that companies started to require degrees for office jobs of all sorts, as you could discriminate based on education but couldn't on an arbitrary IQ test. And naturally, tests on the topic of a job can also be administered. And I do think you're right - Leetcode does select for recent graduates who likely were taught in a throwaway language for academic purposes. And selecting for young college graduates are highly likely what they're searching for, as they also do not know their worth.
- troon-lover 4y ago
- tlextrait 4y agoI had a 3 and 2 year old when I prepared for interviews and I did alright enough to get a job at a FAANG (and it's not Amazon). I took about 2 months and blocked some time every single day. I still managed to cook meals for 4 and put two kids to bed, and wake up at 1am and 3am for night time milk feedings... yes that's not delegated to a housewife it's done by me.
- SkyPuncher 4y ago> Leet code is very contrived. However, learning leet code, then applying it in an interview shows you have the aptitude to learn quickly. I feel very strongly that this premise is flawed. It shows that you have aptitude for a very specific type of learning. I lead an engineering org at a small startup. We teach our engineers to dive deeply into the customer value prop to find ways to deliver the simplest technical solution to their problem. You don't need leetcode skills when you can identify simpler, more accessible solutions to a customer's need. The reality is outside of very specialized technical businesses (or business components), most engineers jobs are not to build technically advanced solutions.
- TheOtherHobbes 4y agoYes, exactly this. Leetcode isn't just an irrelevant skill in these situations, it's the wrong skill. Algorithmic optimisations are pointless if you can't assess how much value they generate. MAANG seems to use Leetcode as a legal proxy for conscientiousness and IQ without testing for other relevant qualities such as strategic insight, creativity, and other skills that are essential for a successful business. There's no problem with testing for basic coding ability, but if you're not selecting for broader skills - preferably with some diversity - you get the same old leet monoculture causing the same familiar delivery and stability issues.
- mring33621 4y agoI think this style of interviewing also serves as a proxy for age discrimination and/or to detect personal work/life balance values that don't favor the prospective employer. If you aren't willing to dedicate a considerable part of your unpaid, personal time to an activity that they mandate, you aren't a good fit for them.
- nogridbag 4y agoI agree. We lost two of our worst performers to FAANG companies. They were both junior and came from top schools. Communication was a huge problem and both wrote very sloppy code. We would assign trivial tasks to them that would take an average developer 30 minutes or less and they would struggle even with heavy mentoring. I was the mentor for one of them and I really tried my best, but there was little improvement over several months and luckily they moved on. Now I'm mentoring two devs who didn't study CS in college and only completed a coding bootcamp and they're working out amazing.