Live data from Hacker News

Competitive programming is useless

kislayverma.com

61–70 of 157 posts

Re: Competitive programming is useless

#61

Earlier quoted context omitted.

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

Just for my understanding. Is the person who I replied to saying that even though state univ are "considered" better, their personal experience is that community college (which is considered inferior to state) students performed better?

The difference is also one of focus. A Community college will offer things like a 2 year certificate course in .Net Enterprise Development, rather than 4 year degrees in Computer Science.

If you need a junior .Net Enterprise developer to write WPF apps in C# to talk to a SQL Server using LINQ, then it is very likely that the student from the community college, who has spend 2 years focusing very practically on learning exactly those technologies, will be able to perform better out of the gate compared to the university student whose education has a broader and more theoretical base.

In theory the University student should be 'better' in the long run since they have a deeper understanding of the field as a whole and should be able to solve harder problems and more quickly transition to new technologies, but that is of course up for debate. And most companies don't need to solve many hard problems, they need a WPF app that can talk to SQL Server using LINQ.

Re: Competitive programming is useless

#62
I like the coding challenges we have at the office.

The ones who want come to solve a few riddles (this is a nation-wide competition), food and drinks are provided, we have the opportunity to chat a bit and I can claim my last place, live every year.

This allows people who like these kind of things to get together in a relaxed environment.

Re: Competitive programming is useless

#63

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), wit…

To me competitive programming doesn't make you a good software engineer. It will teach you bad practices, like abusing of dangerous programming constructs or data structures to optimized the code or just save some typing while writing the code (like one letter variable names, macros, etc), global variables and state in the program, not using common design patterns, not using OOP, not documenting the code and in gener…

Competitive programming doesn't teach you only algorithms and data structures, it teaches you to think very clearly about program flow, edge cases, debugging etc., points which you seem to just gloss over from the comment you're replying to, just to justify a conclusion you had already reached.

Re: Competitive programming is useless

#65
post #11

Earlier quoted context omitted.

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.

Believe it or not, _statistically_ speaking, top tier STEM schools do have way more smarter students per my experience. Prestigious Universities earned their fame for the most part.

> _statistically_ speaking, top tier STEM schools do have way more smarter students per my experience

Which is it, statistical or anecdotal?

Re: Competitive programming is useless

#66

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), wit…

I’d love a programming competition that wasn’t about speed of implementing algorithms, but rather was about speed of implementing solutions, using a provided standard library of algorithms and data structures. Competitive glue-code programming, per se, but glue code that still requires that you understand the need for specific advanced algorithms in order to pull them out of a toolbox.

Re: Competitive programming is useless

#67

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), wit…

> 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 to fix downtime, with no time to get peer review.

This is in large part because the downstream client of an algorithms/data structures library, would almost-always prefer a robust but less-efficient option, over an alpha-quality implementation of a more-efficient option. Dataset-size scaling challenges that recommend algorithmic efficiency increases can, almost always, be temporarily put off by “throwing machines at the problem” until the more-efficient library becomes high-quality enough to be fully relied upon. Until then, the business logic will make do with the simpler/more naive algorithm.

And in most language runtimes, there’s a simpler/more naive algorithm or data structure to solve every problem already laying around in the core stdlib; so it’s not like you, as the library writer, have to implement that code “in anger” either. Your internal customers can upgrade from depending on stdlib types, to depending on your lib’s types, when using your lib becomes an unalloyed win for them; and until then, do nothing.

Re: Competitive programming is useless

#69
Obviously it’s not useless if people find it useful such as the people who compete. By some metric you care about it may be “useless”, but who made you the arbiter of metrics? Competitive programming may or may not correlate with success at say software engineering, but that isn’t grounds to say it’s useless. An Olympic archer may or may not be a terrible bow hunter in the wilderness but they still have a clear skill that is useful by metrics such as people want to watch it, practice it, and compete in it. Dualist thinking like this where things are strictly good/bad, useful/useless, etc. is a really limiting thought pattern. How about instead of “is this thing useful OR useless?” we ask “in what ways is this thing useful? In what ways is this thing not useful? How can we best leverage these properties?”

Re: Competitive programming is useless

#70
post #59

I'm been following competitive programming for years and know multiple extremely successful "grads" of IOI and ACM ICPC. I have an ICPC bronze medal myself. The HN crowd will know Adam D'Angelo (IOI Gold) - cofounder of Quora and Nikolay Durov (IOI ICPC Gold) - cofounder of Telegram. My personal examples are Singlestore (billion dollar company) which I cofounded and Near Protocol - 5Bln market cap crypto company cofo…

Smart and works hard is important but I'm very much not convinced that success in competitive programming (or leet-coding in interviews) is the only, or even best, way to signal those attributes to an employer.

I'll also contradict myself on how important smart and works hard actually is. I'm just a normal programmer who has had a few normal programming jobs. The vast majority of my career has been about doing relatively low-key programming and data munging. When I think back on software engineers "in the trenches" of standard corporate jobs I don't see any deep need to be particularly smart and hard working. Maybe "doggedly stubborn" about not giving up and making some progress each day instead.

Post reply on HN