Americans Are Scarce in Top Programming Contest
Carl Bialik from WSJ writes "Only four of the 48 best computer programmers in the world are Americans, at least according to a computer-programming competition run by TopCoder. Poland had 11 of the final 48, and Russia had 8. Wall Street Journal columnist Lee Gomes asks whether this is more evidence of a sad decline in American education and competitiveness: 'Surprisingly, the Eastern Europeans don't seem to think so. Poland's Krzysztof Duleba, 22, explained that in countries like his own, there are so few economic opportunities for students that competitions like these are their one chance to participate in the global economy. Some of the Eastern Europeans even seemed slightly embarrassed by their over-representation, saying it isn't evidence of any superior schooling or talent so much as an indicator of how much they have to prove.'"
The focus on mathematics in education in Poland (along with Russia and China) is far higher then in the US. The difference in what a typical high school graduate can do between these countries is huge. (I also note that at least 1/2 of the four Americans amongst the top coders began their education in Singapore)
There are shills on slashdot. Apparently, I'm one of them.
That's because all the best American programmers refuse to work without a pay-check. Capitalism at work, Ladies and Gentlemen! ;-)
Note for the humor impaired - it's a joke, OK?
The gift of death metal does not smile on the good looking.
...American Idol is on.
-- http://frobnosticate.com
10 PRINT "HOME"
20 PRINT "SWEET"
30 GOTO 10
RUN
One of my professors did an exchange year at an Ivy League university, and when they got there they had to send back to the UK for their A Level (pre-university qualification) notes as the students were not at the level that they expected.
Also, I had a friend who was on the student exchange program at the same University at the same time. She was a pretty average C grade student (I'm sure she won't mind me describing her like that), but in her year in the US she got straight As.
I don't know if the standard of education is going down in the US, but it apparantly was nowhere near the standard that my professor and friend expected.
Bob
Listen to my latest album here
I would tend to agree with Mr. Duleba. I don't think this reflects on the intelligence of American programmers, it reflects on our work schedules. I'm 22 just like Mr. Duleba, and I would love to enter contests like this just for the fun of it... I just don't have the time.
I'm gainfully employed building financial systems and whatever other contracts I'm working on. As Mr. Duleba was saying, I think it reflects more the economic state of some of the Eastern European countries. There is a lot of talent, but not a lot of opportunity. A little publicity from a contest like this can make you more viable to employers and give you an edge on the competition.
The great programmers in this world are those who have demonstrated their abilities by actually designing and implementing great software. Coding the solution in a competition proves nothing. You don't have to look any further than the GNU, Linux, Apache, KDE, Gnome etc. etc. CVS logs and mailing lists to find the real greats! As a European I say that the US can hold its head up high on this front.
"Oh well. I don't think I would need to study for this competition, in college I never studied for a computer science exam. It was my theory that if I couldn't deduce the problem on the fly, then I shouldn't be coding at all. Coding isn't about regurgitation or memorization, it's about how you instinctively attack a problem."
And then forgetting all about how you did it, so you can solve the same problem in the same short-sighted way infinitely in the years to come. Way to go, cowboy!
---
"The chances of a demonic possession spreading are remote -- relax."
There are good programmers here in Poland.
But after my studies I had choice:
- stay in my home city and work for awerage wage
- move to western Poland to big city and work for foreign company
- emigrate to another country
I have chosen second option, I moved far away from my home city, but many people just emigrate as fast as they can.
And now there is one more reason to emigrate: terrible political state (PIS, Lepper and Giertych).
Dude, when you win a contest and you apologize, you're humble. When you didn't enter a contest and play down the results, you are arrogant.
Absolutely spot on.
Why can't Americans just realize that, taking away first-world advantages and throwing them into situations dependent upon meritocracy, that they really are just average?
Instead, first post that says, "Oh, we didn't do that well because we don't want to come across as ubergeeks etc. etc." gets modded up. Meanwhile, you can bet some radically different rationalization would be at work if Americans had placed a much higher number. American Exceptionalism sure is ridiculous.
Why should there be more top American programmers in the world?
USA counts for about 4.6 percent of the world population. (300 million out of 6.5 billion). 4 out of 48 is actually almost double of what could be expected based on numbers alone.
America isn't known for its outstanding education system. So again I pose my question: why SHOULD there be more American programmers, and why are the results a surprise?
The only thing that surprises me about it is that there weren't fewer than 4 of the 48 who were American.
I'd like to stress that I'm not trying to be anti-American or anything... just realistic. If you want to change the numbers, you've gotta look at the truth of the matter, and make decisions from there.
Look at what the Russia and the European countries are doing right instead. It's curious to note their humble attitude toward their over-representation.
Why waste concentration on memorization when you have instant access to all your past work right at your fingertips?
Why limit yourself to only consulting your own past solutions when there are decades of well-documented research into innovative, ingenius, and non-intuitive solutions that smarter people (Kernigan, Ritchie, Knuth, Torvalds, Tanenbaum, etc.) have already figured out and written out for you to learn? I think that was the parent poster's point.
It's stupid to ignore the wealth of knowledge and experience already learned the hard way because you discard it as merely "memorizing." It's not. If you study the problem and learn why the solution works, you've just made yourself into a better coder. I didn't "memorize" how Huffman Encoding works. I learned why it works, and I probably wouldn't have figured it out on my own. But it's one of the tools I can use now, because I understand it. I learned it.
It's arrogant, ignorant, and shortsighted to believe you can just "teach yourself" and "figure out" perfect solutions to all the potential programming problems you'll encounter, while ignoring all the work done (and published) by the computer science and mathematical luminaries that preceded you.
Like woodworking? Build your own picture frames.
I don't think I would need to study for this competition, in college I never studied for a computer science exam.
Nor an English exam, apparently.
It was my theory that if I couldn't deduce the problem on the fly, then I shouldn't be coding at all.
Deducing problems is easy. Deducing the solutions, however, is much harder. And believing you can do it without the benefit of the pioneers that came before you is arrogant and closed-minded. It's not about "memorizing" the work of Knuth, Tanenbaum, Stroustrup, etc., but rather learning why their solutions work. I didn't "memorize" that 2^5=32. It just does. I understand it.
Coding isn't about regurgitation or memorization, it's about how you instinctively attack a problem.
And university is about learning the best practices and tactics that have been discovered and published by those who came before you, and learning how to apply those techniques to problem-solve. Its not about "instinctively" attacking a problem, but rather using the research and study that came before you to improve those instincts. Widening your horizon. Expanding your toolbox.
Certain courses can't make you memorize stuff to be a better coder but they can give you a bag of tricks or arsenol with which to attack problems.
Yes, and those are the things you should be studying. But you claimed you never studied for a computer science exam. Now you're contradicting yourself, but you still sound arrogant.
Like woodworking? Build your own picture frames.
Just to touch upon a few of your points.
Studying doesn't really help with TopCoder - it's a timed, algorithms contest. You have to be able to implement solutions to three problems (easy, medium, and hard), that are then peer-reviewed, before being tested, in a relatively small time window (90 minutes I think?). Think the ACM contest, but shorter time, and no teams . . .
The hard problem from this year's final was:
Solution and discussion for this and the other two problems are here.
To get to the finals, you have to qualify through a series of online matches. Only 48 advanced to the onsite competition, so holding it the same weekend as DefCon wouldn't help . . .
As for the bit about prizes, there's a significant purse ($20k was the top prize.) And you wouldn't spend money to get to the finals - if you qualify, they pay up to $1,500 per participant in travel costs, provide accomodations, etc. A few years ago, they even paid for a guest to accompany you. I'm not sure if they've figured something out, but in past years, the foreigners had to play for charity as TopCoder couldn't legal give them the purse.