While I'm not an MIT student, I think the school puts a huge emphasis on being pragmatic ( see http://news.ycombinator.com/item?id=530659 ). Also, given the huge disparities in abilities of the freshmen there, I'd reckon that, more often than not, an MIT education would be a humbling experience.
I'm in India right now and I've spent a total of 14 years here. The places I'm referring to are the ones the article seems to talk about: China, India, Japan and Korea.
It always seemed like more of a cultural difference than a financial one to me. Don't you think that TopCoder could be useful for American high school and undergraduate students, who could be preparing for the IOI and ICPC respectively?
Fun fact: this year's TopCoder Open Algorithm Championship winner was a Chinese high school student who never qualified for the IOI.
As an aside, if you don't mind telling me, do you think your participation in the IOI helped get you into grad school at MIT? If so, to what extent?
I'm not sure what the submitter implies by "Project Euler meets Brainfck". While some "fun" problems on SPOJ involve coding exclusively in esoteric languages such as BF and Whitespace, most others are the standard algorithmic challenges. This site is pretty well-known in the programming contest community.
The exam is more rigorous and broader in scope than the APs. It also has a far more punishing "grading curve" (a 1.8% admit rate). The general notion among Indians seems to be that preparation -- and only preparation -- matters.
While I agree that not every American should aspire to be the next president, one should put things in a global perspective: it's only fair that water-deprived kids from Third World countries who spent their childhood cramming end up taking the jobs of the more fortunate who did not take a single simple AP exam. In an earlier post on HN, a highly upvoted comment went like "take every AP exam". That is a good idea, but it hardly ambitious at all, given that you are in the land of opportunity. Participating in olympiads and science fairs is far more worthwhile in every way.
O'Reilly has come up with some decent books recently, including The Productive Programmer and Beautiful Architecture. They don't seems to have got much attention.
Just to put my advice in perspective: I'm an Indian who will possibly be attending (a pretty good) public university this year. I'm the typical HN/reddit geek: started programming when I was 9, know around 9 programming languages, quite some bit of theory, etc. etc. In school in India, I was bored all the time, got mediocre grades, and had donkeys for teachers. Here's what I feel you should do:
1. Challenge yourself
So, you've got to choose from these kinds of activities:
A: Activities that you enjoy doing
B: Activities that *might* impress (say) the college admissions staff
I mostly did stuff exclusive to type A; bad idea. Of course, never do anything that comes only within B. Find what comes under the union of the two.
You're in America: you don't hunt for opportunities, you are flooded with them. Someone on this thread recommended "taking every AP exam available". Sure, do that: it's really important. But that's not ambitious at all: AP exams cover only about 10% of what Indian entrance examinations do, and you get to use "calculators" and "appendices" (more like textbooks). Do something real, like aspire to be an IMO/IOI/IPhO/IChO/ISEF medalist (if you don't know what those are, shame on you).
2. Manage your time
I was absolutely dismal at this. But I've started doing it for a month and it really does wonders: I have stopped procrastinating and started to feel less stressed out. I'd recommend you watch the late Randy Pausch's other lecture (http://www.youtube.com/watch?v=oTugjssqOT0) or read Getting Things Done. Most of HN can give better advice.
3. Skip school (a lot)
It took me a lot of effort to get my parents to allow me to do this. Alas, it was too late then. Usually, teachers do more harm than good. Read the right books instead of attending their classes.