Hacker News new | past | comments | ask | show | jobs | submit login

Somebody here on HN recently shared the notion that leetcode tests are a legal way to discriminate by age or lifestyle, as older and well-rounded developers do not have the time or inclination to grind on such things.



As a successful developer well past middle age, I find this to be nonsense. The most common complaint I hear around this is "yeah, that discriminates against people who don't have time to grind to do the preparation."

Why is it weird that people should spend time preparing for ask for a new job? I mean, ask an orchestra musician how much time they put into preparing for auditions, or how much time many degreed professionals put into passing a certification (e.g. the bar exam or medical boards).

If you don't want to spend time preparing for job interviews, then fine, don't. But don't claim "discrimination" when there are those of us willing to sacrifice to put in the hours to prepare.


> Why is it weird that people should spend time preparing for ask for a new job?

Because that preparation, by and large, is not related to the actual job.

> I mean, ask an orchestra musician how much time they put into preparing for auditions, or how much time many degreed professionals put into passing a certification (e.g. the bar exam or medical boards).

Those are all instances of people being asked to do/know things that they will need to do/know for their actual jobs. An actual comparison would be if the orchestra musician was asked to perform blindfolded on a random piece of music, and have to spend 6 months training to memorize the most often requested pieces to be ready for the interview, only to play for the rest of their career with the sheet in front of them. (Not trying to compare difficulty, but absurdity. I don't doubt orchestra musician's auditions are harder)

Also, bar exam and certifications are not job interview. You also have exams and certifications in CS and no one is complaining about having to train for those. A lawyer/doctor certainly doesn't have to pass the equivalent of the bar/medical exam every time they want to change firm/clinics. They just talk about their past experiences. Barely any prep required beside being able to give a good sales pitch about you.

Meanwhile, as a dev, you are expected to do it all over again every time you will change job. Even for internal moves, many of the GAFAMs expect you to go through this again.


I'd push back a bit on the orchestra musician preparation relevance. Playing at an audition alone is very different from playing in a section. The hyper critical attention to minute details that wins you a job at, say, the New York Philharmonic, isn't what makes you good at blending with your section. Also, no one is ever practicing concert repertoire as much as they practice audition excerpts so what you hear at the audition is not necessarily representative of what you hear every week.

Granted, it's more representative than leetcode performance but still far from a perfect system.


> I'd push back a bit on the orchestra musician preparation relevance. Playing at an audition alone is very different from playing in a section. The hyper critical attention to minute details that wins you a job at, say, the New York Philharmonic, isn't what makes you good at blending with your section.

A bit off topic, as this isn't orchestral music, but in college I was in a couple of bands as a bassist, and in one of them the guitarist was probably one of the best musicians I ever played with technically. However, because he was so good, sometimes he would get taken by surprise when someone less talented in the band messed something up during a performance. When practicing before one of our gigs, I noticed that our rhythm guitarist was playing a certain section incorrectly and essentially finishing it in half the time he was supposed to; the drummer and I would generally catch on immediately and course-correct, but the lead guitarist tended to be flummoxed and took the longest to group up with everyone. I made sure to mention it to everyone since I figured it might come up again, but I think everyone else forgot by the time the gig happened, and the same exact thing happened, and even though it was the rhythm guitarist who made the initial mistake, the lead guitarist ended up being the one who "looked" the most wrong to the audience because the drummer and I knew that the only way we'd get back on track was grouping up with the rhythm guitarist and leaving the lead guitarist behind. If anyone were trying out our two guitarist to join an existing group, I think almost everyone would take our lead guitarist due to how much better he'd perform in an audition. However, if the band he tried out for wasn't able to keep up with him, it's very possible he would have been the wrong choice. This seems pretty similar to "leetcode" style interviews for a software engineering role; the person who is able to impress the interviewers the best technically might end up being a bad fit for some teams if they aren't able to collaborate as effectively with their team.


> Because that preparation, by and large, is not related to the actual job.

TBH, depends on the job.

I think the problem is hiring people with these skills to do jobs that don't require them. That's bad for both parties. The employer is going to be paying for a skill it is not required, and the employee will get bored and switch jobs, costing everyone time and money.


Was going to disagree but ended up coming around to the argument. I guess the difference is at a certain point preparation turns into a wasteful arms race, it’s not just a reasonable amount of effort put into your next gig but too much effort on things that don’t really represent real day to day / reality. Not sure where the line is, but there is definitely waste and it definitely favors those with spare time.

Does seem like there is a growing movement to explicitly not do leetcode style reviews at many places which is good.


> Why is it weird that people should spend time preparing for ask for a new job? I mean, ask an orchestra musician how much time they put into preparing for auditions, or how much time many degreed professionals put into passing a certification (e.g. the bar exam or medical boards).

It's weird because the preparation is often the thing we're not doing in our day to day.

I'd also go as far as saying if you need to cram crazy hours shortly beforehand to pass any exam or test then you're not really qualified to pass. If you were qualified you wouldn't have to do this because you'd already comfortably know the answers. I get wanting to casually review the finer details which is fine, but if you're in "oh crap, it's Tuesday and the test is in 3 days, time to drop my life and cram 10 hours a day to prepare" mode, maybe you're not ready?

I also think you can't compare software development to musicians or sports. I do play the guitar and there's a massive amount of muscle memory involved. I've gone a few years without playing in the past but within a few minutes of picking it up somehow my brain can resume where it left off and my hands just move to the right places almost on their own.

The same can be said for sports, there's a lot of practice and warming up to burn in muscle memory and literally get your physical body in an optimal state. Also the stuff you're practicing is directly applied to what you're "really" doing in your professional day to day.


> I'd also go as far as saying if you need to cram crazy hours shortly beforehand to pass any exam or test then you're not really qualified to pass.

Tests are different because you are on a timer and they are balanced around it. I almost got straight A's in university, apart from a single B in a course I was confident I actually understood. I got A's in shit I couldn't even begin to explain. But signals and systems, which I genuinely understood at the time, I got a B because I didn't bother studying and memorising shit. I had to work stuff from first principles and ran out of time.

I feel like it's the same in programming interviews. There's no time to actually work out anything from first principles or any original thoughts. Either you know the answer immediately and you spew some shit to make the interviewer happy, or you fail.

Like you say, it's very different for physical activities (can't comment on music), because you cannot drastically increase performance by cramming for a few hours. I was an amateur powerlifter, I stopped training when covid started. There's no way I can get my strength back in 3 days. But I bet I can get an A in some random exam after cramming for 3 days in some random university course I did however many years ago.


> I'd also go as far as saying if you need to cram crazy hours shortly beforehand to pass any exam or test then you're not really qualified to pass.

I've had a professor who said that the purpose of an exam is to study for it.

The same professor said that if you don't learn something in an exam, then the exam is useless.


A musician put it in time for an audition because that will be the piece he will be performing. But doing leetcode when the job definition is: You will be working on this e-commerce site is not the most motivating things. While algorithms and data structure knowledge are important, most of the time is spent writing code gluing data sources to interfaces. I'm perfectly fine doing an interview on the technologies I'm expected to master, but knowing by heart how to sort strings doesn't help anyone, IMO.


Minor bikeshedding, but orchestra auditions are more about measuring musicianship at various time constraints: sight reading - O(minutes) of prep, audition excerpts - O(days) of prep, and personal repertoire - O(months to years of prep).

By and large, professional musicians are paid for a standard level of performance competence and a strong level of versatility. The small handful of remainders are the famous ones renown for exceptional levels of performance.

Plenty of professionals are paid to play the musical equivalent of e-commerce site.


It feels more like auditions for tech involved being assigned a random instrument, even though you've been playing flute for ten years and they are hiring because they need a flautist.


Pushing the metaphor further is surely silly, but I'd compare s/w dev to jazz improv or the ability to deftly adopt the musical expressive style of a new ensemble, and s/w design to musical composition or arranging. Switching instruments is more like switching programming languages or stacks. Presumably appropriate auditions should assess these complex skills and not rudimentary fare like scales or key transposition, AKA leetcode.


> most of the time is spent writing code gluing data sources to interfaces

Pretty much anyone can do that. We’re looking for someone who can do the other 20% of the job that’s novel and difficult. Ideally someone who recognizes that rereading glue code is a waste of human effort, and automates it away instead.


Leetcode doesn’t actually test for that 20%.


> ask an orchestra musician how much time they put into preparing for auditions

Training is basically the main work performer has to do to earn his life, and all training is valuable. You could compare with professional athlete and see how it’s absurd.

> If you don't want to spend time preparing for job interviews, then fine, don't.

The idea is that you have to understand the process. If you don’t see the point of certain exercise, you search for a rationalization, and discrimination looks like a good one. Also, the discrimination is not against people that won’t train for interview, but to give a bias to people that don’t evaluate returns on their invested time


Actually, the pro athlete metaphor seems pretty apt. Only rookies are assessed primarily for leetcode metrics like their 40 yard sprint or bench strength. Pros are judged entirely by their game play, both individual and ensemble. So it should be for pro SWEs. And the better employers understand this, finding ways to assess candidate facility by working with staff or the design of solutions to representative problems, where incapability does the most damage.


I think some of the weirdness is that orchestra musicians at the very least demonstrate skill reflective of the job, and doctors and lawyers only have to get the license once. Software is in this weird category of interviewing being it’s own technical domain that needs dedicated study, of which no amount of experience or prior success graduates you from.

Additionally, I find the logic behind this strange. It implies that just because some people can afford to sacrifice that this setup isn’t discriminatory. But the criticism is that some demographics are disproportionately unable to sacrifice. Discriminatory doesn’t mean no on in that demographic is able to afford to dedicate whatever resources towards the thing. In fact systems of discrimination often work better when there’s a model minority or “one of the good ones” that can be pointed to as an example as to why a discriminatory system isn’t really a problem.


> doctors and lawyers only have to get the license once

Doctors have to recredential over their whole career. Used to be every ten years, but some specialties are moving to annual “quiz-sized” credentialing over once-a-decade cramfests.


> how much time many degreed professionals put into passing a certification (e.g. the bar exam or medical boards).

They only do it once, though, not for every single interview.


Seems like this could cut either way.

Yeah, older people are more likely to have other priorities, but they’re also more likely to be financially secure and thus able to trade money for time to study. Also, they’re more likely to have gained time management/prioritization skills and discipline that they could apply toward studying.

Ultimately it seems like arguing that older people lack time or inclination depends on ageist stereotypes.


I think the argument is that more experienced people are less willing to do useless things just because somebody wants them to.

I could never go back to university for that reason - studying, fine, I did a ton of courses on edX and Coursera, but I pick what interests me and a lot of test problems you are given (at least in my experience, at university and later online) too often are more about understanding the intent of the person creating the problem rather than anything useful. I could also never go back to the army (Germany, mandatory service, battle tank mechanic) and take commands from some guy who just wants to posture.

I'm not any less willing to study than I was at university - but now I refuse to do what I think is useless or meaningless. Studying for tests is high on that anti-list. Not all tests, I had no issues with tests I took for things that needed certification, e.g. sailing or for the pilot license, but that stuff was useful in practice and not nearly as over the top because those tests were not designed to "weed out weaklings".

EDIT: An anecdote for that last phrase

After writing the comment I got curious and googled that exact phrase. I found this in https://en.wikipedia.org/wiki/William_Smythe_(physicist)

> He authored a textbook on electromagnetism called Static and Dynamic Electricity, which was a widely used reference in the field during the 20th century. His electromagnetism course was modeled after the Cambridge Mathematical Tripos examinations and designed to "weed out weaklings." Smythe's course was so infamous that future Nobel Prize in Economics laureate Vernon Smith switched to electrical engineering from physics to avoid it.


Anecdotally, I am one of the older people in our dev team, and also once of the only people who cares even slightly about big O. I’m talking simple stuff, like knowing whether indexing a given list data type is constant time or O(n). To be fair, it’s not particularly relevant to what we do.


I think asking a candidate some basic big-O notation questions in an interview is great. Asking a DevOps candidate if a search algorithm developed and published in 2018 is O(n log(n)) or O(n log(n) K^(log n)), and then dinging them for not getting a perfectly correct answer, is over the top the kind of stuff that's used for age discrimination. Not because the young candidate will know it, but rather they will be excused for "almost getting it" and "having a good attitude" etc. in the hiring committee.


It's more about the lack of desperation.


I don't understand what you mean here - would a company not want a well rounded developer ?


The large companies don't need tens of thousands of system architects. They need tens of thousands of coders who can do what they're told on small parts of a system without fussing too much about the bigger picture. I think that's what OP is referring to—leetcode filters for young developers who don't need to understand all the reasons why they're doing what they're doing.


Why would a well rounded senior developer be interviewing for a role that requires a code monkey?


No job is ever phrased as needing a code-monkey and no one wants to think of themselves as a primate doing a very specific task.


Why would you put out ads for senior engineers when you'll make them perform code monkey tasks?


Every job has random overhead and your productivity is boosted quite a lot by already being familiar with some random bullshit problem like "don't configure your test environment this way or you'll run out of file handles after a day or two." Hiring more experienced people means fewer delays due to issues like that, even for boring "code-monkey" work.


We are expensive, tend to tell the younger devs to tell each other their salaries and not put up with bad management.


Harder to exploit experience.


> a legal way to discriminate

Interviews are by definition a legal way to discriminate.


This doesn't make sense to me. I work in a FAANG and we are desperate to hire senior engineers and it wouldn't make any sense for us to turn our nose up at older candidates.


They are convenient and standardized ways of testing. These "legal ways to discriminate" that companies come up with are nonsense, that's not what is happening.


I believe this hypothesis.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: