Live data from Hacker News

Competitive programming is useless

kislayverma.com

11–20 of 157 posts

Re: Competitive programming is useless

#11

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

Wow, that's a lot of hubris from the author.

I don't think anyone out of college for more than a few years thinks the "tier" of college you went to is the ultimate arbiter of how competent you are and can ever achieve.

Re: Competitive programming is useless

#12
post #7

Earlier quoted context omitted.

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…

I'm someone outside USA. Can you clarify your comparison between state vs community?

State colleges serve the entire state, or a large portion of it (i.e., University of Kentucky, Eastern Kentucky University) are are typically universities instead of colleges.

Community colleges serve a smaller area, typically one county and its neighbors. Community colleges often have a much higher emphasis on trades and job prep. They will often offer more 2 year associate degrees, trade certifications and less 4 year degrees. They are rarely universities.

Re: Competitive programming is useless

#13
This post really is a rant as the author forewarns, with barely any cohesion and no evidence to back up anything. I fear it has gotten upvotes simply because it's a popular opinion.

I don't think it's worth a detailed response so I'll just respond to the reductio ad absurdum in their tl;dr, that competitive programming has been taken to extremes (implicitly by employers).

This is plain untrue. Sure a lot of interviews I've been through ask for a coding exam, but in this day and age that's just a wise precaution and no company that I've heard of would hire based purely on that outcome.

I've met (interviewed) too many candidates who can sweet talk their way through any technical matter but barely know how to use a couple of for-loops. This isn't a surprise---the push toward driving down the cost of software engineering labor means that there's a massive volume of people churning through the bootcamp machine.

Re: Competitive programming is useless

#14
post #7

Earlier quoted context omitted.

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…

I'm someone outside USA. Can you clarify your comparison between state vs community?

State University: typical higher-learning university that requires application and awards degrees. Funded in part by its US state via taxes.

Community College: no application, no traditional degrees, no prior learning required. Often vocation in focus. Adult classes. Anyone can attend (dropouts, elderly, anyone). You even just sign up for individual classes. You, 8589934591, could likely sign up for an online class next semester/quarter. Some are highly regarded, Foothill College in SV for example.

Re: Competitive programming is useless

#15
post #10
post #6

From my point of view, the correlation is definitely not 1, but while competitive code is not good code, and therefore the skills and discipline differ, there is a strong correlation between good competitive programmer and good programmers. Just like sprinters and marathonians, sure best sprinters are not necessarily the best runners for long distance, but they are definitely better than me.

According to Peter Norvig, the correlation is actually negative! https://www.youtube.com/watch?v=DdmyUZCl75s

I believe Norvig later clarified that the negative correlation was untrue or statistical noise.

Re: Competitive programming is useless

#16

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

obviously we are talking about statistics, so of course specific examples exist that run counter to the trend. But without a doubt, I am 100% certain that on average the incoming CS class to MIT is smarter than students in the cs program at some very low ranked state school.

you can see the difference in which textbooks the school uses. It would be impossible to teach real analysis with Rudin at an average school or community college.

Or the math 55 sequence at Harvard, which basically gives students more mathematical training in a year than the average university student will get in an math entire degree.

Re: Competitive programming is useless

#17

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

Re: Competitive programming is useless

#18
I'd disagree with this assessment. In my own experience, I've found that competitive programming is useful in teaching a few skills. However, the apparent point of competitive programming--building up a good repertoire of advanced algorithms and data structures--is pretty close to useless. In my professional career, the most complex algorithm I've ever had to code myself is ... union-find (on like two occasions), with a custom BFS/DFS being the most common algorithm I reach for. 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.

No, the most useful impacts of competitive programming has to do with actually teaching you how to program effectively. The most important advice I got for competitive programming was walk away from the computer. The biggest trap when programming is to write code before you know how to solve a problem, as this will tend to encourage you to spend all of your time making no progress towards actually getting a solution. The tale of the Sudoku solver [1] is salutatory here.

Another useful skill is how to debug algorithms. Debugging a competitive programming problem usually amounts to taking an input that fails and trying to understand where in the algorithm (as expressed in poorly written and commented code!) the mistake is. Doing so under the time pressures of a competition also requires being able to rapidly decide if the algorithm is wrong, or it is the implementation is wrong, as well as figuring out where the most likely places for errors are likely to creep in. This kind of experience translates very usefully into professional programming, and debugging is a skill that seems to be poorly acquired by most young programmers.

When competitive programming hits the tier where you need to memorize all of the advanced data structures and algorithms to do better, that's where further improvement in the leaderboards no longer translates to better programmers IMHO. But there's still a lot of skills that need to be acquired to move up competitive leaderboards before you reach that point.

[1] https://ravimohan.blogspot.com/2007/04/learning-from-sudoku-...

Re: Competitive programming is useless

#19
post #16

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

obviously we are talking about statistics, so of course specific examples exist that run counter to the trend. But without a doubt, I am 100% certain that on average the incoming CS class to MIT is smarter than students in the cs program at some very low ranked state school. you can see the difference in which textbooks the school uses. It would be impossible to teach real analysis with Rudin at an average school or…

Better prepared I would say. There are plenty of kids that don't get the opportunity to show how smart they are. They grow up in the projects, have to work nights to help their family, some have to join gangs to survive. You swap they're upbringing with someone who's parents got to spend 100k on their high school education, provide them the things like a car, so they don't have to ride the bus a hour to and from school, and they'd be a lot different. It's really easy to be a lot smarter when you have a support system that nudges you along the way. Now agreed, there are some kids that really are smarter, but mostly it's about being prepared to handle that rigor.

Re: Competitive programming is useless

#20

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

This is an obvious and observable fact. An MIT trained programmer is probably smarter than a CS grad from a big state school. To deny this is to deny the obvious difference between an elite CS education and a run-of-the-mill state school education.

Of course one is better than the other.

As someone who went to a state school this does not bother me at all. CS education is not locked behind some door in a secret location - its open to anyone with internet access.

What makes one programmer better than the next is the extent to which he invests in educating himself.

Post reply on HN