Live data from Hacker News

Please stop the coding challenges

blackentropy.bearblog.dev

331–340 of 493 posts

Re: Please stop the coding challenges

#331

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.…

[deleted]

Re: Please stop the coding challenges

#332
post #302

> When was the last time you had to debug an ancient codebase without documentation or help from a team? All the time. 300-400k SLOC in C++. Legacy in the sense that there were no tests of any kind. Little-to-no documentation. Solo developer at the tiny company. Fix bugs and add features while keeping the system available to the tens of thousands of users. A more recent example: here’s a patch for a critical feature…

Don't understand one thing: I can read any code of any legacy code base, sure. What I cannot do is to asses if the code is supposed to do its job (e.g., the business logic behind it). Is the code I'm reading supposed to calculate the pro-rated salary according to the "law"? Just by reading the code, you cannot know that. You need help, either from other developers who perhaps know the codebase of from product experts…

> What I cannot do is to asses if the code is supposed to do its job

You can, to a degree. If you can get the system under test you can make an assertion about how you think it works and see if it holds. If you know what the "law" is you can test whether the system calculates it according to that specification. You will learn something from making those kinds of assertions.

Working Effectively with Legacy Code by Michael Feathers goes into detail about exactly this process: getting untested, undocumented code people rely on into a state that it can be reliably and safely maintained and extended.

Depending on the situation I often recommend going further and use model checking. A language and toolbox like TLA+ or Alloy is really useful to get from a high-level, "what should the system do?" specification down to, "what does the system actually do?" The results are some times surprising.

You're right that at some level you do need to work with someone who does understand what the system should do.

But you can figure out what the system actually does. And that is de facto what the business actually does... as opposed to what they think it does, logic errors and all.

A good senior programmer, in my opinion, thinks above the code like this.

Update: interviewing for this kind of stuff is hard. Take-home problems can be useful for this kind of thing in the right context. What would you do differently?

Re: Please stop the coding challenges

#333

> When was the last time you had to debug an ancient codebase without documentation or help from a team? All the time. 300-400k SLOC in C++. Legacy in the sense that there were no tests of any kind. Little-to-no documentation. Solo developer at the tiny company. Fix bugs and add features while keeping the system available to the tens of thousands of users. A more recent example: here’s a patch for a critical feature…

> Instead, they put developers in situations they’d never face in the workplace, where collaboration and support are standard.

I thought the page was satire at first.

Re: Please stop the coding challenges

#334

I recently ran an interview process for a relatively senior eng role at a tiny startup. Because I believe different interview methods work better for different people, I offered everyone a choice: 1. Do a takehome test, targeted to take about 4 hours but with no actual time limit. This was a non-algorithmic project that was just a stripped-down version of what I'd spent the last month on in actual work. 2. Do an onsi…

> ~90-95% of candidates chose the takehome test I was expecting "3. submit a code sample" to be the overwhelming winner here - did anybody choose that? Seems like a no-brainer, since it's already done...

99.9% of the code I’ve written is proprietary.

Re: Please stop the coding challenges

#335

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.…

I think you missed the part where you describe their current experience. If he was even considered for L6 staff, then his on resume credentials already justified him at L5 Senior or L6 Staff. The interview performance is what pushed him over the edge into L6. It seems like you think they don't deserve a staff level position?

    > If he was even considered for L6 staff, then his on resume credentials already justified him at L5 Senior or L6 Staff.
I don't want to put anyone down here, but working experience with this individual says "probably not".

Re: Please stop the coding challenges

#336

Earlier quoted context omitted.

Let me answer your unknowable question with another one: Which doctor would you prefer do surgery on your brain - the one that jumped through all the hoops and went to 15yrs of med school - or the one that learned brain surgery through a YouTube tutorial? I think you know the answer. The problem is not gatekeeping in general it’s the detail and nuance of how gates are being kept and how to find the right amount of ga…

> Which doctor would you prefer do surgery on your brain - the one that jumped through all the hoops and went to 15yrs of med school - or the one that learned brain surgery through a YouTube tutorial? My answer is that I don't have access to what I'd really like to base that judgment upon: their success rate, adjusted for the difficulty of the procedure. Simpler, less-risky procedures would therefore have a lower ski…

It would be great if there were certain specialized mini-doctor programs that focused on simple things like treating the least risky problems, maybe even with AI to help filter which problems need a “real doctor” vs a mini specialist.

Re: Please stop the coding challenges

#337

one of the biggest problems with coding challenges for me is the conflict between providing a good solution versus making a strong impression. do you show them a quick'n'dirty solution that ignores edge cases but shows i'm a pragmatic and not going to overcomplicate things? OR do you show something fancy that you'd never actually do in an real codebase that shows off my depth of knowledge and where my ceiling is?

That's assuming they don't pre-bikeshed before even looking at what you did.

Candidate: writes code matching current style as much as possible to show that you can adapt

Reviewer: Rejected. Didn't even use autoformatter, which takes literally zero effort, so clearly does not follow best practices.

Candidate: autoformats

Reviewer: Rejected. Changed more code than was really needed (separate commit or not), clearly showing they didn't try to keep the change as small as possible. If this were a real PR, they would be making life more difficult to the reviewers making it harder to spot the parts that were actually modified.

Candidate: keeps existing code as-is, but writes own changes following the currently accepted conventions

Reviewer: Rejected. They clearly can't follow an existing style and prefer to be a snowflake and "leave their mark" in the codebase.

Candidate: does any of the options above, and adds comment explaining the reasoning, including mentioning the other possible options that they thought about and their tradeoffs

Reviewer: Rejected. Candidate thinks too hard about trivial stuff, showing lack of focus on what really matters.

---

Granted, being rejected for those reasons above could mean that you dodged a bullet.

But yeah, like you mentioned in a different response, a live interview (coding or not) helps reduce these kinds of uncertainties to some extent, but of course these live interviews have other trade-offs compared to take-home tests.

Re: Please stop the coding challenges

#338

> When was the last time you had to debug an ancient codebase without documentation or help from a team? All the time. 300-400k SLOC in C++. Legacy in the sense that there were no tests of any kind. Little-to-no documentation. Solo developer at the tiny company. Fix bugs and add features while keeping the system available to the tens of thousands of users. A more recent example: here’s a patch for a critical feature…

Yeah I think OP's overall argument is right but this particular example isn't needed and has plenty of counter-examples. It's more like when was the last time you had to solve [insert leetcode problem here] without any resources, under time constraints, with someone judging you and staring over your shoulder at all times, at work. I find under these conditions I have maybe 40% of my usual brainpower..

Re: Please stop the coding challenges

#339

Earlier quoted context omitted.

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.

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.

[deleted]

Re: Please stop the coding challenges

#340

Earlier quoted context omitted.

Back when I had a job hiring people we created problems we could walk people through and see what they figured out on the fly/what they knew but didn't know they knew. That was what I was taught whiteboard problems were, not this lame leet code. But I grew up with both parents in 1980s/90s Santa Cruz tech. The current scene adopted the practice but made it exclusive when it was intended to be inclusive (because there…

Well it shows that you are ready to invest a lot of your own free time into being recruited there - i.e. you'll be a loyal and hard worker. And that you're smart enough to learn it all. So I would say it has a character + IQ component to it. Of course 95%+ of it will usually be useless in your real-life work, to solve most of those problems in the time given you need to know the problem and the optimal solution to it…

Yep. I get why some companies would want to use it to select for that. It's just funny because it's so much the opposite of the original purpose of white board problems/old school tech scene culture.
Post reply on HN