No US College In Top 10 For ACM International Programming Contest 2013
michaelmalak writes "The annual ACM International Collegiate Programming Contest finished up last week for 2013, but for the first time since its inception in the 1970s, no U.S. college placed in the top 10. Through 1989, a U.S. college won first place every year, but there hasn't been one in first place since 1997. The U.S. college that has won most frequently throughout the contest's history, Stanford, hasn't won since 1991. The 2013 top 10 consists entirely of colleges from Eastern Europe, East Asia, and India."
. . . and . . . how come I never get those programmers when my company outsources . . . ?
For the same reason you never get a knowledgeable person if you dial a helpdesk.
Those outsourcing countries have internal markets as well, including normal programming jobs.
Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
TBH a lot of these people are not the kind of programmer you'd want to outsource your average business app to.
It's really more of an algorithm competition. The programming part is mostly concerned about getting a correct implementation, quickly. The winners tend to be people who 1. know a lot of algorithmic theory, and 2. can write and keep track of fiendishly complex code, with emphasis on conciseness.
I'm sure many of them can write clean and maintainable code as well, but it's not a requirement for this contest.
What manner of "real world" is it where there aren't crazy deadlines and time to design and code properly?
I looked at the input/output files for the 2011 and 2012 contests. The biggest files I found were on the order of 10Mb. That's not a huge dataset in my mind, not by a long shot. I'd bet that most, if not all of the submitted solutions would fail if given datasets on the order of gigabytes, or not run in any reasonable amount of time. Makes sense, they don't have to. But that's real world scale.
It's easy to dump on "professional" programmers, and yes, there's a lack of talent, but being good in these contests is no predictor of success in a programming career. Programming as a career has nothing to do with getting the computer to do what you want; it has everything to do with getting it to do what your customer wants. Your boss wants, what IT wants, and frankly, it really is about not doing what you can't maintain or do well enough and having the courage to say no. And, yes, it does mean being able to work in a team with people that have different skills or are less talented than you.
I've seen too many students who thrived on this kind of work, were encouraged by professors and others for their talents, only to watch them crash and burn in the realities of programming outside of school. And academics is no recourse for some either, as that is not quickly solving problems with known answers, that's asking questions, forming a new problem (harder than it sounds) and then hopefully answering it well.
Which of the Indian teams are represented? I see one at 60th...
Irrelevant. What's relevant: if there's little need in the US (or any other country) economy for software people, it is likely there will be no winners from US in the ACM competition (or winning will happen only as an exception rather than the norm).
In a sociological context, one needs quantity to develop quality consistently over time (that is: it is highly likely the talents need nurturing by an existing culture in their field for them to reach their full potential; and this requires quantity).
Note that quantity alone is not sufficient for the quality to emerge - if in need for another example, you only need to look at the today's music
Questions raise, answers kill. Raise questions to stay alive.
Yes, I mean everybody who participate in the ICPC.
It's a contest where clever programmers do well.
The advantages and disadvantages of clever programmers are well known. These are all brilliant people who can write clever code, but not all of them will write code that other people can maintain.
Some of them are simply to clever to see why other people would have trouble following a piece of code.
I'm not saying their skills aren't valuable when you actually have a difficult programming task, but for outsourcing especially, where the task is hopefully basic and the code is guaranteed to pass through many hands of different skill levels, you don't need clever people, and especially not 'clever' people.
Ah, in that case its even worse! It indicates the US is lacking behind other countries in producing quality mathematicians!
And our company employs a lot of our programmers from the university maths department. With good reason.
I looked at the input/output files for the 2011 and 2012 contests. The biggest files I found were on the order of 10Mb. That's not a huge dataset in my mind, not by a long shot.
10MB input is huge if you're solving traveling salesman. It's small if you're trying to count the number of binary 1's in that file. Your methodology of looking at the input size without considering the problem yields only a nonsense answer.
It's easy to dump on "professional" programmers, and yes, there's a lack of talent, but being good in these contests is no predictor of success in a programming career.
How do you know? Given that programming is highly IQ-loaded and so are these competitions, it would be entirely impossible for there to be no predictive effect. The only question is how much can be predicted. You clearly have no idea on that question.
The problems are such that you don't need huge datasets to choke O(n) solutions in the execution time limit. Winners at these competitions know how to produce efficient code. They may need to learn maintainability, but I'd wager that is an easier skill than producing the kind of efficient *and* correct solutions they come up with. Try your hand at some of the problems to see how hard they are: http://uva.onlinejudge.org/
If at first you don't succeed, skydiving is not for you