News for hackers. Stuff that matters.
Re:Coding interviews are stupid (ish) by hintymad on Tuesday May 07, 2024 @03:51PM (#40290733)
Assuming that a company does not look for candidates who are naturally good at ICPC-type of questions or geniuses who can come up with amazing algorithms in a matter of minutes, there is actually a different way to do coding interview: just give a high-level description of a sophisticated enough algorithm to a candidate and ask the candidate to turn that into code. I think it strikes a good balance between depth in CS and the coding abilities. This type of interview is similar to what engineers do at work too. We rarely invent new algorithms, but we do read white papers or blog entries or books to pick an algorithm to implement.

There are many variations in questions too: search a tree or graph with some customized criteria, using a double buffer to implement a tree-style prefix scan, implementing an integer multiplication with unlimited digits, some streaming algorithm, tree-walking to transform one tree to another, a simplified skip list, the options are unlimited. A good candidate tends to grasp the high-level concepts quickly (and they can ask questions), and is quick to convert intuition into working code. I find that there is a strong positive correlation between the performance in work and the performance in such coding interviews.

Re:Coding interviews are stupid (ish) by xandrius on Tuesday May 07, 2024 @04:22PM (#40291002)
I still don't get why such questions are even asked as most jobs I've ever had not even remotely touched those and I've touched quite a few industries, technologies and types of companies.

To me, the value of a software engineer is to ask questions, make hypotheses and be able to iterate quickly. Balancing trees, leetcode and other algorithmic stuff on the spot sounds like bringing the dreadful education system structure to the real world.

Also if a senior person can't in 30/45 min of talking with someone figure out the general experience level then the problem is them, really.

Re:Coding interviews are stupid (ish) by godelski on Tuesday May 07, 2024 @05:39PM (#40291828)
> if a senior person can't in 30/45 min of talking with someone figure out the general experience level then the problem is them, really.

This is why I've always been so confused. Why is the software engineering interview wildly different from the traditional engineering interview (seniors sit down with candidates and discuss how to solve a relevant proxy problem the team is currently undergoing (has the side benefit of making the interview process potentially fruitful if you don't go with that candidate. This can be (and sometimes is) abused though)). I mean... we all speak the same language, and that isn't standard English... right?

Re:Coding interviews are stupid (ish) by epolanski on Tuesday May 07, 2024 @06:55PM (#40292473)
> Why is the software engineering interview wildly different from the traditional engineering interview

I have my personal theory.

1) Top companies receive way more applications than the positions they have open. Thus they standardised around very technical interview as ways to eliminate false positives. I think these companies know this method produces several false negatives, but the ratio between those (eliminating candidates that wouldn't make it and missing on great candidates) is wide enough that it's fine. It does leads to some absurd results (such as people interviewed to maintain a library not being qualified despite being the very author) though.

2) Most of these top companies grew at such rates and hiring so aggressively from top colleges that eventually the interview was built by somewhat fresh grads for other fresh grads.

3) Many companies thought that replicating the brilliant results of these unicorns implied copying them. So you get OKR non sense or such interviews.

Re:Coding interviews are stupid (ish) by hintymad on Tuesday May 07, 2024 @07:59PM (#40292901)
Yup. And 3) is particularly interesting. Lots of companies actually need to hire people who can get things done and who can build user-friendly software, yet they thought they needed to hire people who could turn any O(N^2) algorithms into O(N) or O(Nlog(N)).

And even for Google, leetcode has become noise because people simply cram them. When Microsoft started to use leetcode-style interviews, there were no interview site, and later there was this Cracking the Interview at most. So, people who aced the interview were either naturally talented or were so geeky that they devour math and puzzle books. Unfortunately, we have lost such signals nowadays.

Re:Coding interviews are stupid (ish) by godelski on Wednesday May 08, 2024 @01:10AM (#40294542)
> yet they thought they needed to hire people who could turn any O(N^2) algorithms into O(N) or O(Nlog(N))

And the great irony is that most software is slow as shit and resource intensive. Because yeah, knowing worst case performance is good to know, but what about mean? Or what you expect users to be doing? These can completely change the desired algorithm.

But there's the long joke "10 years of hardware advancements have been completely undone by 10 years of advancements in software."

Because people now rely on the hardware for doing things rather than trying to make software more optimal. It amazes me that gaming companies do this! And the root of the issue is trying to push things out quickly and so a lot of software is really just a Lovecraftian monster made of spaghetti and duct tape. And for what? Like Apple released the M4 today and who's going to use that power? Why did it take years for Apple to develop a fucking PDF reader that I can edit documents in? Why is it still a pain to open a PDF on my macbook and edit it on my iPad? Constantly fails and is unreliable, disconnecting despite being <2ft from one another. Why can't I use an iPad Pro as my glorified SSH machine? fuck man, that's why I have a laptop, so I can login to another machine and code there. The other things I need are latex, word, and a browser. I know I'm ranting a bit but I just feel like we in computer science have really lost this hacker mentality that was what made the field so great in the first place (and what brought about so many innovations). It just feels like there's too much momentum now and no one is __allowed__ to innovate.

To bring it back to interviewing signals, I do think the rant kinda relates. Because this same degradation makes it harder to determine in groups when there's so much pressure to be a textbook. But I guess this is why so many ML enthusiasts compare LLMs to humans, because we want humans to be machines.

Re:Coding interviews are stupid (ish) by schneehertz on Wednesday May 08, 2024 @03:41AM (#40295359)
Many software programs fail to achieve ultimate efficiency either because the software engineers are unable to do so, or because external factors prevent them from achieving it. I believe that in most cases, it is the latter.
Re:Coding interviews are stupid (ish) by godelski on Wednesday May 08, 2024 @03:34PM (#40302013)
I'd like to think the later because it makes us look better but I've seen how a lot of people code... I mean GPT doesn't just produce shit code because it can't reason... It'll only ever be as good as the data it was trained on. I teach and boy can I tell you that people do not sit down and take the time to learn. I guess this is inevitable when there's so much money. But this makes the interview easy, since passion is clear. I can take someone passionate and make them better than me but I can't make someone in it for the money even okay. You're hiring someone long term, so I'd rather someone that's always going to grow rather than someone who will stay static, even if the former is initially worse.

IME the most underrated optimization tool is the delete command. People don't realize that it's something you should frequently do. Delete a function, file, or even a code base. Some things just need to be rewritten. Hell, most things I write are written several times. You do it for an essay or any writing, why is code different?

Yeah, we have "move fast and break things" but we also have "clean up, everybody do their share." If your manager is pushing you around, ignore them. Manage your manager. You clean your room don't you? If most people's code was a house it'd be infested with termites and mold. It's not healthy. It wants to die. Stop trying to resuscitate it and let it die. Give birth to something new and more beautiful.

In part I think managers are to blame because they don't have a good understanding but also engineers are to blame for enabling the behavior and not managing your managers (you need each other, but they need you more).

I'll even note that we jump into huge code bases all the time, especially when starting out. Rewriting is a great way to learn that code! (Be careful pushing upstream though and make sure you communicate!!!) Even if you never push it's often faster in the long run. Sure, you can duct tape shit together but patch work is patch work, not a long term solution (or even moderate).

And dear God, open source developers, take your issues seriously. I know there's a lot of dumb ones, but a lot of people are trying to help and wanting to contribute. Every issue isn't a mark of failure, it's a mark of success because people are using your work. If they're having a hard time understanding the documentation, that's okay, your docs can be improved. If they want to do something your program can't, that's okay and you can admit that and even ask for help (don't fucking tell them it does and move on. No one's code is perfect, and your ego is getting in the way of your ego. You think you're so smart you're preventing yourself from proving how smart you are or getting smarter!). Close stale likely resolved issues (with a message like "reopen if you still have issues") but dear god, don't just respond and close an issue right away. Your users aren't door to door salesmen or Jehovah's Witnesses. A little kindness goes a long way.

Re:Coding interviews are stupid (ish) by musicale on Wednesday May 08, 2024 @04:46AM (#40295737)
> And the great irony is that most software is slow as shit and resource intensive

You really need those 100x faster algorithms when everything is a web or Electron app.

Re:Coding interviews are stupid (ish) by godelski on Tuesday May 07, 2024 @07:13PM (#40292590)
Yeah I buy this theory.

The problem I have with it is that for this to be a reasonably effective strategy you should change the arbitrary metric every few years because otherwise it is likely to be hacked and has the potential to turn into a negative signal rather than positive. Essentially your false positives can dominate by "studying to the test" rather than "studying".

I'd say the same is true for college admissions too... because let's be honest, I highly doubt a randomly selected high school student is going to be significantly more or less successful than the current process. I'd imagine the simple act of applying is a strong enough natural filter to make this hypothesis much stronger (in practice, but see my prior argument)

People (and machines) are just fucking good at metric hacking. We're all familiar with Goodhart's Law, right?

Re:Coding interviews are stupid (ish) by bobthepanda on Tuesday May 07, 2024 @08:39PM (#40293176)
so having done interviews, just because the latter may be more present, does not mean the hordes of people just throwing a spaghetti made-up-resume at the wall have gone away. our industry has a great strength in that you don't need official credentialing to show that you can do something. at the same time, it is hard to verify what people are saying in their resumes, they might be lying in the worst case but sometimes they legitimately think they are at the level they are interviewing for. it was bad before the interest rate hikes, i cannot imagine what the situation is like now that hiring has significantly slowed and a lot more people are fighting for fewer jobs.

i did interviews for senior engineer and had people fail to find the second biggest number in a list, in a programming language of their own choosing. it had a depressingly high failure rate.

Re:Coding interviews are stupid (ish) by sokoloff on Tuesday May 07, 2024 @10:20PM (#40293740)
I had a candidate claiming over ten years of experience who couldn’t sum an array of ints in any language of his choosing.

This wasn’t an off-by-one or didn’t handle overflow, but rather was couldn’t get started at all.

Re:Coding interviews are stupid (ish) by usrusr on Wednesday May 08, 2024 @03:45AM (#40295384)
Ten years of experience at one of those places where every keystroke outside powerpoint is offshored. Why would they know how to sum ints? Some people do start their careers as what could best be described as software architecture assistants. They never touched a brick in their lives, to go with the architecture image.
Re:Coding interviews are stupid (ish) by godelski on Wednesday May 08, 2024 @01:22AM (#40294613)
I have junior and senior students that struggle with fizzbuzz... But damn, are they not allowed to even do a lazy inefficient `sort(mylist)[-2]` if they forgot about for loops? That's the most efficient in terms of number of characters, right haha

But I still think you can reasonably weed these people out without these whiteboard problems. For exactly the same reasons engineers and scientists can. And let's be honest, for the most part, your resume should really be GitHub. I know so much more about a person by walking through their GitHub than by their resume.

Re:Coding interviews are stupid (ish) by bobthepanda on Wednesday May 08, 2024 @01:33AM (#40294684)
Using GitHub is discriminatory against people who don’t code on the weekends outside of their jobs, and most people’s job related code would be under NDA and not postable on Github.

To be a capital E Engineer you have to pass a licensing exam. This filter obviously is not going to catch everything but it does raise the bar a little bit.

—-

As far as the root question goes, they are allowed to propose that, and then i can try and tease out of them why they think that is the best and if something is better. But you would be surprised at the creative ways people manage to not iterate through a full loop once.

Re:Coding interviews are stupid (ish) by willcipriano on Wednesday May 08, 2024 @06:46AM (#40296466)
Hiring people who code at all is discrimination against people who played video games instead of learning to code.
Re:Coding interviews are stupid (ish) by bobthepanda on Wednesday May 08, 2024 @10:25AM (#40298470)
“Codes on their spare time” is not part of the job description, but “codes at all” is.

There are plenty of reasons not to code on spare time. If anything the people who are most likely to do that are often also the people who coding interviews are supposed to be privileging, fresh single college grads.

I don’t know how people would square the statements “take-home assignments are unpaid labor and unfair to people with time commitments” and then do a 180 and say “people should have an up-to-date fresh github that they work on in their spare time.”

Re:Coding interviews are stupid (ish) by willcipriano on Wednesday May 08, 2024 @10:30AM (#40298522)
If it would take the candidate "spending every waking moment of their lives coding" to have one or two small coding projects after a half decade plus in the field, that's a signal.

If you went to college but never made anything, that's a signal.

If you didn't go to college, and never made anything, just shut up and make something.

Re:Coding interviews are stupid (ish) by bobthepanda on Wednesday May 08, 2024 @10:56AM (#40298784)
In a half decade plus some people pick up other commitments that are not side projects, like a pet, a child, sports, hiking, etc.

At the end of the day, it isn’t really relevant to the employer what is done in spare time off the job when they get hired, so it’s not like I should privilege their spare time projects over people who don’t do that, particularly if people don’t want to code off the clock. There are plenty of good engineers who do not code off the clock, and there are plenty of bad engineers who do.

Also, more often than not, coding off the clock for the sake of having a portfolio is not really indicative of anything. There aren’t, for example, review processes or anything like that in a one person side project, and unless I spend significantly more hours background checking who’s to say the side project is not plagiarized? People already lie on their resumes today.

Re:Coding interviews are stupid (ish) by willcipriano on Wednesday May 08, 2024 @11:22AM (#40299117)
In the time you took writing this comment you could've gotten the repo created and the title and description filled out. Writing text in a public readme.md would serve you better than sending it to me.
Re:Coding interviews are stupid (ish) by bobthepanda on Wednesday May 08, 2024 @11:35AM (#40299295)
I have side projects, but I don't expect every candidate to, nor do I expect every candidate to be a religious reader of every HN comment thread.
Re:Coding interviews are stupid (ish) by willcipriano on Wednesday May 08, 2024 @12:04PM (#40299657)
I'm not saying it should be mandatory, but they would have to show mastery some other way. Whiteboard? Live coding? Project?

I think a side project opens up the opportunity to skip that for a project presentation. This is a lot more in line with real life as you would typically code and later present that work to others. You would defend it to some degree, why you made choice A vs choice B. If you created it, you'll be able to do that.

Doesn't need to be a huge thing. Just show you can do anything at all really at the junior level. Intermediates can show mastery in a framework with something with slightly more complexity than a "hello world".

Re:Coding interviews are stupid (ish) by pseudalopex on Wednesday May 08, 2024 @01:21PM (#40300600)
> I'm not saying it should be mandatory, but they would have to show mastery some other way. Whiteboard? Live coding? Project?

godelski said your resume should really be GitHub. You could have said this instead of sarcasm.

Re:Coding interviews are stupid (ish) by willcipriano on Wednesday May 08, 2024 @03:47PM (#40302127)
Typically the people without side projects also make excuses to not do those either.

If I had a company I'd offer looking over an existing project or a project where you create a side project of your choice without any further direction.

So not mandatory but the easiest way to go probably. Once you apply to my company you'll have one to show for next time at least.

(If you want to write the project out on the whiteboard instead I guess feel free, that seems hard though.)

Re:Coding interviews are stupid (ish) by pseudalopex on Wednesday May 08, 2024 @05:07PM (#40302715)
Many people do not have side projects. Few people working as software engineers were not tested in some way.

I think it's more useful and more fair to give candidates some direction when I request something. What scope is enough? What tests are enough? We define side project differently or you would expect much more time from candidates than I do.

Re:Coding interviews are stupid (ish) by willcipriano on Wednesday May 08, 2024 @06:11PM (#40303237)
> What scope is enough? What tests are enough?

How each candidate answers each question themselves tells you about them.

Re:Coding interviews are stupid (ish) by pseudalopex on Wednesday May 22, 2024 @12:48PM (#40443108)
I used to think so. But real tasks have acceptance criteria. Seeing how candidates work with loose criteria has told me more than telling them in effect to read my mind.
Re:Coding interviews are stupid (ish) by P_I_Staker on Friday May 10, 2024 @08:47AM (#40318312)
It's so clear that people on this site have no friends, family, or hobbies. I also don't think you realize how ableist your comment is.

Some people have more trouble completing tasks for reasons that have nothing to do with talent or intelligence.

Re:Coding interviews are stupid (ish) by godelski on Wednesday May 08, 2024 @03:40PM (#40302071)
You're right. But a lot of people that are good coders code for fun. But you're also right that not all those people push their code into public repositories. The same is true for mechanical engineers. They're almost always makers. Fixing stuff at home or doing projects for fun. Not always, but there's a strong correlation.

But getting people to explain projects they did and challenges they faced can still be done. We do it with people who have worked on classified stuff all the time. If you're an expert it's hard for people to bullshit you about your domain expertise. Leet code is no different. It doesn't test if you really know the stuff, it tests how well you can memorize and do work that is marginally beneficial in order to make your boss happy. Maybe that's what you want. But it won't get you the best engineers.

Re:Coding interviews are stupid (ish) by bobthepanda on Thursday May 09, 2024 @06:05AM (#40306701)
Leet code, in the interviews that I do, is not the only thing I do.

But when I am asked to do a one hour part of an interview for four interview loops a week, all the preps and debriefings, and also do all my normal day-to-day deliverables, we need some fast filters for the obvious bullshitters. The interviewing volume is very high and there is a lot of noise.

Re:Coding interviews are stupid (ish) by kyle_grove on Wednesday May 08, 2024 @12:32AM (#40294355)
I think (but cannot prove) that along the way, it was decided to explicitly measure ability to 'study to the test'. My theory goes that certain trendsetting companies decided that ability to 'grind at arbitrary technical thing' measures on-job adaptability. And then many other companies followed suit as a cargo cult thing.

If it were otherwise, and those trendsetting companies actually believed LeetCode tested programming ability, then why isn't LeetCode used in ongoing employee evaluation? Surely the skill of programming ability a) varies over an employee's tenure at a firm and b) is a strong predictor of employee impact over the near term. So I surmise that such companies don't believe this, and that therefore LeetCode serves some other purpose, in some semi-deliberate way.

Re:Coding interviews are stupid (ish) by godelski on Wednesday May 08, 2024 @01:17AM (#40294586)
I think I have a much lazier explanation. Leet code style questions were a good way to test expertise in the past. But the same time everyone starts to follow suit the test becomes ineffective. What's the saying? When everyone is talking about a stock, it's time to sell. Same thing.
Re:Coding interviews are stupid (ish) by geraldwhen on Wednesday May 08, 2024 @04:53AM (#40295769)
I do code interviews because most candidates cannot declare a class or variable in a programming language of their choice.

I give a very basic business problem with no connection to any useful algorithm, and explicitly state that there are no gotchyas: we know all inputs and here’s what they are.

Almost everyone fails this interview, because somehow there are a lot of smooth tech talkers who couldn’t program to save their lives.

Re:Coding interviews are stupid (ish) by pseudalopex on Wednesday May 08, 2024 @01:47PM (#40300963)
> If it were otherwise, and those trendsetting companies actually believed LeetCode tested programming ability, then why isn't LeetCode used in ongoing employee evaluation?

Probably recent job performance is a stronger predictor of near future job performance.

Re:Coding interviews are stupid (ish) by acdha on Tuesday May 07, 2024 @09:25PM (#40293427)
I’d add another factor to #1: this feels objective and unbiased. That’s at least partially true compared with other approaches like the nebulous “culture fit” but that impression is at least in part a blind spot because the people working there are almost certainly the type of people who do well with that style and it can be hard to recognize that other people are uncomfortable with something you find natural.
Re:Coding interviews are stupid (ish) by e_y_ on Wednesday May 08, 2024 @05:24AM (#40295964)
I would say that it makes the interview process more consistent and documented, and less subject to individual bias. However there's definitely going to be some bias at the institutional level considering that some people are just not good at certain types of interview questions. Algorithm and data structures questions favor people who recently graduated or are good at studying. Behavioral interviews favor people who are good at telling stories. Etc.
Re:Coding interviews are stupid (ish) by acdha on Wednesday May 08, 2024 @08:56AM (#40297585)
Yes, to be clear I’m not saying it’s terrible - only that it’s not as objective as people who like it tend to think. In addition to the bias you mentioned, the big skew is that it selects for people who do well on that kind of question in an unusual environment under stress, which is rarely representative of the actual job. That’s survivable for Google – although their lost decade suggests they shouldn’t be happy with it – but it can be really bad for smaller companies without their inertia.
Re:Coding interviews are stupid (ish) by AlexCornila on Wednesday May 08, 2024 @11:08PM (#40304946)
this meaning no 1) is the right answer
Re:Coding interviews are stupid (ish) by markwkw on Tuesday May 07, 2024 @06:07PM (#40292109)
Mechanical engineering interviews seem to do the same as software: "Engineers always ask about beam bending, stress strain curves, and conservation of work. Know the theory and any technical questions are easy."

Basically an equivalent of simple algorithmic questions. Not "real" because it's impossible to share enough context of a real problem in an interview to make it practical. Short, testing principles, but most importantly basic thinking and problem solving facilities.

Re:Coding interviews are stupid (ish) by godelski on Tuesday May 07, 2024 @06:19PM (#40292218)
> Mechanical engineering interviews seem to do the same as software:

I've been an engineer in the past (physics undergrad -> aerospace job -> grad school/ml). I have never seen or heard of an engineer being expected to solve math equations on a whiteboard during an interview. It is expected that you already know these things. Honestly, it is expected that you have a reference to these equations and you'll have memorized what you do most.

As an example, I got a call when I was finishing my undergrad for a job from Raytheon. I was supposedly the only undergrad being interviewed but first interview was a phone interview. I got asked an optics question and I said to the interviewer "you mind if I grab my book? I have it right next to me and I bookmarked that equation thinking you might ask and I'm blanking on the coefficients (explain form of equation while opening book)". He was super cool with that and at the end of the interview said I was on his short list.

I see no problem with this method. We live in the age of the internet. You shouldn't be memorizing a bunch of stuff purposefully, you should be memorizing by accident (aka through routine usage). You should know the abstractions and core concepts but the details are not worth knowing off the top of your head (obviously you should have known at some point) unless you are actively using them.

Re:Coding interviews are stupid (ish) by glandium on Tuesday May 07, 2024 @06:43PM (#40292398)
We live in the age of ChatGPT. It might actually be time to assess how candidates use it during interviews. What prompts they write, how they refine their prompts, how they use the answers, whether they take them at face value, etc.
Re:Coding interviews are stupid (ish) by godelski on Tuesday May 07, 2024 @07:20PM (#40292640)
Sure, and we live in the age of calculators. Just because we have calculators doesn't mean we should ban them on math tests. It means you adapt and test for the more important stuff. You remove the rote mundane aspect and focus on the abstract and nuance.

You still can't get GPT to understand and give nuanced responses without significant prompt engineering (usually requiring someone that understands said nuance of the specific problem). So... I'm not concerned. If you're getting GPT to pass your interviews, then you should change your interviews. LLMs are useful tools, but compression machines aren't nuanced thinking machines, even if they can mascaraed as such in fun examples.

Essentially ask yourself this: why in my example was the engineer not only okay with me grabbing my book but happy? Understand that and you'll understand my point.

Edit: I see you're the founder of Archipelago AI. I happen to be an ML researcher. We both know that there's lots of snakeoil in this field. Are you telling me you can't frequently sniff that out? Rabbit? Devon? Humane Pin? I have receipts for calling several of these out at launch. (I haven't looked more than your profile, should I look at your company?)

Re:Coding interviews are stupid (ish) by glandium on Tuesday May 07, 2024 @08:10PM (#40292976)
I'm actually not talking about interviewees (ab)using ChatGPT to pass interviews and interviewers trying to catch that or work around that. I'm talking about testing candidates' use of ChatGPT as one of the skills they have.

> I see you're the founder of Archipelago AI.

I don't know where you got that from, but I'm not.

Re:Coding interviews are stupid (ish) by godelski on Wednesday May 08, 2024 @05:13AM (#40295889)
> I'm talking about testing candidates' use of ChatGPT as one of the skills they have.

The same way? I guess I'm confused why this is any different. You ask them? Assuming you have expertise in this, then you do that. If you don't, you ask them to maybe demonstrate it and try to listen while they explain. I'll give you a strong hint here: people that know their shit talk about nuance. They might be shy and not give it to you right away or might think they're "showing off" or something else, but it is not too hard to get experts to excitedly talk about things they're experts in. Look for that.

> I don't know where you got that from, but I'm not.

Ops, somehow I clicked esafak's profile instead. My bad

Re:Coding interviews are stupid (ish) by skydhash on Tuesday May 07, 2024 @06:47PM (#40292422)
You might as well ask how they use book libraries and web search.
Re:Coding interviews are stupid (ish) by usrusr on Wednesday May 08, 2024 @04:01AM (#40295486)
I've had a coding interview (screen, not whiteboard) fail where the main criticism was that one routine detail I took a while to get right could have been googled faster. In hindsight I still doubt that, given all the semi-related tangents you end up following from Google, but that was their expectation, look up the right piece of example code and recognize the missing bit (or get out right immediately).

For a proper engineering question (as in not software), I'd expect the expected answer to be naming the reference book where you'd look up the formula. Last thing you want is someone overconfident in their from memory version of physics.

Re:Coding interviews are stupid (ish) by godelski on Wednesday May 08, 2024 @05:23AM (#40295961)
> Last thing you want is someone overconfident in their from memory version of physics.

Honestly, having been in both worlds, there's not too much of a difference. Physics is harder but coding you got more things to juggle in your brain. So I really do not think it is an issue to offload infrequent "equations"[0] to a book/google/whatever.

[0] And equations could be taken out of quotes considering that math and code are the same thing.

Re:Coding interviews are stupid (ish) by quartesixte on Wednesday May 08, 2024 @05:30AM (#40296002)
I had a senior engineer chastise me once for NOT using the lookup tables.

"How do you know your memory was infallible at that moment? Would you stake other people's lives on that memory?"

So what you did on that phone interview was probably the biggest green-flag they'd seen all day.

Re:Coding interviews are stupid (ish) by epolanski on Tuesday May 07, 2024 @06:57PM (#40292496)
I'm a chemist by education, so all my college friends are chemists.

Being asked a theoretical chemistry question at a job interview would be...odd.

You can be asked about your proficiency with some lab equipment, your experience with various procedures and what not.

But the very thought of being asked theoretical questions is beyond ridiculous.

Re:Coding interviews are stupid (ish) by esafak on Tuesday May 07, 2024 @07:03PM (#40292531)
Why, they don't get imposters? You sure run into people who can't code in coding interviews.
Re:Coding interviews are stupid (ish) by epolanski on Tuesday May 07, 2024 @07:41PM (#40292788)
Because to be a chemist you need to graduate in chemistry.

What would be the point of asking theoretical questions?

There's just no way in hell people can remember even 10% of what they studied in college, book knowledge isn't really the goal, rather than teaching you how to learn and master the topics.

Re:Coding interviews are stupid (ish) by godelski on Tuesday May 07, 2024 @07:16PM (#40292613)
Because to actually have those types of conversations you have to have legitimate experience. To be a bit flippant, here's a relevant xkcd[0]. To be less so, "in groups" are pretty good at detecting others in their groups. I mean can you not talk to another <insert anything where you have domain expertise, including hobbies> and not figure out who's also a domain expert? It's because people "in-group" understand nuance of the subject matter.

[0] https://xkcd.com/451/

Re:Coding interviews are stupid (ish) by dclowd9901 on Wednesday May 08, 2024 @02:13AM (#40294865)
Doesn’t that comic more closely hew to the idea that some fields are complete bullshit?
Re:Coding interviews are stupid (ish) by godelski on Wednesday May 08, 2024 @05:25AM (#40295972)
That's one interpretation. But that interpretation is still dependent upon intra-group recognition. The joke relies on the intra-group recognition __being__ the act of bullshitting.
Re:Coding interviews are stupid (ish) by moregrist on Wednesday May 08, 2024 @12:06AM (#40294227)
Hmm… I have a twist on this. Chemistry is a really big field.

My degree is in computational/theoretical chemistry. Even before I went into software engineering, it would have been really odd for me to be asked questions about wet chemistry.

Admittedly it would have been odd to be quizzed on theory out of the blue as well.

What would not have been odd was to give a job talk and be asked questions based on that talk; in my case this would have included aspects of theory relevant to the simulation work and analysis I presented.

Re:Coding interviews are stupid (ish) by dclowd9901 on Wednesday May 08, 2024 @02:10AM (#40294849)
And software and computing isn’t a big field? Ever heard of EE?
Re:Coding interviews are stupid (ish) by scruple on Tuesday May 07, 2024 @06:11PM (#40292147)
I've only ever had a single whiteboard interview in my career, and it was a single interviewer who preferred them (I accepted the job), but I have also walked through the backdoor via recommendations for all but 1 of my employers in ~20 years in the industry. From embedded in radio and television broadcasting, to medical robotics, to AAA games, with some excursions into web development. Every other interview at a company I accepted an offer for was a conversation with engineers about my experience and some hypotheticals.
Re:Coding interviews are stupid (ish) by BurningFrog on Tuesday May 07, 2024 @08:44PM (#40293199)
> Why is the software engineering interview wildly different from the traditional engineering interview

One angle is that SWE is one of the very few professions where you don't need a formal degree to have a career. It's also a common hobby among a sizable population.

I think this is truly great. A holdout breathing hole where people can have lucrative careers without convincing and paying off a ton of gatekeepers!

But I also think that when you hire in other industries, you can get much more milage from looking at the candidate's formal degrees and certifications.

In our industry, you kinda have to start from scratch with every person.

Re:Coding interviews are stupid (ish) by zrn900 on Tuesday May 07, 2024 @09:57PM (#40293623)
> But I also think that when you hire in other industries, you can get much more milage from looking at the candidate's formal degrees and certifications.

> In our industry, you kinda have to start from scratch with every person.

Not really - in software people leave a bigger and more easily trackable track record than any other engineering field. From previous work projects/experience to open source projects/experience, from personal projects to the communities a person belongs to. A lot of stuff is directly visible on the Internet. In other engineering fields, you have to trust what the applicant says in his or her resume and maybe at most you can call the previous companies he worked at for reference. In software, a lot of the trail is online or easy to tell, and you can still call.

Even for totally new graduates, it is better in software: Its much easier for a software undergrad to work part-time or in a hobby project or contribute to open source and produce something before he or she graduates, so that you can assess his skills. Its much harder for a mechanical or civil engineer to do that, so for that reason you have to rely solely on the relevant university/college and the grades of the candidate.

Re:Coding interviews are stupid (ish) by tetromino_ on Tuesday May 07, 2024 @11:53PM (#40294163)
> Not really - in software people leave a bigger and more easily trackable track record than any other engineering field. From previous work projects/experience to open source projects/experience, from personal projects to the communities a person belongs to.

That only apply to software people who either (a) are getting paid to work on open source or (b) have enough spare time to work on open source as a hobby after hours. Option (b), in particular, usually implies having no children or other familial responsibilities.

Re:Coding interviews are stupid (ish) by rahkiin on Wednesday May 08, 2024 @02:36AM (#40295004)
And b also implies programming is also a hobby. For a lot of people it is their work. We can not filter on that as not many will be left to hire.
Re:Coding interviews are stupid (ish) by dclowd9901 on Wednesday May 08, 2024 @02:08AM (#40294844)
Nnno. You start from their experience and give the benefit of the doubt. As someone who’s been in software for 12 years, I don’t want to talk about writing algorithms. I want to talk about how to motivate 150 engineers to actually write code correctly or inspire a technical initiative.
Re:Coding interviews are stupid (ish) by valicord on Tuesday May 07, 2024 @08:45PM (#40293207)
To have good comparison/calibration between candidates, you should be asking the same question each time, so it can't be about the "problem the team is currently undergoing", because that's going to be something different every week/month.

In general however, of course, there is/should be a round of interview that covers architecture/system design. It's just that the coding interview is a different interview type, which gives a different kind of signal, which is still important. It doesn't replace architecture interview, it complements it.

Re:Coding interviews are stupid (ish) by godelski on Wednesday May 08, 2024 @05:19AM (#40295932)
> because that's going to be something different every week/month.

Why's that a problem? What you're going to be doing on the job is going to change at the exact same rate. But people also tend to talk about recent problems and those may be even a month old. Honestly, the questions are about seeing how the person would approach it. It is not about solving them, because you're going to be doing things you don't know the answers to beforehand anyways.

> It's just that the coding interview is a different interview type

For what reason? "Because"?

Re:Coding interviews are stupid (ish) by valicord on Wednesday May 08, 2024 @08:55AM (#40297583)
> Why's that a problem?

The first half of the sentence you're responding to answers this question already. Because you can't compare candidates fairly if you ask everyone a different question. Is a candidate who aced an easy question better or worse than a candidate who struggled with a difficult question?

> For what reason? "Because"?

What are you asking? Why is an interview where you ask about high level design different from an interview where you ask to write code? Isn't that like asking why an apple is different from an orange? They just are, by definition.

Re:Coding interviews are stupid (ish) by Salgat on Tuesday May 07, 2024 @09:03PM (#40293306)
If you talk shop with a mechanic, they're going to know pretty quickly if you actually know what you're talking about. In my experience, the same applies in our field.
Re:Coding interviews are stupid (ish) by mandevil on Tuesday May 07, 2024 @10:16PM (#40293714)
Half a dozen years ago in a conference talk, Joel Spolsky claimed credit for inventing these sorts of whiteboard interviews (with his Guerilla Guide to Interviewing), and that it had broken software engineering hiring.

https://thenewstack.io/joel-spolsky-on-stack-overflow-inclus...

Re:Coding interviews are stupid (ish) by dclowd9901 on Wednesday May 08, 2024 @02:17AM (#40294895)
FTA:

“I think you need a better system, and I think it’s probably going to be more like an apprenticeship or an internship, where you bring people on with a much easier filter at the beginning. And you hire them kind of on an experimental basis or on a training basis, and then you have to sort of see what they can do in the first month or two.”

Well, if he fucked it up, I don’t see any reason why his ideas can’t also fix it.

Re:Coding interviews are stupid (ish) by morgante on Wednesday May 08, 2024 @03:37AM (#40295334)
Unfortunately this only works for interns and new grads. Nobody experienced want to take a job on an experimental basis.
Re:Coding interviews are stupid (ish) by usrusr on Wednesday May 08, 2024 @04:05AM (#40295513)
And how would it scale to a number of candidates greater than one? A classroom full of competing peers? That's what talent shows are for.
Re:Coding interviews are stupid (ish) by godelski on Wednesday May 08, 2024 @05:17AM (#40295913)
Fortunately people with experience have resumes and are easier to tell if they're bsing their resume.

Fuck man, people do this with engineers who work on classified projects. You all are over thinking it. You're trying to hyper optimize for a function that is incredibly noisy and does not have optimal solutions.

Re:Coding interviews are stupid (ish) by OJFord on Wednesday May 08, 2024 @07:01AM (#40296583)
Aren't probationary periods pretty standard, in many/all industries and countries too not just software?
Re:Coding interviews are stupid (ish) by CogitoCogito on Wednesday May 08, 2024 @02:10PM (#40301226)
Yes and such a system makes hiring so much easier because mistakes cost much less. But the US ties things like healthcare to employment so a company that has a reputation for firing people after hiring them (however legitimate) would probably be one people would avoid. In Sweden, for example, I’ve found interviews so much more reasonable. Then again, I had healthcare there regardless of employment.
Re:Coding interviews are stupid (ish) by OJFord on Wednesday May 08, 2024 @03:30PM (#40301980)
Oh, I see. I'm in the UK, so more like Sweden; no experience of having healthcare tied to employment (other than optional private healthcare as a perk).
Re:Coding interviews are stupid (ish) by azangru on Wednesday May 08, 2024 @04:21AM (#40295592)
> Why is the software engineering interview wildly different from the traditional engineering interview

I am guessing here, but wouldn't a candidate for a traditional engineering role normally hold a college degree in a relevant field, so that part of quality assurance is expected to have been done by the college?

Re:Coding interviews are stupid (ish) by pseudalopex on Wednesday May 08, 2024 @01:13PM (#40300518)
Candidates for software engineering roles normally hold a degree in a relevant field.
Re:Coding interviews are stupid (ish) by tnnnnn on Wednesday May 08, 2024 @02:50PM (#40301613)
> if a senior person can't in 30/45 min of talking with someone figure out the general experience level then the problem is them, really.

Being able to evaluate a person is a difficult soft skill to learn. An interviewer cannot learn nor improve it over night nor months nor years. This is basically being good at reading a person. Not to mention an issue with bias that is highly subjective.

If an interviewer isn't good at this, the solution would still be to supplement your evaluation with a coding interview.

Re:Coding interviews are stupid (ish) by dennis_jeeves2 on Tuesday May 07, 2024 @07:17PM (#40292623)
> Also if a senior person can't in 30/45 min of talking with someone figure out the general experience level then the problem is them, really.

Actually most of them, including the really inexperienced juniors have 'figured' you out in less that 15 minutes, or at least they have decided whether to hire you or not in 15 minutes. But they have to put on a charade of being fair.

Also a 'white' older male is the least preferred even if he is smarter compared to all females and the minorities that are being interviewed as long as they are not terrible. Biases galore.

Re:Coding interviews are stupid (ish) by wanderlust123 on Tuesday May 07, 2024 @07:44PM (#40292810)
Got any evidence for the following claim:

“ Also a 'white' older male is the least preferred even if he is smarter compared to all females and the minorities that are being interviewed as long as they are not terrible. Biases galore.”

Re:Coding interviews are stupid (ish) by renewiltord on Tuesday May 07, 2024 @08:02PM (#40292914)
He's close. The real bias is against extremely good looking guys named Rene who are also way smarter and charismatic than everyone else. Terrible bias.
Re:Coding interviews are stupid (ish) by phlakaton on Wednesday May 08, 2024 @01:00AM (#40294480)
I dunno. "Rene" sounds a lot like "renege." Which probably means you'll sign on to a project and abandon it halfway through or something. Very sus.

(I wish I could say my early interviewing rubrics were any better than this. We have come a long way as a people, we Silly Valley programmers.)

Re:Coding interviews are stupid (ish) by Aeolun on Wednesday May 08, 2024 @09:37AM (#40297973)
That kinda makes sense, unless you want Rene to be your replacement.
Re:Coding interviews are stupid (ish) by spacebanana7 on Wednesday May 08, 2024 @11:00AM (#40298847)
Isn't that the definition of affirmative action? Which most companies claim to do (e.g Google [1]).

Admittedly Google also claims not to discriminate on the basis of protected characteristics, which is somewhat contradictory to the definition of affirmative action as positive discrimination [2].

[1] https://www.google.com/about/careers/applications/eeo/ [2] https://en.wikipedia.org/wiki/Affirmative_action

Re:Coding interviews are stupid (ish) by pseudalopex on Wednesday May 08, 2024 @01:33PM (#40300799)
The Wikipedia article did not define affirmative action as positive discrimination.
Re:Coding interviews are stupid (ish) by spacebanana7 on Wednesday May 08, 2024 @01:42PM (#40300913)
“Affirmative action (also sometimes called reservations, alternative access, positive discrimination or positive action in various countries' laws and policies)…”

It calls them the same thing

Re:Coding interviews are stupid (ish) by pseudalopex on Wednesday May 08, 2024 @01:48PM (#40300978)
No. Positive discrimination is a form of affirmative action in various countries' laws and policies. Positive action is another. Positive action is not positive discrimination. Paragraph 2 mentioned merely targeting encouragement for increased participation even if you did not know what positive action meant.
Re:Coding interviews are stupid (ish) by spacebanana7 on Wednesday May 08, 2024 @02:16PM (#40301301)
The text attests to both our interpretations.

1) By saying x is sometimes called y under some circumstances, the text implies x (Affirmative action) is equal to or a subset of y (Positive discrimination)

2) The second paragraph also suggests examples of affirmative action that wouldn’t constitute positive discrimination

Re:Coding interviews are stupid (ish) by pseudalopex on Wednesday May 08, 2024 @02:24PM (#40301374)
The text would support your interpretation if the article ended after the 1st sentence. And the 1st sentence did not mention positive action.
Re:Coding interviews are stupid (ish) by Tainnor on Wednesday May 08, 2024 @12:42PM (#40300143)
> Also a 'white' older male is the least preferred even if he is smarter compared to all females and the minorities that are being interviewed as long as they are not terrible. Biases galore.

I will agree that ageism is a thing, but 90% of all of my coworkers (who were software engineers) have been white males, so I cannot at all agree with this take otherwise.

Re:Coding interviews are stupid (ish) by lmm on Tuesday May 07, 2024 @06:53PM (#40292460)
> Also if a senior person can't in 30/45 min of talking with someone figure out the general experience level then the problem is them, really.

OK take it as read that your posturing has succeeded and we all agree that you're a brilliant interpersonal genius and the rest of us are all useless chumps. What then? The rest of us still need to interview and make hiring recommendations. Or are you suggesting that employers should fire anyone who lacks your magical talent?

Re:Coding interviews are stupid (ish) by xandrius on Wednesday May 08, 2024 @03:01AM (#40295143)
Why would you read that?

I just mean that if you put 2 experienced people talking about a topic they both know, it should be pretty easy for both (or at least the interviewer) to get a rough understanding of the level of the interviewee.

Re:Coding interviews are stupid (ish) by lmm on Wednesday May 08, 2024 @07:43PM (#40303860)
> I just mean that if you put 2 experienced people talking about a topic they both know, it should be pretty easy for both (or at least the interviewer) to get a rough understanding of the level of the interviewee.

Well, in my experience it's not, at least not in a "hostile" context. Most technical people are used to assuming good faith in technical conversations, and there are some very smooth bullshitters around; it's easy to construct a verbal facade that only falls apart once you ask someone to actually code.

Re:Coding interviews are stupid (ish) by MichaelZuo on Thursday May 09, 2024 @07:11PM (#40313855)
Anyone who can't see through the 'verbal facade' is not that good. They may be very smart, but not at a bonafide genius level.
Re:Coding interviews are stupid (ish) by baobabKoodaa on Wednesday May 08, 2024 @08:39PM (#40304137)
It's not. You will find plenty of examples in this very thread.
Re:Coding interviews are stupid (ish) by devbent on Tuesday May 07, 2024 @05:03PM (#40291445)
>I still don't get why such questions are even asked as most jobs I've ever had not even remotely touched those and I've touched quite a few industries, technologies and types of companies.

I've had to work on tree traversal stuff multiple times in my life, anything low level GUI related will work with trees a ton.

I've also had to work with hash tables directly, and with memory caching layers.

I really should learn to write a proper parser, as I've had to write parsers multiple times now and they are always an ugly hack job.

Re:Coding interviews are stupid (ish) by josephg on Tuesday May 07, 2024 @05:32PM (#40291751)
Yep. In a project I’m working on at the moment (collab text editing), I’ve implemented 2 different b-trees, a skip list, 2 custom file formats and a dozen or so algorithms which do various graph traversals.

I get that this is uncommon, but if you scratch beneath the surface, most software (browsers, databases, compilers, OSes) are full of this stuff.

Even while I was consulting stuff like this would come up. At one company we were using a custom graphql wrapper around a CMS, and it was missing some functions we needed. The wrapper was implemented like a compiler from the cms’s data format to a set of query functions. Fixing it to do what we needed it to do was really hard and broke my brain a bit. But I did it. And I wouldn’t have been able to without understanding compilers and algorithms.

You can spend your whole career walking the beaten path adding features to apps and websites, and never traversing a tree at all. There’s lots of work like that out there. But if you ever want to go deeper, you’ve gotta understand data structures and algorithms. I know not everyone is suited to it, and that’s fine. But there’s definitely a reason big tech asks about this stuff.

Re:Coding interviews are stupid (ish) by sanderjd on Tuesday May 07, 2024 @06:10PM (#40292136)
> But if you ever want to go deeper, you’ve gotta understand data structures and algorithms.

I don't think this is quite right. I think it's more like:

If you ever want to go deeper, you've gotta be able to recognize when the problem you're solving fits a pattern for which good data structures and/or algorithms exist, and you've gotta be able to find, understand, and apply good reference material.

Solving this "knowing what you don't know" problem is the best and most important role of formal education, in my opinion. It's not as important to know a topic as it is to know that it exists, and some of the basic terminology necessary to get started researching it further.

Re:Coding interviews are stupid (ish) by josephg on Tuesday May 07, 2024 @07:45PM (#40292825)
Yeah I think that’s what I mean by “understand data structures and algorithms”. Or, I think your description is exactly what a useful working understanding looks like. You should know broadly what’s out there so if a problem comes up, you know where to look. (Would a hash table help? A priority queue? etc). And you should be skilled enough such that if you decide to use a red-black tree, you can find a good library or implement it yourself - with access to the whole internet as reference material. (And test it).

Nobody expects you to memorise a text book. But if an API gives you a list of items and you want to count the occurrences of each item, you should be able to figure out how to do that. And ideally in less than O(n^2) time if necessary. It’s surprising how many otherwise productive coworkers I’ve had who struggle with stuff like that.

Re:Coding interviews are stupid (ish) by sfn42 on Wednesday May 08, 2024 @06:04AM (#40296210)
I think about time complexity and DSA all the time when programming. My personal view is that the people who claim it is unnecessary don't understand it and probably would be better off if they did.

I've seen lots of code that would be better if the author knew some basics. For example a report that took over half an hour to generate, I made a one-line change and cut the time to a few minutes - pretty sure I could have made it practically instant if I had taken the time to go through all of it.

And it's not like I'm some genius, I just understand the stuff I've been taught. Pretty sure most of my peers are supposed to have learned the same stuff, I think they just didn't really understand it.

Re:Coding interviews are stupid (ish) by sanderjd on Wednesday May 08, 2024 @10:04AM (#40298255)
In my experience, whether this is top of mind has a lot more to do with what people work on and with what tools than with level of understanding. For instance, in your example:

> For example a report that took over half an hour to generate, I made a one-line change and cut the time to a few minutes

In essentially all the work I've done in my career, this would be the result of expertise in SQL and the relational model, not in data structures and algorithms. I don't recall ever working on reporting code that isn't a dumb pipe between a SQL query and a mature library for writing CSV (or parquet or whatever). Sure, there are tons of data structures and algorithms on both the database server and client side, but that's not what I'm working on.

And I think this is pretty typical for people who mostly build "applications", that expertise in tools is more of a value-add than expertise in data structures and algorithms.

But having said that, I do agree with you that everyone benefits from these kinds of "fundamentals". Not just this, but also other fundamentals like computer hardware and systems, networking, etc. I think fundamentals are very useful, while also thinking that many people are good at their jobs without them.

Re:Coding interviews are stupid (ish) by sfn42 on Wednesday May 08, 2024 @10:30AM (#40298529)
In my case the processing was happening in our backend. I can't remember exactly why it couldn't be SQL, actually it's possible it could have been sql. But changing it to sql would have been a bigger change and this wasn't really the task I was working on, I just happened across it while doing something else.

I have also seen and fixed similar travesties where someone iterates through a huge list making one query per element, where it was fairly trivial to rewrite it to a swl join.

Point is just that understanding what you're doing is is valuable and in my mind DSA is a fundamental part of understanding what you're doing. Anyway I think we agree :)

Re:Coding interviews are stupid (ish) by sanderjd on Wednesday May 08, 2024 @12:44PM (#40300167)
Unsurprisingly we've now reached the perennial "is premature optimization actually premature" of it all :)

Would it have been better for the person who originally wrote that just-iterate-the-list implementation to have been thinking about data structures and algorithms that would perform better? Opinions on this vary, but I tend to come down on the side of: Optimize for human productivity (for both the writer and the many future readers) first, then profile, then optimize any bottlenecks.

My assumption when I come across something that turns out to be a performance bottleneck that is easy to fix with a better data structure or algorithm, is that the person who wrote that was consciously doing a simple implementation to start, in lieu of profiling to see where the actual bottlenecks are.

But I also understand the perspective of "just do simple performance enhancements up front and you won't have to spend so much time profiling to find bottlenecks down the line". I think both philosophies are valid. (But from time to time I do come across unnecessarily complicated implementations of things in code paths that have absolutely no performance implications, and wish people wouldn't have done that.)

Re:Coding interviews are stupid (ish) by josephg on Wednesday May 08, 2024 @09:16PM (#40304319)
> Optimize for human productivity (for both the writer and the many future readers) first, then profile, then optimize any bottlenecks.

I don't agree. The problem with this approach is that there are some optimisations which require changes to how data flows through your system. These sort of refactorings are much more difficult to do after the fact, because they change what is happening at the abstraction / system boundaries.

Personally, my approach is something like this: Optimise first for velocity, usually writing as little code as possible to get something usable on the screen. Let the code be ugly. Then show people and iterate, as you feel out what a better version of the thing you made might look like - both internally (in code) and externally (what you show to humans or to other software systems). Then rewrite it piece by piece in a way thats actually maintainable and fast (based on your requirements).

Re:Coding interviews are stupid (ish) by sanderjd on Thursday May 09, 2024 @07:28AM (#40307077)
I did mention that people disagree on this :)

I've moved both ways along the continuum between these perspectives at different times. I don't think there is a single correct answer. I'm at a different place than you on it currently, but who knows where I'll be in a year.

Re:Coding interviews are stupid (ish) by josephg on Thursday May 09, 2024 @09:52AM (#40308260)
Totally fair :) I have the same relationship with static typing. Right now I couldn't imagine doing serious work in a dynamically typed language, but who knows what I'll think in a year too. From where I'm standing now, it could be ghastly.
Re:Coding interviews are stupid (ish) by sfn42 on Thursday May 09, 2024 @09:36AM (#40308096)
Actually I think you're misunderstanding me. I'm not saying you should profile and optimize all the code you write, I'm saying that a basic understanding of algorithms, data structures and complexity analysis allows you to write better code without any extra tools. I didn't profile this report to find out why it took 30+ minutes to run. I just happened across some code, read it, saw that it was essentially two nested loops iterating through two huge (50-80k elements each) lists matching items by name, changed it to use a dictionary instead of the inner loop and that was that.

It's a trivial change, it wouldn't have taken any longer to write this the first time around. There is no excuse for doing this, it's just a dev who doesn't understand what they're doing.

That's my point. Understanding these fundamentals allows you to avoid these types of pitfalls and understand when it's okay to write something inefficient and when it isn't.

Re:Coding interviews are stupid (ish) by sanderjd on Wednesday May 08, 2024 @08:36AM (#40297348)
I agree that I think this is what most experienced people mean when they think of understanding data structures and algorithms.

The problem is that this kind of understanding is very rarely what coding interviews check for. They either don't check for this at all - instead just making sure people can write simple code while reasoning through a simple problems under time pressure - or they check for whether people memorized a textbook, looking for a specific non-obvious data structure and algorithm.

What I try to do, because I think it almost ticks all the boxes without asking for memorization, is ask questions that start with the simple "can you program at all" part, with follow up parts that end up in a place where we can have a conversation (without implementation) about how different tradeoffs could be improved, which often leads to discussing what useful prior art might exist.

Unfortunately I think this still has very high false negative issues. I've worked with people who prove to be perfectly capable of noticing when an appropriate data structure will make a big difference in their actual work, without that coming out in their interview.

Re:Coding interviews are stupid (ish) by josephg on Wednesday May 08, 2024 @09:09PM (#40304282)
My recommendation is to have a lot of different stuff in an interview, so you aren't making a final judgement on someone over any individual part of the interview. That means the candidate can stuff up one or more parts of the interview, and you can still get good signal.

For example, do all the things you suggest. Get them to write some simple code. Talk to them about an algorithm problem. Also, give them some simpleish code with some failing unit tests and ask them to debug the code. (This requires some prep, but its a fabulous assessment to do.) Ask them about their prior work. Just do everything you can think of, and don't give any specific part of the interview too much time or attention.

In my experience, this gives candidates a lot more opportunities to impress me. I don't really care if one person on our team is particularly weak on data structures. Its kinda better if we have someone who's an absolute gun at debugging, and someone else who's amazing at data structure work. That creates a better team than if everyone is impressive in the same way.

Re:Coding interviews are stupid (ish) by sanderjd on Thursday May 09, 2024 @09:36AM (#40308101)
I mean, I agree, but this sounds like it could easily be a 3 hour interview :)
Re:Coding interviews are stupid (ish) by camgunz on Wednesday May 08, 2024 @10:13AM (#40298343)
But this isn't what the leetcode interview tests for. Reversing a binary tree, or figuring out how to arrange the parking lot to fit the most cars or whatever isn't a working understanding, it's essentially memorization. Being able to memorize something like that takes intelligence and dedication, so it does a pretty good job selecting for that, but it also filters out a lot of people who for good and valid reasons don't want to spend hours and hours studying. Not even doctors/lawyers do this: they do it exactly once and never again.
Re:Coding interviews are stupid (ish) by josephg on Wednesday May 08, 2024 @09:28PM (#40304372)
> isn't a working understanding, it's essentially memorization

Boring questions that you've seen before are memorization. But there's thousands of interesting questions out there that will never show up on leetcode.

Two examples from times I've been interviewed:

- One time my interviewer gave me about 15 lines of C code that used multiple threads and asked me if it was threadsafe (it wasn't). Then he gave me some threading primitive I hadn't seen before and asked me to fix it. Well, I had no idea what the threading primitive was so I was a bit stuffed. I asked him to explain it and he did, and then I (successfully) used it to solve the problem. He wanted to hire me, saying the fact that I hadn't seen that primitive before and still managed to figure out the answer within the interview impressed him more than anything else.

- Another time I was asked some more classic algorithm problem, where (in hindsight) the answer was clearly to use a priority queue. I didn't think of that, and under pressure I came up with some weird alternative in the interview. The interviewer messaged privately after the interview - he'd gone back to his desk and spent the next hour trying to figure out if my hairbrained idea would work, and he was as surprised as I was to realise it would. I told him I'd realised a priority queue was a good approach as soon as I walked out the door of the interview. I was offered the job.

I've never "crammed leetcode problems" in my life. I don't think thats what any interviewers are looking for. They're looking for people who can think on their feet and use DSA to solve real problems. AFAIK algorithm puzzle interviews predate leetcode. Algorithms have been used since the very early days of google and (I think) microsoft.

Re:Coding interviews are stupid (ish) by camgunz on Thursday May 09, 2024 @06:09PM (#40313434)
There's not a lot of difference between the algorithm interview and the leetcode interview--leetcode is just a story problem around some kind of basic algorithmic problem.

I've done multiple interviews where they use some site and you're expected to plow through 10 questions or whatever in 60 minutes. You can subscribe to the site to practice. Gazillions of employers use this site or one like it.

Re:Coding interviews are stupid (ish) by Aeolun on Wednesday May 08, 2024 @09:41AM (#40298012)
If I want to go deeper. I'll have to understand the trees _at that time_.

Not now, when I'm just re-exporting ESM node packages as CJS so our legacy system can work with them

Re:Coding interviews are stupid (ish) by DanielHB on Wednesday May 08, 2024 @10:23AM (#40298442)
Traversing trees recursively is so trivial. I have to do this kind of stuff all the time. Just last week actually (in some frontend code no less).

Graph search and B-trees I haven't done professionally since I left college though. But it is still good to know the theory when dealing with databases.

A lot of these algorithms is more about knowing their characteristics than knowing how to implement them. For example cryptographic algorithms can be complex, but having a good lib and knowing each crypto algorithm characteristics is usually good enough for almost everyone.

Re:Coding interviews are stupid (ish) by pseudalopex on Tuesday May 07, 2024 @05:47PM (#40291915)
> I've had to work on tree traversal stuff multiple times in my life, anything low level GUI related will work with trees a ton.

How many times did you have to write tree balancing code with no reference materials?

Re:Coding interviews are stupid (ish) by Paul-Craft on Tuesday May 07, 2024 @06:05PM (#40292096)
Bingo. You forgot to add "with someone literally looking over your shoulder," though.

I've written AVL trees, B-trees, red black trees, and a bunch of other things people have named here. But, right now, without looking at any references, I couldn't even tell you how to balance an AVL tree, much less sit down and write out code for it.

Re:Coding interviews are stupid (ish) by tharkun__ on Tuesday May 07, 2024 @10:39PM (#40293830)
That's why these interviews select for recent grads. Or leet code studiers.

Yes we've all done this in university. We've learned the theory. We had to write an implementation of this or that algorithm in whatever language the university made us use.

And we also know that great minds took a long time to come up with these in the first place. These "basic algorithms" are not something you think up in 5 minutes after first learning that computers exist or that some problem exists.

Bin packing algorithms are another such thing. Sure ask me interview "questions" like "please prove whether P=NP".

Eff off Mr. or Mrs. interviewer!

Re:Coding interviews are stupid (ish) by devbent on Tuesday May 07, 2024 @10:26PM (#40293766)
The exact same number of times I've been asked that during an interview: 0!

I do ask tree traversal questions when interviewing because I've had to traverse a lot of trees so I think being able to do an in order traversal of an already sorted binary tree (which is only a handful of lines of code) is fair game.

Re:Coding interviews are stupid (ish) by jjgreen on Wednesday May 08, 2024 @05:50AM (#40296107)
Just the once? [maths joke]
Re:Coding interviews are stupid (ish) by pseudalopex on Wednesday May 08, 2024 @02:43PM (#40301552)
In order traversal is simpler and more practical than the questions xandrius asked about.
Re:Coding interviews are stupid (ish) by whstl on Tuesday May 07, 2024 @05:25PM (#40291688)
I disagree with some of this.

At some of my past jobs and the current one, this kind of algorithmic knowledge was important to build features that were differentiators in the market. As much as people love to pretend, not every single possible solution is in a library. Sometimes you're the one building the library.

It doesn't have to be leetcode, but candidates should at least be able to produce some code that doesn't come from the README of their favourite framework.

Also, talking for 30/45 mins can be enough, but it produces false positives when you have people coaching candidates. I've had people completely acing interviews that it felt like the perfect candidate. Well, it was rehearsed. When I asked for a fizz-buzz type question they completely messed it up.

Re:Coding interviews are stupid (ish) by prisenco on Tuesday May 07, 2024 @08:24PM (#40293063)
| this kind of algorithmic knowledge was important to build features that were differentiators in the market

I agree with this, but with the caveat that it's extremely rare to come up with a truly novel algorithm in a production environment. Those almost always come out of academia or R&D departments.

So is it important that people remember how to implement algorithms from scratch? Or is it important that they know when to identify when an existing algorithm would be useful?

For instance, if I see that something is suspiciously like a Stable Marriage Problem, do I need to remember how to implement the Gale–Shapley algorithm? Or is just the ability to recognize the problem as something that has a particular solution 90% of the way there? I would argue yes.

That said, I'm not sure how to test this is an interview setting.

Re:Coding interviews are stupid (ish) by whstl on Wednesday May 08, 2024 @06:23AM (#40296322)
You don't need something "truly novel" to have a market advantage. Far from it.

You just need something that is not ready made.

Remember that not every algorithm is neatly package-able, or has a cool name like "Stable Marriage Problem" or "Levenshtein Distance".

Also: maybe your advantage is implementing some of those in a new language. Maybe your advantage is implementing one of those in SQL! Maybe you have a tree-like or graph-like structure, and you need to do something with it without having to export into some format expected by certain packages. Knowing what to implement is important too.

Also, those interviews are often testing for something even simpler than those fancy algorithms.

Nobody uses Fizz Buzz or Recursive Fibonacci daily, but you might need to implement something that is beyond creating views/models/controllers in your favourite MVC framework.

This is what the test is checking for: coding beyond what's on the README of your framework.

Re:Coding interviews are stupid (ish) by paulddraper on Tuesday May 07, 2024 @05:00PM (#40291413)
> I still don't get why such questions are even asked

The thesis is not that these exercises are representative of work but rather predictive of performance.

Sales has a similar phenomenon with sports. While there is no athleticism involved in selling, many believe history in competitive sports to be a positive predictor of sales success.

---

You can reasonably argue whether leetcode accomplishes this well or poorly, but...

Always remember that purpose of an interview (for an employer) is to predict performance. So you are looking for the resume screening+interview process that most accurately assesses that.

Re:Coding interviews are stupid (ish) by xandrius on Tuesday May 07, 2024 @05:05PM (#40291473)
So you're saying that someone wasting their time studying leetcode to pass a stupid game is a good indicator?

I would almost believe the opposite: if you actually pass those tests with flying colours, it shows me that you believe you needed to do that to be hired, while someone who's actually experienced would never in a million years step down so low.

Re:Coding interviews are stupid (ish) by josephg on Tuesday May 07, 2024 @05:40PM (#40291839)
I believe skill at “leetcode problems” is predictive of general programming skill. Someone who can solve leetcode problems can almost certainly learn css. But, clearly from reading comments here, not the other way around.

Personally I love leetcode style problems. They’re fun. And useful - I use this stuff in my job constantly.

Re:Coding interviews are stupid (ish) by mewpmewp2 on Tuesday May 07, 2024 @06:02PM (#40292068)
I would be scared you are overengineering and optimising things though. I have seen people implementing complex paradigms and weird optimisations instead of writing simple code just to make sure they are perfectly optimising.

E.g. optimising client side code where N is likely never to be above 300, but instead of few simple lines, write a complicated solution to make sure it can scale to billions and beyond.

I would take any problem solving energy and spend it on side projects instead of doing leetcode. I do like those exercises, but I enjoy building new things more and which gives me practical experience which I think is more important.

Re:Coding interviews are stupid (ish) by josephg on Tuesday May 07, 2024 @06:06PM (#40292103)
Skill gives you the gift of choice. You know how to write it either way around and it’s up to you to decide. Being able to correctly decide when to hack something inefficient together and when to optimise is another skill issue. It’d make a good interview question, that.
Re:Coding interviews are stupid (ish) by mewpmewp2 on Tuesday May 07, 2024 @06:12PM (#40292157)
Yeah, but leetcode does not necessarily give you that skill or even prove it. And a talented problem solver would be able to find optimal and practical solutions when they are required and are not premature even without doing leetcode.

You might get false positives as well. E.g. you get people who are tunnel visioned on leet code, cracking the coding interview and other common system design books, they know all the answers, but then they completely lack common sense day to day and it can be hard to test for that if you are solely focusing on leetcode.

Re:Coding interviews are stupid (ish) by josephg on Tuesday May 07, 2024 @07:34PM (#40292739)
Of course. I’ve interviewed over 400 people in my career and I’ve never directly asked someone if they’ve done leetcode problems. I don’t care about actual leetcode. Looking at someone’s progress on leetcode as a replacement for an interview would be a terrible idea.

As an interviewer, I care about their skills - technical skills (like debugging ability and CS knowledge), social skills (can we talk about our work together?) and judgement. Your ability to understand data structures and algorithms is signal, but there is a lot more to a good candidate than knowing how to make a bit of code run fast. Knowing when to make code fast is, as you say, just as important.

Re:Coding interviews are stupid (ish) by paulddraper on Tuesday May 07, 2024 @05:16PM (#40291597)
I didn't state my personal opinion above, but yes I have seen leetcode aptitude to positively correlate with day-to-day problem solving.
Re:Coding interviews are stupid (ish) by xandrius on Tuesday May 07, 2024 @05:19PM (#40291637)
If your company uses leetcode to filter out employees then you are a leetcode team with your internal levels and ranks, not at all representative of the whole population of skilled IT people.
Re:Coding interviews are stupid (ish) by josephg on Tuesday May 07, 2024 @05:45PM (#40291894)
How would you, or anyone, know if your career is representative of the field?

I’m sure plenty of people spend their career never learning or using data structures and algorithms knowledge. But I suspect plenty of people spend their career using this stuff all the time. Eg people who work in databases, compilers, operating systems, video games, ai, crypto currencies, and so on.

Re:Coding interviews are stupid (ish) by pseudalopex on Tuesday May 07, 2024 @05:59PM (#40292030)
I have seen Goodhart's law.
Re:Coding interviews are stupid (ish) by pawelmurias on Wednesday May 08, 2024 @05:36AM (#40296024)
It's a good indicator for someone will to jump through arbitrary hoops to get promoted at a big corp: write all the paper work as design docs, get all the promos requirements and make sure all the weird business requirements of corpo customers are met. If you are not willing to "step down so low" you a perfect example of the someone who they want to filter out.
Re:Coding interviews are stupid (ish) by Paul-Craft on Tuesday May 07, 2024 @06:10PM (#40292141)
> Sales has a similar phenomenon with sports. While there is no athleticism involved in selling, many believe history in competitive sports to be a positive predictor of sales success.

This is interesting. I had never heard this before. Is there any research on this? For that matter, is there any actual research showing that leetcode-style interviews actually do predict performance? If so, do they do so any better or differently than an IQ test?

Re:Coding interviews are stupid (ish) by sgerenser on Tuesday May 07, 2024 @10:51PM (#40293887)
I recall reading that leetcode style questions are basically just a standin for an IQ test, except with plausible deniability for being directly applicable to the job.
Re:Coding interviews are stupid (ish) by pseudalopex on Wednesday May 08, 2024 @01:36PM (#40300837)
I saw this claim. I never saw data.
Re:Coding interviews are stupid (ish) by hintymad on Tuesday May 07, 2024 @05:08PM (#40291503)
> The thesis is not that these exercises are representative of work but rather predictive of performance.

Well said. Just like in college, calculus (not analysis) and organic chemistry are used as filter courses. Of course, why the two courses, especially organic chemistry, are so hard to American students is another topic. I personally think that it shows the failure of the education system of the US.

Re:Coding interviews are stupid (ish) by hintymad on Tuesday May 07, 2024 @04:53PM (#40291340)
Personally I think such questions have three values:

- Future proof. Unless I work for an outsourcing company, sooner or later I will want to push the envelope, or so I hope I do. And to push the envelop, one needs good CS fundamentals (maybe there are some exceptions in some specialized field). Think about React. It's a JS framework, yet to invent it one needs to understand at least compiler and graph.

- Geekiness/talent filter. The same reason that the nascent Google and Microsoft and any elite companies like Jane Street asked Putnam questions, Martin Gardner questions, ICPC questions, and clever probability puzzles. Whether it's a good idea is debatable, but at least those companies want to have such type of people and they were hugely successful. Note the word filter: people who pass the interview may not be good, but failing the interview means the candidate may not be smart or geeky enough. Again, I'm not endorsing the idea but just exploring the motivation of the interview policies.

- Information density. Assuming a company does want to time box a coding interview in an hour, it will be hard to come up with realistic question without spending too much time on the context. On the other hand, it's relatively easy to come up with a data structure/algorithm question that packs enough number of abstractions and inspection points to examine one's programming skill.

Re:Coding interviews are stupid (ish) by davidw on Tuesday May 07, 2024 @05:19PM (#40291636)
> Think about React. It's a JS framework, yet to invent it one needs to understand at least compiler and graph.

Are you hiring people to create new JS frameworks, or to use an existing one?

Re:Coding interviews are stupid (ish) by hintymad on Tuesday May 07, 2024 @05:48PM (#40291925)
Well, I guess the example is more confusing than clarifying. I used that for a case of pushing the envelope. When Facebook needed a better solution for their feeds, they invented Reactive, and I was saying that one would need to know compiler to build JSX and need to graph to build the optimized virtual DOM. Yes, nowadays we just hire Reactive users, but my point is that in the future we may have another moment that we need to invent something, and as a company founder I sure would like to hire the author of Reactive or the like.
Re:Coding interviews are stupid (ish) by paulddraper on Tuesday May 07, 2024 @05:21PM (#40291654)
To use an existing one.

And tools are best used when they are understood.

Re:Coding interviews are stupid (ish) by davidw on Tuesday May 07, 2024 @05:28PM (#40291710)
Hiring, like many things - including engineering - is about tradeoffs.

Is someone more knowledgeable "better"? Sure. But sometimes it's about getting a specific thing done, and if you're hiring someone to improve a web thing that uses React, maybe you don't need someone who understands compilers and the kernel and how the underlying hardware works and all that. Maybe you can spend a bit less and get someone who will do a perfectly adequate job.

Re:Coding interviews are stupid (ish) by Paul-Craft on Tuesday May 07, 2024 @06:13PM (#40292173)
I don't know anything about quantum mechanics. Does that mean I don't understand how computers work?
Re:Coding interviews are stupid (ish) by paulddraper on Tuesday May 07, 2024 @08:03PM (#40292920)
The common advice is to understand one level above and one level below where you operate.

For example:

If you build computers, you should understand how the individual components are implemented.

If you build computer components, you should understand materials science and electromagnetism.

If you study electromagnetism, you should understand quantum mechanics and relativity.

Re:Coding interviews are stupid (ish) by bjablonski on Tuesday May 07, 2024 @05:34PM (#40291774)
How many react developers understands compilers & graphs? I'd wager that it's way below 10%.
Re:Coding interviews are stupid (ish) by mewpmewp2 on Tuesday May 07, 2024 @06:25PM (#40292256)
Also why do you need knowledge on compilers and graphs to create React?

Firstly, React is not compiled. Secondly the graph or tree or whichever aspect can come naturally when you come up with the idea of how it would be best to maintain JS apps.

In fact most important experience should have been grinding put tons of unmaintainable JS apps to come up with something like that.

Re:Coding interviews are stupid (ish) by paulddraper on Tuesday May 07, 2024 @08:56PM (#40293265)
I wouldn't argue with that.
Re:Coding interviews are stupid (ish) by OJFord on Tuesday May 07, 2024 @08:37PM (#40293149)
> Also if a senior person can't in 30/45 min of talking with someone figure out the general experience level then the problem is them, really.

Or it's not their call, theirs is just to work with them after.

Re:Coding interviews are stupid (ish) by blindriver on Tuesday May 07, 2024 @05:24PM (#40291674)
Unless you have data to show that your "different way" produces better results, your idea sounds exactly the same as every other idea, which is basically garbage.

Lots of people have lots of ideas on what makes a great interview question, but none of them are backed by data. LeetCode-style algo questions USED to be an indicator of intelligence as per Google's investigation, but now it's so heavily gamed that I doubt there's any signal behind it anymore.

Someone needs to spend time and effort and money and actually do random controlled tests to see if people who pass a particular type of test actually make good employees. But so far no one has done this, except Google as far as I've seen. But even now, I think there's no evidence that even algorithm questions are any indicator, given what I've seen.

Re:Coding interviews are stupid (ish) by godelski on Tuesday May 07, 2024 @05:36PM (#40291796)
> Unless you have data to show that your "different way" produces better results, your idea sounds exactly the same as every other idea, which is basically garbage.

Do you have evidence that the standard coding interview works? (There's evidence that it doesn't)

I'm with you that the claim might be too strong to say "this is the way" but that's because I'm of the (very strong) opinion that interviewing is an extremely fuzzy process and there are no clear cut metrics to measure one's abilities in a significantly meaningful way. a̶l̶l̶ ̶m̶o̶d̶e̶l̶s̶ ̶a̶r̶e̶ ̶w̶r̶o̶n̶g̶ ̶b̶u̶t̶ ̶s̶o̶m̶e̶ ̶a̶r̶e̶ ̶u̶s̶e̶f̶u̶l̶ There are useful interviewing methods but certainly not "the best" method. Trying to just mark checkboxes only leads to mediocre results. The reason we're generally okay with this is because we more often than not don't need rockstars and it doesn't make sense to put a lot of time and energy into this process when we get sufficient results through lazy methods.

FWIW, a typical (non-software) engineering job really just involves high level discussions like the OP suggests but even without the implementation. It is generally about seeing how the person thinks/problem solves and looking at problems they solved in the past. It isn't resource intensive and good enough. Because truth is, you don't know what someone is like as an employee until they are an employee (and even then this is fuzzy)

Re:Coding interviews are stupid (ish) by blindriver on Tuesday May 07, 2024 @05:53PM (#40291961)
> Do you have evidence that the standard coding interview works?

No, I think that they are all garbage.

The only way to really hire is by having a vibe check to see if they are someone the team wants to work with, making sure that the person seems competent and has a reasonable chance of being very productive, and then hiring them quick. Give them a month and if they don't seem like a good fit, then fire them, with 2 months severance.

This is the only way I've seen that will produce a great team quickly, by hiring quickly and firing quickly. This is similar to what Netflix does but they also pay top of market which not too many companies can afford, but it produces the best results.

Re:Coding interviews are stupid (ish) by godelski on Tuesday May 07, 2024 @07:22PM (#40292659)
Seems we're on the same page: https://news.ycombinator.com/item?id=40291828

> Give them a month and if they don't seem like a good fit, then fire them, with 2 months severance.

And this! I think this is quite effective and efficient. You aren't wasting anyone's time and making sure the person has adequate time to find their next income source. It immediately makes me respect you and I think would build high employee loyalty.

Re:Coding interviews are stupid (ish) by valicord on Thursday May 09, 2024 @12:57AM (#40305430)
As long as you want to only hire people who don't have an existing job or competing offers.
Re:Coding interviews are stupid (ish) by YZF on Tuesday May 07, 2024 @10:53PM (#40293898)
But we're talking about "seems competent and has a reasonable chance of being very productive". That's why you're interviewing in the first place. If you don't ask them to demonstrate their competence in any way how do you know they're competent? If they can't "produce" anything during an interview (even something trivial) how do you know they'll be productive? Assuming a complete stranger with no references you can trust.

A month might be too short of a time for certain roles. I think people would be hesitant to take a risk with you if they know this is your policy. I'd would say that at any point where someone is clearly not a fit they should be let go. You might know after a month (if they're terrible), you might know after 6 months, they might progress initially but stall. I think e.g. with new grads it's going to take a little longer in general since they have a pretty long growth trajectory.

Re:Coding interviews are stupid (ish) by Paul-Craft on Tuesday May 07, 2024 @06:18PM (#40292209)
> LeetCode-style algo questions USED to be an indicator of intelligence as per Google's investigation, but now it's so heavily gamed that I doubt there's any signal behind it anymore.

Where can I find the data on this?

Re:Coding interviews are stupid (ish) by hintymad on Tuesday May 07, 2024 @05:49PM (#40291932)
All fair points, and I agree with you on rigorous experiments. For now we are talking about only intuitions.
Re:Coding interviews are stupid (ish) by YZF on Tuesday May 07, 2024 @10:47PM (#40293863)
Don't discard good anecdotal evidence because there's no proper randomly controlled trial. If you're experienced/senior in the industry you probably worked with dozens of developers closely, with hundreds less closely, you've seen many projects and designs, you've interviewed and was involved in the hiring of dozens of people.

This random controlled trial you're talking about is so hard to do because there are infinite confounders. How do you even measure success? After how long? How do you separate politics from technical ability?

In reality people above a certain bar are able to make some contribution to most projects. You can't and don't need to staff every project with superstars. The superstars are rare but are not hard to identify. They'll have the track record, reputation and the skills.

Another thing to consider is that the best outcome of interviews depends on the quality of the pipeline into those interviews. If you can't get good employees to apply you won't get good employees hired. Pay well and build a company that people want to work for, and then your hiring is going to be easier.

Re:Coding interviews are stupid (ish) by niccl on Tuesday May 07, 2024 @11:36PM (#40294086)
I guess we could make some reasonable evidence about hiring approaches based on HN hirers: What percentage of hires using your favourite technique/interview question do you think worked out as a success?

My rate is around 50% good, 50% I wish I hadn't hired.

Anyone else want to fess up?

Re:Coding interviews are stupid (ish) by YZF on Thursday May 09, 2024 @09:30PM (#40314698)
I've had a much better rate than that. What does "wish you hadn't hired" mean exactly. Did you completely misjudge them or did you have an idea of what you're getting and still hired them. To be way off on 50% of interviews feels like way too high failure rate.
Re:Coding interviews are stupid (ish) by jjtheblunt on Tuesday May 07, 2024 @05:54PM (#40291976)
What is ICPC?
Re:Coding interviews are stupid (ish) by pseudalopex on Tuesday May 07, 2024 @06:01PM (#40292055)
International Collegiate Programming Contest
Re:Coding interviews are stupid (ish) by jjtheblunt on Tuesday May 07, 2024 @06:35PM (#40292322)
Thanks
Re:Coding interviews are stupid (ish) by hintymad on Tuesday May 07, 2024 @08:09PM (#40292968)
And even for Google, leetcode has become noise because people simply cram the questions. When Microsoft started to use leetcode-style interviews, there were no interview site. So, people who aced the interviews were either naturally talented or were so geeky that they devoured math and puzzle books. Unfortunately, we have lost such signals nowadays.
Re:Coding interviews are stupid (ish) by belmarca on Tuesday May 07, 2024 @08:39PM (#40293174)
Your "solution" is just another coding interview.

A typical engineer doesn't begin their day thinking "I should implement a streaming algorithm" out of nowhere (and if they do, they can always seek reference). They analyze a (typically underspecified) problem, figure out the constraints, and then start thinking about a solution. Note that both processes, analysis and solution, can take hours, days, weeks or months!

Coding interviews have everything backwards by providing synthetic solutions to mostly out-of-context problems.

For example, interviewers could:

- Share some portion of a codebase with the candidate prior to the interview

- Go over the code with the candidate

That's it. You will know really fast who's senior and who's never wrote software. It can't be faked. And it can be adapted to mostly any positions (backend, frontend, devops, architecture, whatever).

Re:Coding interviews are stupid (ish) by YZF on Tuesday May 07, 2024 @10:37PM (#40293825)
I have a different take on this. I ask a fairly simple coding question and have them write code. No fancy algorithms to memorize or competition style coding.

I want to see if they can think in code. If they can translate something simple to written code. There's always a chance to have a conversation as well to probe different aspects of their understanding.

A few of those by a few people and I think you get a pretty good read.

Mix in some questions about their work and/or some general knowledge. I've also given people code to read (real world code) and explain to me.

For Algorithms and Data Structures I can look at their grades if they're fresh out of school. But we all know most of our work is not that (someone's gonna show up on the thread and say differently - I'm sure ;) ). If you can think in code and have the right mental models implementing an algorithm from a book isn't hard if you really have to.

Re:Coding interviews are stupid (ish) by tgv on Wednesday May 08, 2024 @04:50AM (#40295757)
I used that approach too for a beginning frontend dev: see if they can get a solution to straight-forward problems, and ask them to explain it afterwards. They got all the time they needed, and a clean laptop with wifi. Two candidates came out well, two others didn't. That was a bit shocking, given the low bar.

But it won't cut it for a senior. Such people should be able to answer a wide range of questions, including some algorithm and data structure stuff. Not that they have to be able to code a min-max-heap from scratch, but they have to know what's out there, how to use it, and how to keep the overview of an entire project. That's not going to be evident from a coding interview.

So, horses for courses.

Re:Coding interviews are stupid (ish) by YZF on Thursday May 09, 2024 @09:32PM (#40314713)
I agree. For more senior people I'd mix in systems, architecture, design trade-offs and such. I'd want to see they have actually delivered something in their career and dig into the details.
Re:Coding interviews are stupid (ish) by thbb123 on Wednesday May 08, 2024 @02:44AM (#40295062)
My approach is to ask the candidate to show me some code they've written ( could be for class project, but one requirement for me to interview them is that they have a GitHub) and explain the choices they made or other anecdotes that surround the project.
Re:Coding interviews are stupid (ish) by android521 on Wednesday May 08, 2024 @03:19AM (#40295224)
Good idea. But the focus on algorithms is maybe overkill for at least 80% to 90% of companies. Perhaps lay out some subset of the business requirements or problems the company is working on and ask them to turn that into working code is more suitable