Most active commenters
  • paxys(3)
  • zelphirkalt(3)

←back to thread

Please stop the coding challenges

(blackentropy.bearblog.dev)
261 points CrazyEmi | 33 comments | | HN request time: 1.054s | source | bottom
1. paxys ◴[] No.42148318[source]
The more people online complain about coding interviews, the more confident I am that they are the absolute best way to filter candidates for a software development job. Across the industry there are way too many talkers/pretenders/meeting schedulers and not enough people who can roll up their sleeves, jump into the code and actually get stuff done. And this problem becomes worse at higher levels. You can bitch about it all you want, but you aren't owed that cushy $500K/yr FAANG job. If you can't get yourself to brush up on basic programming and write some for loops then companies will simply move on to someone who will.
replies(8): >>42148544 #>>42148572 #>>42148670 #>>42149168 #>>42149634 #>>42150242 #>>42159535 #>>42165332 #
2. dmvdoug ◴[] No.42148544[source]
You: “Coding interviews are the absolute best way to filter job candidates for a software development job.”

TFA: Coding interviews are a standard way of hiring.

Also you: “Too many people in the software development industry don’t know what they’re doing.”

The lack of cognitive dissonance is remarkable.

replies(1): >>42149015 #
3. ryandrake ◴[] No.42148572[source]
Yea, I happen to hate coding challenges, but not because they're hard--because they bias towards "people who have time to do coding challenges". That said you're absolutely right about how many phonies are in the industry and coding tests are probably the best we have to weed them out.
replies(2): >>42149088 #>>42150540 #
4. 0xmarcin ◴[] No.42148670[source]
Maybe there were in the past, currently there is entire industry there to help you game the system.

- Cracking the coding interview.

- Elements of programming interviews in Java|Python|whatever...

- leetcode & other sides with paid premium subscriptions...

- mock interview bootcamps...

It's no longer about skill, it's only about gaming the system.

replies(4): >>42149191 #>>42149192 #>>42150653 #>>42152339 #
5. mrkeen ◴[] No.42149015[source]
This is not cognitive dissonance.

GP is of the opinion that coding interviews filter out people who can't code.

replies(1): >>42150718 #
6. nerdponx ◴[] No.42149088[source]
The problem I see in a lot of cases is putting too much emphasis on solving the problem in the interview, instead of working through it. Many interviewers claim that they care more about the latter, but in practice failing at the former ends up disqualifying you.
replies(2): >>42150394 #>>42151191 #
7. ironman1478 ◴[] No.42149168[source]
I am good at passing these interviews and am at a faang (will be moving to another one this month). These interviews are useless and provide a false signal on problem solving skills and people's abilities to learn things. The interviews specifically don't test whether or not somebody can roll up their sleeves and jump into code, because if it did why do I as a new hire have to explain so much about software engineering and debugging practices to people who have been here so long?

If you've actually worked at a large company, you'd know that 90% of the real work is done by like 5% of people (maybe even less). If the interviews worked this ratio would be so much better.

replies(1): >>42150624 #
8. ddq ◴[] No.42149191[source]
The ease with which interviews allow the unscrupulous to inflate their abilities has been well-known for long enough for it to be metagamed and exploited for profit and now the effects have become abundantly apparent. Imposters institutionally infested in this manner across industries have reached a critical threshold where their fundamental lack of competency can no longer remain hidden.
replies(1): >>42149233 #
9. AnotherGoodName ◴[] No.42149192[source]
Typical table stakes prep work for a high paying job with a lot of competition.

I’m serious. It’s not even guaranteed you’ll get the job if you do the above but everyone who passed the big tech interviews will acknowledge they fucking studied for it. What do expect here?

replies(1): >>42159623 #
10. AnotherGoodName ◴[] No.42149233{3}[source]
Have you got the high paying big tech job then?

If you do the above prep work and pass the multiple interview loops you’re pretty smart honestly. The vast majority couldn’t do it even with all the study possible and even the smartest couldn't do it without any study at all. The bar is pretty high.

11. Der_Einzige ◴[] No.42149634[source]
Even if we buy that leetcode is good in general, what about for the increasingly more dominant variant, the ML/AI engineer?

How can we even ban them using LLMs in their "ML-leetcode" problem when the problem is on LLM tokenization or something?

Like, if I lose a candidate because they're experts at using cursor + claude to do their coding (i.e. they solve it by writing 3 prompts and filling in 2 errors which are easily spotted in a total of 10 minutes), despite them having NeurIPS caliber publications and open source code, did I filter out a fake grifter, or did I filter a top tier candidate?

I just don't buy that leetcode style problems make any sense for anyone whose doing anything involving LLMs, and like it or not, increasingly large amounts of the cushy 500K/yr FAANG+ jobs will involve LLMs going forward.

replies(1): >>42151968 #
12. vunderba ◴[] No.42150242[source]
Agreed. And a lot of people will say that you can just memorize a bunch of leetcode problems, but I've always created custom coding problems when I've acted as an interviewer so good luck finding the solutions online.

And frankly, if they're able to adapt a random leetcode problem to be able to solve the coding test that I give them, then that's exactly the kind of adaptability that I'm looking for in a prospective software engineer.

13. ◴[] No.42150394{3}[source]
14. paxys ◴[] No.42150540[source]
This goes beyond software interviews and is just how the world works.

"I want to work for your company"

"Ok, prove yourself"

"Sorry, I don't have time"

How do you expect that conversation to go from there? If you don't have time then make time. It isn't anyone's problem but your own.

replies(2): >>42151385 #>>42152691 #
15. drdrey ◴[] No.42150624[source]
what do you think would be a better test?
replies(2): >>42150750 #>>42151047 #
16. plantwallshoe ◴[] No.42150653[source]
What do you mean “gaming the system”?

The companies ask that candidates learn how to solve algorithm problems and the candidates do it.

I would call it “everyone playing a game they agreed to play by the rules they agreed to play with.”

And I don’t know what you mean by “it’s no longer about skill.” It still takes a lot of skill to be able to solve hard algorithm problems, even if you took a course on how to solve them and practiced solving them for 6 months.

When you audition for an orchestra they give you the sheet music ahead of time. It doesn’t mean you have no skill if you practice first instead of just showing up to sight read the music.

replies(1): >>42152043 #
17. dmvdoug ◴[] No.42150718{3}[source]
And they also think the industry is full of people who can’t code. Despite the industry relying on a technique that purports to weed those people out. One might conclude, then, that maybe the technique isn’t as effective after all.
18. ironman1478 ◴[] No.42150750{3}[source]
For new grads, just let them in. Just make sure they know something so a simple coding exercise is maybe good there. For more senior people, actually talk about their resumes and try to understand what they did, why they did it, and importantly, if they actually did it. I never got asked anything about my previous experience when I got into my first faang beyond some superficial things like "what tools did you use".

I've seen interviews where you actually have to present a thing you've done and then explain the decision making process behind it, tradeoffs, outcomes, etc. those are more common outside of CS and I'd like to see more of that in CS. Or hell, have them write an essay describing the tradeoffs about some theoretical engineering decision. That'll give me actual info on how a person thinks.

For context, I used to work in self driving cars and had to interview many people who claimed to work in that field and claim to have worked on huge projects themselves. Then you dig deeper and it turns out they were part of a huge group, they never heard of this problem, that problem, never heard of this industry standard, etc. it's like, forget coding, this person doesn't even know the domain as much as they claim and not being upfront about that disqualifies you immediately in my books.

19. akudha ◴[] No.42151047{3}[source]
I have mentioned this before. The best interview I had as a candidate was - they gave me access to their codebase, explained an actual relatively small bug, asked me to fix it and left me alone (I was seated among their devs, they were minding their business, I was minding my own). I think it took me half hour or so (can't remember the exact time, it was a few years ago). I fixed it, they asked me to explain how I found the bug/fixed, they made an offer.

No talking (other than me showing them how I fixed it). No bullshit questions like "where do you see yourself in 5 years" or "talk to us about your strengths" etc.

Second best - they asked me to design and write pseudo code for a simple system. Don't worry about syntax, but make sure to follow good design practices, within reason. Gave me a pen and notepad and left me alone for an hour. I wrote it, explained my thought process, they made an offer.

Then I had shitty interviews - one very large, very famous insurance company - they had 5 rounds of interviews back to back, for a normal developer role, lol. Asked me about some obscure options for grep etc. It was an exercise in them showing off their skills (more like their memory of Linux commands) than learning about my skillset. I couldn't wait to get the hell out of that building.

Of course interviews can't be light when you are hiring for highly technical, high critical positions (like security, for example). But for most software dev positions, the formats above are very efficient. Most software devs are writing "glue" code, not rewriting some mission critical real time OS.

replies(1): >>42152572 #
20. akudha ◴[] No.42151191{3}[source]
instead of working through it

Loonnnng time ago (25+ years) I remember appearing for an entrance exam of a very famous, hard statistical course. It was a 3 hour exam, with only 7 or 8 questions. The exam explicitly stated that they do not care much for the actual answer, but the path taken to get to the answer (all questions were math problems). As a kid this sounded weird to me, but now it makes sense. Someone with good problem solving instincts will get to the right solution (even if it takes a couple of attempts to get there) vs someone who got lucky the first time (or brute forced their way)

21. skydhash ◴[] No.42151385{3}[source]
I'm sure I can do great in any coding challenge that actually test for problem solving and not esoteric algorithms knowledge. And when you stumble on the latter , it's hard to muster any motivation for the place. It's like applying for a driver position and they ask to verify how quickly you can change a tire (below 5 minutes is a must).
22. noitpmeder ◴[] No.42151968[source]
If its easier to do with AI help then you'd expect supply of qualified devs to go up and salaries to plummet
23. Drew_ ◴[] No.42152043{3}[source]
Tech interview preparation mostly boils down to rote memorization not really what I would call “developing a skill”. You just cram enough until you can pattern match any kind of DSA or system design problem and apply the solution you memorized. Once you finally land the job, you’re free to forget everything. Then you begin to develop “real skill” on the job.
replies(1): >>42153204 #
24. rockemsockem ◴[] No.42152339[source]
There are physics textbooks and YouTube videos everywhere and yet we aren't all physics experts. Existence of knowledge and accessibility of information does not guarantee everyone can learn to do something and it especially doesn't guarantee that everyone can learn to do something well.

LLMs are another great example

25. kristopolous ◴[] No.42152572{4}[source]
I sometimes ask obscure questions but I don't hold it against people if they can't get it. It just tells me a bit about how the person works, who they are, where they might fit ... I've certainly recommended people for hire that score an actual 0% on those questions.
26. kristopolous ◴[] No.42152691{3}[source]
That's not it though.

Pretend I was hiring a restaurant chef and the industry standard test was "run a mile in 4 minutes", a test that 98% of all candidates fail!

So professional chefs practice by jogging daily so they could prove themselves during the famous "run a 4 minute mile" weeding test so they can be hired to prepare meals for people.

That's what we're talking about here. I've had to write out the mathematical proof of various algo complexities of B* trees exactly 0 times when writing SDKs for some CRUD application but that's what's expected during the interview.

It's as correlated with the ability to do the job about as much as running a 4 minute mile in that younger, more desperate, easier to control, and thus cheaper people can do it better. That's what the actual filter is for - to find candidates that are easier to abuse and take advantage of - smart enough to do the work and foolish enough to take the job.

I've hired large teams at multiple companies where such tests were used and that was exactly why we did it. We didn't want the experienced 45 year old wanting to work 40 hours with vacation, we wanted the foolish 25 year old that gave us their weekend.

Actually saying that is illegal, but using a stupid test that selects for it is not.

replies(1): >>42153471 #
27. Valord ◴[] No.42153204{4}[source]
This
28. paxys ◴[] No.42153471{4}[source]
Hiring professional chefs is actually a great parallel. "Chop an onion" or "make a french omelette" are basic tests that even the most experienced chefs being hired for top positions will have to go through.

"But this isn't relevant to my job, a subordinate will always do this kind of stuff."

"We are a fine dining dinner restaurant, I'll never need to make an omelette."

Doesn't matter, make a damn omelette. If you can't, you aren't suited to be a head chef, or any other kind of chef.

Knowing basic data structures and algorithms and having problem solving skills is absolutely critical to a software engineering job. In fact it is the entire job.

replies(2): >>42154564 #>>42159594 #
29. ◴[] No.42154564{5}[source]
30. zelphirkalt ◴[] No.42159535[source]
It is not only about FAANG though. owadays every tiny fart of a company feels entitled to have a hiring process like that and not pay FAANG salaries.
31. zelphirkalt ◴[] No.42159594{5}[source]
And even that isn't really true. Rarely people will have to work with anything but the most basic usually language builtin data structures. Usually people glue together a few libraries and build some CRUD.
32. zelphirkalt ◴[] No.42159623{3}[source]
But who is talking about big tech? Aren't we talking about just most companies here? I have had some interviews and every single one of them had broken hiring processes, silly reviewers, who get stuck up at things like you not using their favorite code autoformatter, for code that is 1 screen long, or did the ghost job thing, where they apparently did not actually want to hire anyone.
33. rldjbpin ◴[] No.42165332[source]
the current system just allows people who understand the system and prep to beat the exam to succeed instead. yet you still find the phonies get through, so is it really solving the original problem then?

outside the geography where the salaries are an order of magnitude less, we yet go through the pain because of companies copying each other's approach.