Live data from Hacker News

Competitive programming is useless

kislayverma.com

91–100 of 157 posts

Re: Competitive programming is useless

#91

Reminds me of a comic I saw: Interviewer: How do you swap two variables without using a temporary variable? Candidate: x = x + y; y = x - y; x = x - y! Interviewer: You're hired! ... two months later ... Boss: What the hell is this code you wrote? Programmer: I swapped two variables without using a temporary variable! Boss: You're fired!

a,b := 1,2 a,b = b,a

Re: Competitive programming is useless

#92
There's a lot of complaining about algorithms/data structures interview questions. But at the end of the day it is up to the hiring companies how they want to triage and select candidates. Rather than complaining, what would be more compelling is evidence that companies using these sorts of interviews are actually damaging themselves. At the moment, the most successful tech companies in human history are using those sorts of interviews, so the burden of proof seems to fall on the complainers.

Re: Competitive programming is useless

#93

Reminds me of a comic I saw: Interviewer: How do you swap two variables without using a temporary variable? Candidate: x = x + y; y = x - y; x = x - y! Interviewer: You're hired! ... two months later ... Boss: What the hell is this code you wrote? Programmer: I swapped two variables without using a temporary variable! Boss: You're fired!

This is so true.

I've been looking around at jobs, and was advised to start practising on HackerRank for the technical interviews.

I've been coding professionally for 30-ish years. There is very little that I've seen on HackerRank that comes anywhere close to a "real" software problem that I've faced developing actual software.

Why is this being used to do technical interviews? What's the thinking here?

Re: Competitive programming is useless

#94

Reminds me of a comic I saw: Interviewer: How do you swap two variables without using a temporary variable? Candidate: x = x + y; y = x - y; x = x - y! Interviewer: You're hired! ... two months later ... Boss: What the hell is this code you wrote? Programmer: I swapped two variables without using a temporary variable! Boss: You're fired!

This is so true. I've been looking around at jobs, and was advised to start practising on HackerRank for the technical interviews. I've been coding professionally for 30-ish years. There is very little that I've seen on HackerRank that comes anywhere close to a "real" software problem that I've faced developing actual software. Why is this being used to do technical interviews? What's the thinking here?

My guess is that people who can't code can't pass, but people who can code might pass. It's a kind of extreme fear of false positive. Then the firm that does the testing needs to look like they're doing something beyond fizzbuzz and you end up with crazy tests.

It never made sense to me, I always just do a technical conversation and if for some reason a muggle has gotten an offer it's easy to detect and deal with. People don't last long in coding jobs if they can't do it anyway.

Re: Competitive programming is useless

#95
post #7

> Assuming for a minute that students from lesser tier colleges are less smart (possibly untrue but again a discussion for another day) Let’s discuss it now: they are NOT ‘less smart.’

Yeah, this. My home state's college's CS program boasted it was one of the best in the northwest. My friends that went through it constantly had to ask me to explain simple stuff to them because the professor's assignments were wrong or confusing. Compare that to our local community college, which seemed to have a much more well-rounded course and taught the fundamentals in a way that made much more sense. Anecdotal…

The difference in curriculum in the Community College I went to and the "real" college I am going to right now are astounding. There are four year CS students who are going to college and don't know how to write a line of code, contrast that to the community college where the expectation is that you create real function programs from scratch. I wonder if this is the case with all colleges, and if so why are FAANG companies not recruiting from CC's by default.

Re: Competitive programming is useless

#96
post #67

Earlier quoted context omitted.

> Almost everything you will ever need is already implemented in a library for you to reuse, and even reaching for that library is pretty rare. This undercuts your claim a bit as someone has to be able to write the library in the first place. Yes it’s rare, but the software engineering industry is big enough that “rare” can be a “this happens all the time in domain X”. Overall though I’d agree that it’s not useful fo…

Writing foundational algorithms/data-structures libraries (e.g. language-runtime stdlibs like libc) is usually treated as a sort of sacred ritual in programming—something where it’s “obvious” that it should be done slowly, carefully, and without distraction, with each change audited carefully by many peers before accepting a merge. It’s not often that you’re writing such code “in anger”, under time-pressure to ship t…

> Writing foundational algorithms/data-structures libraries (e.g. language-runtime stdlibs like libc) is usually treated as a sort of sacred ritual in programming—something where it’s “obvious” that it should be done slowly, carefully, and without distraction, with each change audited carefully by many peers before accepting a merge.

I'll be honest, I think you're vastly overestimating how well these things are actually developed :) I agree with what you said, I just found this part a little bit funny.

Re: Competitive programming is useless

#97

> Assuming for a minute that students from lesser tier colleges are less smart (possibly untrue but again a discussion for another day) Let’s discuss it now: they are NOT ‘less smart.’

Any one student may happen to be a genius at a lower tier school, but comparing population averages, it's pretty clear that smarter pupils go to MIT or Harvard than less prestigious universities and I don't see why this would be controversial. Some people are smarter than others. It doesn't make them more valuable as human beings, but there are real differences in the world.

> Some people are smarter than others.

This is true, but most of them don't go to top tier schools. Which is not at all the same thing as saying most people who go to top tier schools aren't smarter than average. This fact is the root of a lot confusion in the area.

Re: Competitive programming is useless

#98

Reminds me of a comic I saw: Interviewer: How do you swap two variables without using a temporary variable? Candidate: x = x + y; y = x - y; x = x - y! Interviewer: You're hired! ... two months later ... Boss: What the hell is this code you wrote? Programmer: I swapped two variables without using a temporary variable! Boss: You're fired!

LOL, I had forgotten about this, but I actually sort of lived this decades ago in college. I thought I "invented" this variable-less swap technique and used it when answering a CS class quiz question. The prof dinged me on it. I thought I was wonderfully clever and the prof just didn't get it. But of course, he was right and I was wrong.

Re: Competitive programming is useless

#99
post #82

Earlier quoted context omitted.

> However, the apparent point of competitive programming--building up a good repertoire of advanced algorithms and data structures--is pretty close to useless. That's not the point of competitive programming. If you talk to anybody who is good at competitive programming, they will tell you it's _not_ about memorizing algorithms and datastructures. It's about developing algorithmic problem solving skills; skills that…

I have seen successful competitors people do basically that. And I have seen them train how to write basic algorithms super fast again and again. Yes, they had also algorithmic problem solving skills. But they learned huge amount of algorithms and datastructures so that they don't have to derive them each time. And they spend time literally training how to write them fast without mistake. It was not just about proble…

Ok. I'll take your anecdote at face value and shift my views slightly in that direction. I'll also note that even if some competitors do memorize algorithms & train how to write them fast without mistakes, this memorization perhaps gives them a slight edge, but it's not the core skill that separates winners from losers. A small edge, perhaps.

Re: Competitive programming is useless

#100

Time to start asking more about security and OOP on interviews OOP is kind of topic that everybody is expected to know, yet for some reasons there are huge gaps between people when it comes to proficency at it, at modeling systems and domains correctly.

Precisely because huge gaps exist, asking about OOP leads to disappointment. I don't suggest doing it -- or if you do, first try it out on coworkers (even just knowing what SOLID principles are, never mind any nuance about them), and if you're finding that it's filtering them, you don't work at an org where it makes sense to filter new hires the same way.
Post reply on HN