Most active commenters
  • cess11(4)
  • FartyMcFarter(3)

←back to thread

Please stop the coding challenges

(blackentropy.bearblog.dev)
261 points CrazyEmi | 46 comments | | HN request time: 0.417s | 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 #
1. 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 #
2. 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 #
3. cess11 ◴[] No.42148466[source]
Apparently they expect people to work for free for more than a month to learn material they then won't use.

In my mind that's a rather nasty practice.

Not that I'm complaining. I'm happy to pick up people that are good at computers but wouldn't be able to pass that hurdle, and probably wouldn't hire anyone that has.

replies(2): >>42149290 #>>42151588 #
4. dmvdoug ◴[] No.42148494[source]
It’s like the bar exam for lawyers. It bears absolutely no relationship whatsoever to the actual job and the work you will be doing. It’s a pointless ritual. And the point of the above story is that the person performed the ritual and then promptly forgot all the words once they succeeded. It illustrates the pointlessness.
replies(2): >>42148586 #>>42150979 #
5. ForHackernews ◴[] No.42148586[source]
It's not a pointless ritual. It tests for determination, grit, and willingness to grind on difficult, frustrating and ultimately value-free tasks.

All crucial skills in the modern technology or legal workplace.

replies(5): >>42148705 #>>42148998 #>>42149033 #>>42149034 #>>42149077 #
6. dmvdoug ◴[] No.42148705{3}[source]
I was a lawyer. I passed the bar exam (first try, no less). I practiced. The bar exam does none of what you claimed for it. Now, I offered it here as an analogy, but I am not a software developer. It just sounded akin to what I do know from my own experience and from talking to literally hundreds of other lawyers, law school professors, judges and their clerks. So maybe it’s not a good analogy to software development. I don’t know.
7. 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 #
8. tshaddox ◴[] No.42148998{3}[source]
And by that argument, difficult big tech system design interviews are interchangeable with bar examinations.
replies(1): >>42151765 #
9. pessimizer ◴[] No.42149033{3}[source]
> It's not a pointless ritual. It tests for determination, grit, and willingness to grind on difficult, frustrating and ultimately value-free tasks.

This is what people say whenever one criticizes the methodology of any test. They say that the real test was actually the friends we made along the way. The real test was the degree to which you are willing to humiliate yourself, or to accomplish things you don't understand the purpose of, or to accomplish things that you do understand the purpose of but disagree with logically or morally.

We filter for the worst, most damaged, and most desperate people.

replies(1): >>42149276 #
10. vharuck ◴[] No.42149034{3}[source]
I feel like you forgot the "/sarcasm" at the end.
11. pydry ◴[] No.42149053{3}[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 #
12. Apocryphon ◴[] No.42149068{3}[source]
Starfighter doesn’t seem to have gotten anywhere

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

13. Apocryphon ◴[] No.42149077{3}[source]
At least you only have to pass the bar once.
replies(1): >>42154671 #
14. swatcoder ◴[] No.42149125[source]
"Seemingly smart person getting a good job" is a criteria for filling headcount during a boom, but regresses the industry's maturity by placing inexperienced people into critical roles.

The problem with this story is that people need to work with and rely on this person for responsibilities they're not yet qualified to meet. In some cases, a "smart person" will be able to grow into the role, but the road there is long and messy, which becomes a frustration for colleagues, supervisors, clients, users etc.

Because of the prolonged boom we just went through, the industry -- especially at FAANG's -- is now saturated with smart, naive people trying to fake it until they make it, leading to a gross decline in quality and consistency compared to where we have been and might otherwise be.

15. 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.
16. FartyMcFarter ◴[] No.42149175{4}[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 #
17. exe34 ◴[] No.42149274{3}[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 #
18. Y_Y ◴[] No.42149276{4}[source]
> We filter for the worst, most damaged, and most desperate people.

These are probably the best candidates, from the perspective of a manager who is concerned with stability and not rocking the boat, at the cost of results and workplace quality.

19. HPsquared ◴[] No.42149290[source]
It's very mild compared to postgraduate education. Or getting a degree in general. That's years!
replies(2): >>42149698 #>>42149887 #
20. FartyMcFarter ◴[] No.42149331{4}[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 #
21. sanderjd ◴[] No.42149358[source]
It took forever. Literally tens of thousands of dollars of opportunity cost, with a lot of risk of having nothing to show for it.

The bummer is that you're right, it actually is worth even this much investment, because these companies do pay extremely well. But it's still horrendously inefficient, because the companies are getting a very small improvement to their signal to noise ratio, at this great cost (which, notably, they don't bear).

replies(1): >>42149380 #
22. 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?
23. lupire ◴[] No.42149380[source]
Yeah that's how education works.

Someone working at billion dollar VC funded outfit should understand the cause of making smart but speculative bets.

replies(1): >>42149605 #
24. yieldcrv ◴[] No.42149519[source]
although its a different paradigm that I’m used to, I agree with this general concept

if you provide utility to the market, you shouldn’t need credentials or a corporate ladder to climb to prove it, it should be immediate compensation no matter how disparate

so despite how coveted tech compensation packages are at this tier of company, a seemingly smart person getting a good job after doing a contrived aptitude test does meet that criteria. other people outside the field (and within) have difficulty passing it and don't have the cognitive ability to study for it, or the financial stability to prioritize studying for it

I also agree that a less contrived aptitude test would be better

25. sanderjd ◴[] No.42149605{3}[source]
Yes, and they should also be able to understand when the system that creates those smart but speculative bets is creating deadweight loss, and identify that as a problem.

BTW, I have personally made this bet in the past (though I didn't put 3 to 4 months into it...) and it was indeed an excellent bet to make. But benefitting from a system does not preclude identifying problems with it.

26. SatvikBeri ◴[] No.42149630{4}[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.

27. pkaye ◴[] No.42149659{4}[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.
28. cess11 ◴[] No.42149698{3}[source]
Sure. Why is it a worthwhile comparison?
29. 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.

30. TeMPOraL ◴[] No.42149887{3}[source]
If you're getting a PhD solely for a job in marginally related part of industry, that's on you. The experience is useful if you're doing it for right reasons, instead of as a proxy ritual to boost your CV. There are more efficient ways to do the latter.
31. theamk ◴[] No.42149948{4}[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)

32. exe34 ◴[] No.42150153{5}[source]
leetcode doesn't help either. it's just cargo culting at this point.
33. IshKebab ◴[] No.42150173{4}[source]
Even with probation the cost difference between saying no at interview and firing them during their probation is enormous.
34. 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 #
35. jjav ◴[] No.42150927{3}[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 #
36. jjav ◴[] No.42150979[source]
> It’s like the bar exam for lawyers.

At least lawyers don't have to take the bar every other year for the rest of their careers.

37. ball_of_lint ◴[] No.42151518{4}[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?

38. unoti ◴[] No.42151588[source]
> Not that I'm complaining. I'm happy to pick up people that are good at computers but wouldn't be able to pass that hurdle, and probably wouldn't hire anyone that has.

You're looking for people who feel like they can't be bothered to learn some of the science and fundamentals of their craft? And you'd actively oppose hiring people who have the determination to go the extra mile? You'd actually discriminate against people who know how to use basic data structures and algorithms, and have that enriched landscape of knowledge to apply to problems that might come up?

Fortunately for you, there are lots of these people available to hire who felt like they are too good to put in the work.

I'm not saying that the data structures and algorithms knowledge is needed to do most software engineering jobs on a daily basis. But for lots of jobs, hiring people with a demonstrated willingness to dive in deep and learn things that aren't necessarily easy or fun actually can be a very good thing, because a lot of engineering problems require a similarly difficult dive into some aspect of specialized domain knowledge.

replies(1): >>42155754 #
39. raydev ◴[] No.42151724[source]
They passed over all the people who didn't study hard enough on random word problems, and then practice those types of problems sufficiently such they could hammer out a solution in under 20 minutes. Multiple aspects of the "leetcode interview" require practice outside of work experience for many people, despite them being great problem solvers.
40. raydev ◴[] No.42151765{4}[source]
I actually think we should keep the system design interviews because they are closer to what I've actually experienced and researched in service of my work.

The leetcodes feel completely unrelated.

41. flustercan ◴[] No.42152049{4}[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").

42. thaumasiotes ◴[] No.42154671{4}[source]
Unless you move.
43. cess11 ◴[] No.42155754{3}[source]
You're speaking from a position of great privilege where putting in a month or two of free labour doesn't impact your life much, maybe because you have money, or because you don't have kids.

Whether someone demonstrates a willingness to dive in deep and learn things I catch with an entirely different technique, like putting them into contact with a new programming language.

Filtering out people with experience from "FAANG" will likely get rid of some people that think they are "too good to put in the work", because they have that line on their resumes. And those I've met were absolutely insufferable and incompetent.

replies(1): >>42158518 #
44. unoti ◴[] No.42158518{4}[source]
Actually I put in that work myself, while working, and while raising kids. It took me a lot longer than a month or two. It took a ridiculous, embarrassing amount of time.

> And those I've met were absolutely insufferable and incompetent.

I understand this last part, and annoying and insufferable people absolutely do exist. But consider that you may be generalizing and discriminating against a pretty big pool of people using a small sample size, and give some of those people a chance-- as long as they're not being insufferable and are treating you the way you want to be treated. Those people exist in FAANGs too.

replies(1): >>42162242 #
45. cess11 ◴[] No.42162242{5}[source]
No way. If someone has worked in one of those companies and tells me about it, then they're tainted by it, similar to how they would be from having worked at Raytheon or whatever.

If they have the sense to try and hide their "FAANG" background I might consider them.

46. pydry ◴[] No.42171681{5}[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.