Live data from Hacker News

Competitive Programming Curriculum

github.com

11–20 of 28 posts

Re: Competitive Programming Curriculum

#11
"An acm day is a day at which you do nothing but pracitce, typically spending 16 hours in practice and sleeping/eating/doing other stuff in 8 hours. For sure, this is not reasonable for our daily lives, but we need to define such a day as it is suitable for feeling progressive."

I don't get it. If it is agreed upon that this acm day is not reasonable or practical, why do we still need to define it and why is it 'suitable for feeling progressive' ?

Re: Competitive Programming Curriculum

#12
Can anyone here explain why is competitive coding used so much in the hiring process. I think while basic things like asymptotic complexity or binary search are sometimes used in real world, I am still to see a problem which uses advanced competitive coding knowledge. Why base so much on a test that is almost surely never used. I am generally good at competitive coding, and I think I will be on the gaining side once I graduate, but still.

Re: Competitive Programming Curriculum

#13
post #10

Earlier quoted context omitted.

It provides a great way to explore different areas of math and cs.

Which is why I enjoy the questions, but not the competitive mindset surrounding it. It's like casual cycling vs racing.

>It's like casual cycling vs racing.

If you're offering up that analogy yourself, I guess I don't understand why you're asking, "what's the point of competitive programming?"

The point of "competitive _anything_" is The Competition itself. What's the point of competition running?!? Shouldn't running be a utilitarian function of escaping an angry lion in the African savanna? Therefore, what's the point of Usain Bolt competing in sprints?!? It's the competition. Same reasons for competitions in spelling (spelling bees), cooking (Iron Chef), etc. Humans just like to compete.

You don't have to enjoy those competitions to understand why other people participate in them.

Re: Competitive Programming Curriculum

#14
post #4

I'm curious; what's the point of competitive programming? It strikes me as opposite to our actual goal of programming in collaboration/the metrics applied do not seem to further the general quality of our work and output.

I teach several competitive programming high school teams. On one hand, I hate it, for exactly some of the reasons on this thread. On the other hand, high school bands compete for trophys too... who ever thought to have competitive orchestras?

people are competitive, and competitions motivate. They aren't for everybody, but for some, they find it valuable. The competition and the coding ability are two separate life skills, forced together in the crucible of the high school education system.

I cannot criticize the motivation, or the fact that my students in high school can solve problems many professionals I know cannot. I can criticize that the competitive spirit marginalizes some of the groups we need to Encourage more.

Re: Competitive Programming Curriculum

#15
post #4

I'm curious; what's the point of competitive programming? It strikes me as opposite to our actual goal of programming in collaboration/the metrics applied do not seem to further the general quality of our work and output.

I teach several competitive programming high school teams. On one hand, I hate it, for exactly some of the reasons on this thread. On the other hand, high school bands compete for trophys too... who ever thought to have competitive orchestras?

people are competitive, and competitions motivate. They aren't for everybody, but for some, they find it valuable. The competition and the coding ability are two separate life skills, forced together in the crucible of the high school education system.

I cannot criticize the motivation, or the fact that my students in high school can solve problems many professionals I know cannot. I can criticize that the competitive spirit marginalizes some of the groups we need to Encourage more.

Re: Competitive Programming Curriculum

#17
Competitive coding competitions are useful because they force you to exercise some valuable real-world skills: shipping technical solutions on a schedule while prioritising problems of unknown size in order of your own team's abilities.

Under the clock, you push yourself beyond what you thought you were capable of and usually learn something about algorithms. This sounds a lot like startups.

Re: Competitive Programming Curriculum

#18

Can anyone here explain why is competitive coding used so much in the hiring process. I think while basic things like asymptotic complexity or binary search are sometimes used in real world, I am still to see a problem which uses advanced competitive coding knowledge. Why base so much on a test that is almost surely never used. I am generally good at competitive coding, and I think I will be on the gaining side once…

Mainly because us interviewers tend towards the sadism end of the spectrum /s

Personally I use it to determine how a candidate approaches a problem. Most of these types of questions have an obvious solution that has a terrible runtime, and then have several optimisation layers on top of that.

I want to see:

* can the candidate reason about a complex problem that has multiple steps.

* are they able to offer a basic solution in pseudo-code (the dreaded "whiteboard" section).

* can they analyse their own solution, for example expected runtime, optimisations, etc (also how they handle criticism)

* how would they go about testing their solution - that is, what test cases would they use to verify their solution is correct (along with this, what error checking would they do)

There are no 'right' answers to these questions - it's about the process.

> I am still to see a problem which uses advanced competitive coding knowledge

In my work I've found it's not about applying a clever hack: its about recognising patterns and learning which algorithm/data-structure is appropriate, and how to apply it effectively. Just like in a competition.

Re: Competitive Programming Curriculum

#19
post #4

I'm curious; what's the point of competitive programming? It strikes me as opposite to our actual goal of programming in collaboration/the metrics applied do not seem to further the general quality of our work and output.

Competitive programming is good practice and makes you a better programmer if you solve the problem before you start writing any code and then just implement your solution to prove that it works. This creates good habits and also shows you how trivial it is to implement something once you know what to do.

Re: Competitive Programming Curriculum

#20

"An acm day is a day at which you do nothing but pracitce, typically spending 16 hours in practice and sleeping/eating/doing other stuff in 8 hours. For sure, this is not reasonable for our daily lives, but we need to define such a day as it is suitable for feeling progressive." I don't get it. If it is agreed upon that this acm day is not reasonable or practical, why do we still need to define it and why is it 'suit…

Possibly the author means that an acm day is not generally practical to do regularly on a day-to-day basis?
Post reply on HN