7 ms·
Why are Russians so historically good at these competitions? China have raw numbers, America has the resources/ecosystems to train and prepare these programmer
by s_dev 10y ago
Why are Russians so historically good at these competitions?
China have raw numbers, America has the resources/ecosystems to train and prepare these programmers. Russia seems to have neither and regularly outperform both nations.
- AnonNo15 10y agoI know that St. Petersburg ITMO university specifically trains their student to compete at ACM contests to far greater extent than US schools.
- xentronium 10y agoI can confirm. Itmo normally has at least 3 equivalent teams at any time that compete against each other during the regional stage. There are also specialized study groups and slight preferences (exam and schedule-wise) for those who are serious about competing in team contests.
- virtuabhi 10y agoI believe that it is because of two reasons [massive generalization follows...] (1) emphasis on math and physics (2) stress on discipline and rote learning. US students have (1), Chinese have (2), Russians have both. You would realize that most competitors in these contests end up doing pattern matching with previously solved problems. In addition, they keep a catalogue of most asked questions, common codebase, etc. for reference and pulling out code. I do not think that these competitions produce good programmers as they incentivize writing quick, ugly, non-resusable code.
- arghbleargh 10y agoWhile you are correct in pointing out that these contests only test a relatively narrow subset of the skills needed for good programming, I don't think it would be correct to say it's based on "rote learning". There can be some amount of pattern-matching, but it's not as if you can just read the solutions to 100 problems and expect to do well. Also, I know for a fact that many (but not all) people who were good at these contests are also good all-around programmers. (In fact, you probably do better at these contests by writing more readable code, even accounting for the time cost. But some people can get by with messy code as well.)
- rav 10y agoOnce you have solved your first 1000 problems in programming competition situations, you become really good at writing code that compiles and even is correct in the first go. For me, practicing for programming competitions alongside the job as a software library maintainer really boosted my C++ skills faster than anything else could have.
- farhanhubble 10y agoAbsolutely true! Competitive programming is shear waste of time. While it's necessary to know basic algorithms that get used in day to day work, there is no point memorizing all the algorithms. Sadly, most technical interviews pay a lot of importance to this kind of memorization. For solving real world problems one needs to research and find the right solutions as and when the need arises. This is what real learning is all about.
- egor83 10y agoStrong tradition of STEM education, back from the Soviet times. Military complex was very strong in the USSR, which resulted in quality education (again, just STEM, not so in humanities) - basically, you need to know physics and maths very well to build the bomb. I guess that applies to other Eastern bloc countries to some extent (see Polish universities at ##5, 9 and 25, Ukraine at #11, Belarus at #17).
- jakozaur 10y agoIn case of Poland it helps that algorithm competitions are popular in high school. Each year top winners get a free pass to entry any CS university. So if you SAT style exams are not your thing there is an alternative way.
- curiousDog 10y agoI guess it's the same reason why Indian Americans here in the US win spelling bees. They care about it more than others. These students go through a ton of training with coaches and camps specifically conducted for this purpose. There's a lot of nuances and tricks to be learned in competitive programming. So while the participants obviously have a high aptitude, it's the training that puts them on the top.
- HeavenFox 10y agoI don't think raw number explains the Chinese performance. India has a comparable population, arguably better positioned to do well in ACM (English-speaking country with a strong IT sector). However you don't see many Indian universities here. On interesting thing to note is the ACM World Final ranking usually doesn't correlate perfectly with perceived ranking of the school, even the ranking of its CS department. Another point is, ACM is fun, but if you purposefully train for it, you reach the point of diminishing return quickly. Being a former Olympiad in Informatics contestant (high school equivalent of ACM), I find these kind of competition absolutely not helpful in real world programming. It does help me pass the interviews. In China at least, ACM is perceived a way to prove oneself to potential graduate schools in America and employers. And I do know employers give very high priority to these students - even Google. So, the reason the Chinese is good at it is mostly, this is not a hobby, but a high stake exam. It is a way to land at prestigious graduate program or job. Why isn't the US, and why aren't top universities doing as well as we may think they would be? Because they have better options than ACM.
- LiweiZ 10y agoTotally got what you mean as a Chinese. I wish we had more truly skilled explorers than overwhelming number of ladder climbers.
- ignoramous 10y agoThe Chinese will get there, if they haven't already. They have got top universities, the economy rivals Japan and Germany and soon the US; the tech powress is on display with giants like JW, Baidu, Ali Baba, Tencent making mockery of the competition. Not to leave out the hardware sector-- Lenovo, Acer, Asus, Xiaomi and countless other companies gaining market share from their US counterparts world wide... Are an overwhelming number of Chinese ladder climbers? I don't think so.
- LiweiZ 10y agoPosting nice sales numbers does not equal to organic strength. On the other hand, numbers alone do not provide insights. I know many Chinese are feeling strong with just numbers since we did not have that kind of numbers for a long time. But we are still playing games invented by other explorers mainly in our backyard. We are so used to playing existing ones that numbers became the only thing matters. What is invention? Never thought of it. Sure, current Chinese elites can enjoy high life while having a decent way out. A nation not wanting to face its true weakness and strength is going nowhere.
- dbcurtis 10y agoThere is a math culture among Russians that helps here. The whole phenomenon of Math Circles that are coming up now in the US were a Russian idea that the (now, not so) recent immigrants brought with them. US math education is too much about the mechanics of arithmetic. Russian math education is more about creative problem solving using real math. If you go to a Math Circle, you see that the kinds of problems the kids are working on require the same kind of problem solving skills that you engage when programming. The difference is evident when you observe the typical sophomore-level discrete math class in US universities. Most of the students have that deer-in-headlights look that shows they are struggling with the basic concepts of logical reasoning and how to write a proof like a grown-up. Kids from what I'll call "enriched" or "non-traditional (in the US)" math education have been doing that stuff since middle school and are a little bored. (Off-topic asides: 1) If your kid likes math, look for a local Math Circle. They all vary, but hopefully you live near a good one. 2) If your kid is a middle-schooler and really likes math, I highly recommend the MathPath camp -- see mathpath.org.)
- bsder 10y ago> Why are Russians so historically good at these competitions? Memorization of algorithms. In addition, programming competitions always seems to have an overabundance of Computational Geometry problems which are really hard if you have never seen them before but relatively straightforward if you know the correct algorithm off the top of your head. I prefer to see the "head-to-head" competitions over some competitive task than these. Sometimes, a simple but clever hack does better than advanced algorithmic programming (and sometimes not).
- 33a 10y agoThat's not really true. The selection of computational geometry problems on the ICPC tends to be limited because testing and implementing numerical algorithms is really difficult in a competition environment. When you do see geometry algorithms they tend to be "trick" problems or else don't use any really deep or hard results.
- robryk 10y ago> Memorization of algorithms. You don't need to memorize them. You can have some amount of printouts with you, which teams usually use for having a bugfree implementation of stuff like arbitrary graph matching, maximum matching of lowest cost, 2SAT or just Gauss elimination. At the same time these advanced algorithms do not get used very often -- in the 2 finals I took part in we've used something from out printouts maybe once.
- dxbydt 10y agohttp://www.russianschool.com/location/dublin http://www.russianschool.com/location/dublin From the site: "compare RSM's average math SAT score of 774 (out of 800) to California's average math SAT score of 516."