Most active commenters
  • FartyMcFarter(3)

←back to thread

Please stop the coding challenges

(blackentropy.bearblog.dev)
261 points CrazyEmi | 20 comments | | HN request time: 0.807s | source | bottom
Show context
CharlieDigital ◴[] No.42148313[source]
A small anecdote.

A partner of a friend quit their job earlier this year. They then took 4-6 weeks to prepare for each interview with Big Tech companies (4-6 weeks for Meta, 4-6 weeks for Stripe, etc.). Along the way, they also took random interviews just to practice and build muscle memory. They would grind leetcode several hours a day after researching which questions were likely to be encountered at each Big Tech.

This paid off and they accepted an offer for L6/staff at a MAANG.

Talked to them this week (haven't even started the new role) and they've already forgotten the details of most of what was practiced. They said that the hardest part was studying for the system design portion because they did not have experience with system design...but now made staff eng. at a MAANG. IRL, this individual is a good but not exceptional engineer having worked with them on a small project.

Wild; absolutely wild and I feel like explains a lot of the boom and bust hiring cycles. When I watch some of the system design interview prep videos, it's just a script. You'll go into the call and all you need to do is largely follow the script. It doesn't matter if you've actually designed similar or more complex systems; the point of the system design interview is apparently "do you know the script"?

Watch these two back to back at 2x speed and marvel at how much of this is executed like a script:

- https://www.youtube.com/watch?v=4_qu1F9BXow

- https://www.youtube.com/watch?v=_K-eupuDVEc

replies(14): >>42148339 #>>42148377 #>>42148639 #>>42149124 #>>42149251 #>>42149406 #>>42149518 #>>42149554 #>>42149705 #>>42149979 #>>42150271 #>>42150314 #>>42151333 #>>42151610 #
paxys ◴[] No.42148339[source]
Sounds like the system worked exactly as intended then. A seemingly smart person got a good job. What's the problem with this story exactly?
replies(7): >>42148421 #>>42148466 #>>42148494 #>>42149125 #>>42149358 #>>42149519 #>>42151724 #
1. pmg101 ◴[] No.42148421[source]
A moderately smart person was selected for a good job perhaps over many many better possible hires simply because that person had the leisure to learn the game. Inefficient. But nice for that individual, naturally.
replies(5): >>42148965 #>>42149145 #>>42149365 #>>42149704 #>>42150297 #
2. FartyMcFarter ◴[] No.42148965[source]
But is there a good way to find the "better possible hires" which doesn't have other significant disadvantages? If you have a convincing method of doing that, many companies would be interested in your ideas.
replies(3): >>42149053 #>>42149068 #>>42149274 #
3. pydry ◴[] No.42149053[source]
Yes, ask give interview tasks which are realistic depictions of the actual job tasks.

No, the hiring managers that are into cargoogle culting are not actually that interested in how to do interviewing properly. Not unless, say, google does it and they can copy it.

For them the important thing is that leetcode is a safe, defensible choice because "everyone else does it that way".

replies(3): >>42149175 #>>42149630 #>>42151518 #
4. Apocryphon ◴[] No.42149068[source]
Starfighter doesn’t seem to have gotten anywhere

https://news.ycombinator.com/item?id=37985450

5. rectang ◴[] No.42149145[source]
Recall this anecdote the next time someone mentions "meritocracy" in the context of tech. At best, only a limited population gets to participate.
6. FartyMcFarter ◴[] No.42149175{3}[source]
> Yes, ask give interview tasks which are realistic depictions of the actual job tasks.

I think this is exactly what a lot of companies try to do when interviewing. Depending on how much time they want candidates and interviewers to spend on the task, this ranges from leetcode-style problems to bigger coding challenges (possibly with some debugging or collaboration involved).

What would you suggest concretely?

replies(1): >>42171681 #
7. exe34 ◴[] No.42149274[source]
interview followed by paid internship/probation. watch them work on your real system. Keep them if they're good.
replies(4): >>42149331 #>>42149659 #>>42149948 #>>42150173 #
8. FartyMcFarter ◴[] No.42149331{3}[source]
That's what companies already do.

Are you suggesting that any coding interviews and challenges are simply removed from the existing processes? That just means you end up with more candidates to choose from, which doesn't sound helpful at all if your goal is to end up with better hires as the comment above was suggesting.

replies(1): >>42150153 #
9. lupire ◴[] No.42149365[source]
I don't suppose you got a good job because you had the leisure to spend 4 years in college? Or 4 years in high school?
10. SatvikBeri ◴[] No.42149630{3}[source]
One of the main questions I ask in interviews is basically "we have a data pipeline with goal X and constraints A, B, and C. How would you design it?" Depending on how they do, we'll discuss various tradeoffs, other possible goals/constraints, and so on.

This is based on a real system I designed and have been maintaining for ~5 years, and is also very similar to other systems I've run at previous jobs.

About half the candidates complain that it's not a realistic question.

11. pkaye ◴[] No.42149659{3}[source]
In the US this doesn't work well outside of college internships. Most tech workers don't want to shift to a new employer with a probation period. We already live under an "at will" employment relationship so employers can let you go anytime and workers can leave anytime. To have real value to a probation period for workers, we have to guarantee its harder to fire you past the probation period.
12. luismedel ◴[] No.42149704[source]
I don't like the "state of the art" of tech hiring but I think this thing you say can be said to any of us in our jobs and that's not fair.

We all part from the same place (understand me: from the standpoint of the hirer, I know we have different vital stories). They open the position to all of us and want to be impressed. The one that makes it, gets the job.

It is the best way? Absolutely not. Is it unfair? No.

13. theamk ◴[] No.42149948{3}[source]
This will strongly favor people who believe that that they cannot get a good job, because if a candidate has multiple offers, why would they choose probation vs regular job?

(Note I am saying people who "believe" they cannot get a good job. This would be people who worry a lot, people with unusual experiences that other companies avoid, and under-performers who got fired. I am sure there will be some great hires in those groups, but likely less than during regular hiring)

14. exe34 ◴[] No.42150153{4}[source]
leetcode doesn't help either. it's just cargo culting at this point.
15. IshKebab ◴[] No.42150173{3}[source]
Even with probation the cost difference between saying no at interview and firing them during their probation is enormous.
16. aleksiy123 ◴[] No.42150297[source]
Since when is studying, practicing and preparing, gaming the system?

Is reading a book on software engineering to become a better programmer also not allowed?

I feel like people want these jobs to be distributed "fairly" based on "natural" ability/talent.

But it has never and will never work that way.

replies(1): >>42150927 #
17. jjav ◴[] No.42150927[source]
> Since when is studying, practicing and preparing, gaming the system?

Fair question.. the problem today is the emphasis on studying and practicing irrelevant things like memorizing algorithms. That's become the paved short-cut to well paying jobs so naturally people do it. To the point that even the people doing the hiring have forgotten what it meant to be actually qualified, not just a leetcode memorizer.

If you need to hire a musician for your band, do you pick the person who has spent six months practicing a handful of chords to perfection, but possibly doesn't know anything about composing songs or jamming with the band? Or do you pick someone who has been composing and playing live shows for 10+ years?

The first one is just academic memorization that has some value, but very little. The second one is real-life experience that's worth a lot.

I have zero musical skills but even I have managed to learn to play a couple songs on the piano by sheer memorization of which buttons to press in what sequence. If you ask me to play one of those songs it might seem like I know what I'm doing even though I'm completely incompetent in music. That's the equivalent of hiring for software roles based on leetcode memorization.

replies(1): >>42152049 #
18. ball_of_lint ◴[] No.42151518{3}[source]
As you climb the engineering IC ladder your responsibilities involve larger and larger tasks and timescales. It's not possible to measure whether someone can make the right decisions about the architecture of a service as requirements change over years in a 1-day interview. Anything that isn't "be the engineer maintaining this service for 1 year" is going to be a proxy for that, which can be learned and gamed.

What would be a "proper" interview in your opinion?

19. flustercan ◴[] No.42152049{3}[source]
I don't think its common for people to try to "memorize leetcode."

Most interview loops at places that do algorithm interviews are 2-3 rounds and each round will have up to 2 questions. Its very very unlikely the interviewee will only encountered questions they have memorized.

More likely, the interviewee encounters questions similar to ones they have solved and they know the pattern around solving, then are able to apply their learned skill to the new problem.

Similar to your music analogy: you can absolutely be a strong guitar player in a band if you just memorize a few different chord shapes and can apply them up and down the fretboard to different keys (lookup the "CAGED system").

20. pydry ◴[] No.42171681{4}[source]
A lot of companies do do it this way but the ones that set leetcode problems are deliberately avoiding setting realistic interview tasks.

If you think leetcode is representative of real life programming you're probably a college student.