Slashdot Mirror


14-Year-Old Wins International Programming Contest

marcog123 writes "The International Olympiad in Informatics was held earlier this week in Bulgaria. The IOI is a programming competition for high school learners up to 20 years of age that has a focus on problem solving and algorithms. It was won by 14-year-old Henadzi Karatkevich of Belarus (PDF, list of gold medalists), beating the world's top high school programmers, including 18- and 19-year-olds, to become the youngest winner in the IOI's 21-year history. Competition is really tough, with some countries taking months off school to concentrate only on IOI training. Henadzi first entered the IOI in 2006 when he was only 11 years old and won silver (missing gold by only six points). He won gold in 2007 and 2008. He has the opportunity to enter for the next three years; that is, unless he follows the path of Terence Tao, who won IMO gold at 12 and then went to university the following year. If he continues his current streak, he will easily surpass the current record of six IOI medals by South Africa's Bruce Merry."

30 of 141 comments (clear)

  1. Learn as hobby, not at school by sopssa · · Score: 4, Interesting

    This just shows more about the fact that those who are great programmers are so not because of school, but because they have interest on it on their own. My own school was kind of a joke - everyone just played flash games during hours and did the least amount needed, while it was quite standard stuff too. I started programming at 8 years old, pretty much after I had learned to read (quick basic stuff obviously, but still). However atleast I had a nice teacher that understood my side aswell and let me do my own stuff like 3D game programming during the hours as long as I did the final test. Truth is most of people are quite non-intelligent about that stuff on schools, unless they do programming as a hobby.

    And I can bet I was better at programming at 14 too then they were at 18 (as self conscious as that sounds). Fact is, if you're really interested on things and do it as hobby and just for fun, you will be even better than most adults are . You may lack some experience, but thats 50/50 good and bad. It's what enables you to do new things.

    That being said, as this is international programming and problem analysis competition the others we're probably quite good aswell, so lots of kudos for Henadzi for winning it. You will have a good future.

    1. Re:Learn as hobby, not at school by Eudial · · Score: 4, Interesting

      The crux is that you really can't teach programming. A good programmer has an intuitive feel for how to solve a problem. You can't get that from lectures and books. I started programming early as well, and I did stuff in my first year of high school that many first year college CS students would struggle with. Don't get me wrong, in retrospect, it was pretty terrible code, but when push came to shove, it worked, and I got to walk into traps and discover concepts 5-6 years earlier than your average school-brewed programmer.

      Getting back to the point, teachers can at best help you teach yourself programming. But even then, only so far.

      In that sense, programming is a lot like art (even though I don't consider programming art, it's a craft at best.) You really can't learn how to be a painter from books either. They can set you in the right direction and open your mind to new possibilities, but in the end, practice is the only way to get anywhere.

      --
      GAAH! MY PRINTER IS ON FIRE!!! PUT IT OUT! PUT IT OUT!
    2. Re:Learn as hobby, not at school by ZombieWomble · · Score: 2, Insightful
      I think you're underestimating how seriously some countries take these events - while I'm sure he got started in it because he was interested in programming, preparation for these events typically involves collecting the best talents from national events and putting them through rigorous training (in the interview pdf linked above, he mentions the training camps they use to select the people they send to the event).

      This goes quite a bit beyond "schools", to be sure. But if you think competitors in these events are entirely self-taught and doing it just for fun, you're quite mistaken.

    3. Re:Learn as hobby, not at school by Jurily · · Score: 4, Insightful

      The crux is that you really can't teach programming. A good programmer has an intuitive feel for how to solve a problem. You can't get that from lectures and books.

      That's because books and lectures miss the most important aspect of it all: imagination. Programming is basically daydreaming with rules.

    4. Re:Learn as hobby, not at school by aniefer · · Score: 2, Interesting
      Programming is a lot like Math, you can put the time in, but some people just don't grok it.

      There is an interesting article here which holds up pointers and recursion as two things in programming that a lot of people never really understand.

    5. Re:Learn as hobby, not at school by oldhack · · Score: 2, Informative

      Problem is that guys like you think you're special. Bit of talent, (continuing) education, and putting in the efforts turn out competent programmers, and those are the ones in demand in mass, not some "special" people.

      --
      Fuck systemd. Fuck Redhat. Fuck Soylent, too. Wait, scratch the last one.
    6. Re:Learn as hobby, not at school by pjt33 · · Score: 4, Insightful

      Computer science is not programming. It's an area of mathematics. API design is software engineering, not computer science.

    7. Re:Learn as hobby, not at school by eyrieowl · · Score: 4, Insightful

      Wrong. That's how I end up seeing lots a crap code. *Designing software* is daydreaming with rules. Programming is a different activity. Programming is engineering. Engineering is not fundamentally about imagination, it is ENTIRELY about rules. You don't daydream a bridge, you engineer one. You might daydream some design features, but then you implement them with engineering. Books and lectures teach competent people how to be competent engineers. That is true for bridges and it is true for software. Books alone do not teach people how to be good designers, it's a talent which can be grown but can not be fully imparted. I think people who confuse the two do a TREMENDOUS disservice to the world.

    8. Re:Learn as hobby, not at school by Jurily · · Score: 4, Insightful

      Mere words cannot describe how wrong you are. How are you going to write good code without having a mental image of your data structures? How do you understand someone elses code in the first place?

      You seem to think imagination is something artsy people use to decide the color of the carpet. I say it's a fundamental component of learning, understanding and creating everything you associate with science.

    9. Re:Learn as hobby, not at school by Javagator · · Score: 3, Interesting
      You seem to think imagination is something artsy people use to decide the color of the carpet

      I agree. I once worked on a project with a group of scientist. There was one guy there that everyone (even other scientists from prestigious universities) talked about with awe. He could keep a thousand details in his head. He developed his software quickly, it worked, and was mathematically correct. However, it was difficult to use or re-use his code. It just didn't have the organization or modularity needed. It takes artistic talent (for want of a better term) as well as mathematical ability to develop good software.

    10. Re:Learn as hobby, not at school by sshumaker · · Score: 2, Insightful

      You can't really separate 'programming' from 'software engineering'. Developing software is a holistic process - it requires problem-solving ability, strong synthesis and analysis skills, excellent judgement, and a healthy dose of imagination. At every point, you have to decide between dozens of different trade-offs - between scalability and performance, robustness and readability, maintainability and development time. Good programmers are the ones who can balance these attributes to craft the right solution for the problem at hand. Great programmers are able to redefine the problem entirely.

    11. Re:Learn as hobby, not at school by syousef · · Score: 2, Insightful

      There was one guy there that everyone (even other scientists from prestigious universities) talked about with awe. He could keep a thousand details in his head. He developed his software quickly, it worked, and was mathematically correct. However, it was difficult to use or re-use his code. It just didn't have the organization or modularity needed. It takes artistic talent (for want of a better term) as well as mathematical ability to develop good software.

      If it wasn't modular it wasn't good software. It may have been an elegant and correct solution to the problem, but it was not good software.

      --
      These posts express my own personal views, not those of my employer
    12. Re:Learn as hobby, not at school by SL+Baur · · Score: 2, Informative

      The crux is that you really can't teach programming. A good programmer has an intuitive feel for how to solve a problem. You can't get that from lectures and books.

      You can kinda sorta, but you're still missing something. You have to choose your books carefully.

      http://www.amazon.com/Elements-Programming-Style-Brian-Kernighan/dp/0070342075
      http://www.amazon.com/Psychology-Computer-Programming-Silver-Anniversary/dp/0932633420
      http://www.amazon.com/Mythical-Man-Month-Software-Engineering-Anniversary/dp/0201835959

      programming is a lot like art

      Very much so. Those with a passion for it always rise to the top. (I know I'm quoting you out of context, you were right before you added in all the weasel language).

      in the end, practice is the only way to get anywhere.

      Exactly. But isn't that true with anything worthwhile?

      What you're missing is that writing new code is only a tiny facet of being a Real Programmer. Requoting:

      A good programmer has an intuitive feel for how to solve a problem.

      I add: and can get an intuitive feel for how a body of code does (or needs to) work.

      Unless you're just a hit & run coder, you'll spend the majority of your career doing software maintenance or be dealing with some different aspect of the software life cycle. Developing the ability to fix issues in software that you haven't written, quickly, is the ticket for always having people willing to pay you for doing what you want to do in the first place.

  2. Ah, great for us! by Anonymous Coward · · Score: 5, Funny

    Perhaps he can fix slashdot

  3. Am I missing something? by Anonymous Coward · · Score: 2, Insightful

    "It was won by 14-year-old Henadzi Karatkevich [...] to become the youngest winner in the IOI's 21-year history. [...] Henadzi first entered the IOI in 2006 when he was only 11 years old and won silver (missing gold by only six points). He won gold in 2007 and 2008."

    Wasn't he younger when he won in 2007?

    1. Re:Am I missing something? by dexmachina · · Score: 4, Informative

      Gold is a category of a winners, not the outright winner. He was the overall winner this year.

    2. Re:Am I missing something? by Jeff321 · · Score: 4, Informative

      From the Wikipedia article:

      "The top 50% of the contestants are awarded medals, such that the relative number of gold : silver : bronze : no medal is approximately 1:2:3:6 (thus 1/12 of the contestants get a gold medal)."

  4. That's curious by rumith · · Score: 5, Interesting

    If you look at the history of IOI winners (especially multiple winners, found at the Wikipedia entry, most of them originate from former Soviet republics and Soviet-aligned countries (i.e. Eastern Europe). I currently fail to provide an adequate explanation for this phenomenon: yes, there are plenty of talented programmers in Russia, but as far as I can tell, software industry per se is virtually non-existent there (at least compared to the US).

    1. Re:That's curious by chrisG23 · · Score: 5, Interesting
      This comment is half heresy because I was born and raised in the USA by Romanian parents. What I understand is during the Communist era of the Soviet Union and Soviet Bloc countries, education was greatly elevated. The thinking behind this was that the Communist countries would use the brainpower of their people to propel themselves above the degenerate West. (Its ironic that at least here in the US the opposite philosophy was followed, we make our people too dumb to notice there is a fundamental problem with our education system and then import talent from other countries when needed.)

      Teachers in these countries were expected to be subject matter experts at all levels of instruction, and not just yahoos with lesson plans and an inability to see multiple solutions to a problem (I am speaking from my personal experience with the American public education system here. The fundamental difference comes down to teaching how to find methods to approach and solve different problems vs teaching a method to solve a single problem and requiring little or no understanding of the underlying concepts at play. At least so I am told. It does explain some things.

      The descendants of people in this system (I hear at least in Romania the schools are not what they used to be) are reaping the benefits, and over here in the USA kids are worried about being safe in school, getting shot, or being ostracized by their peers for somehow being smart or trying hard (and being punished by the system for the same).

      My 2 cents.

    2. Re:That's curious by azgard · · Score: 5, Informative

      Actually (as a citizen of Czech Republic, former Eastern block state), I think there were several factors:

      1. Communist regime actively encouraged smart people to work in mathematics, technology and natural science fields. When I was in 6th grade, I went to several hobby groups (organized by the local communist youth organization) - one dealing with natural sciences and second dealing with electronics. While such clubs exist today too, the participation is not so much enforced on the parents.

      2. Today, you can buy almost anything in the shop. Back then, you couldn't. It was natural for people to know how to repair various things, and experimentation with electronics (and later computers) was very common among young people.

      3. Life in communist regime was _extremely_ boring. Doing any technical hobby was a way to escape this boring reality.

      Having a technical hobby is much easier now, because you have specialized shops that will sell you anything you need (which weren't the case at all back then), but much less people actually do it (there is also so much of other stuff to do to enjoy life).

      By the way, I know Martin Mares (one of the frequent winners) personally from the high school - boy, he was and is smart! He could program in assembler like someone would write a letter, and talk to me about differential equations in the meantime. Still, I don't think IOI is so difficult as IOM, so the comparison with Terence Tao doesn't really hold water that well.

    3. Re:That's curious by FlyingSquidStudios · · Score: 2, Funny

      That because in Soviet Russia, state programs YOU!

    4. Re:That's curious by ZombieWomble · · Score: 3, Informative
      The international olympiads are held in maths, Informatics and the sciences, and are actually quite prestigious events - most large countries send full teams, and it's held in many countries.

      Similarly, most countries do put a significant amount of effort into the selection and training of the teams (here's the US training organisation's site, for example). While the exact amount of effort varies, it's still a fair time contribution, even in the US. Luckily, the prestige of the event tends to offset any minor issues it causes in other areas of the student's study.

    5. Re:That's curious by shutdown+-p+now · · Score: 2, Interesting

      Communist regime actively encouraged smart people to work in mathematics, technology and natural science fields.

      It is mostly that. Technical education, especially in hard sciences, was always superior in the USSR (can't say about the rest of the Bloc, but I'd imagine it was about the same). It is not quite on the same level now, but it's still strong. There are many specialized "advanced schools" which teach some pretty complicated math in final school years (in the one I studied in, we did path integrals, for example - that was in late 90s).

      It also helps that those schools are free, too - so long as you qualify. End result is that the brighter kids, regardless of background, are segregated from the rest, and receive education matching their abilities - and, as I mentioned earlier, there's a strong emphasis on math, physics, and other hard sciences. This definitely helps shape the mind for programming.

    6. Re:That's curious by turing_m · · Score: 2, Interesting

      It also helps that those schools are free, too - so long as you qualify. End result is that the brighter kids, regardless of background, are segregated from the rest, and receive education matching their abilities - and, as I mentioned earlier, there's a strong emphasis on math, physics, and other hard sciences. This definitely helps shape the mind for programming.

      Absolutely. That's a common thread with geniuses who achieve a lot in life - not only are they born with the intellectual horsepower but they also happen to receive enough tutelage to achieve their potential. e.g. Euler, tutored by Bernoulli, Mozart and Beethoven, tutored by competent fathers. I imagine that the web is both a blessing and a curse - it's very easy to find extra tutelage/learning in virtually every discipline. But now we have computer games and forums to draw in those with the brains and attention span necessary to succeed in those disciplines.

      --
      If I have seen further it is by stealing the Intellectual Property of giants.
  5. Programming practice by improfane · · Score: 2, Informative

    If you're interested in programming contests, you might enjoy the USACO programming contest.

    http://ace.delos.com/usacogate

    My problem with most contests is that the material is too difficult. I did the first exercise and haven't attempted the second yet.

    --
    Slashdot needs Geekcode | Can anyone recommend any good SCIFI? My tastes: Foundation, Startide Rising, CITY, Ringworld,
    1. Re:Programming practice by ColdWetDog · · Score: 4, Insightful

      You know, that has to be the worst website design I've seen in a while.

      Did you make a typo here? I think you meant 'this website'. And we know that. We've been complaining about Slashdot for about forever.

      --
      Faster! Faster! Faster would be better!
  6. Umm.. it's a high-school contest by mysidia · · Score: 5, Insightful

    Who do you expect to win it, a 30 year old? Most High-School students are between 13 and 18 years of age.

    I don't see it as extroardinary news, that a 14-year-old one won an international contest among students around that age range.

    It would be far more interesting if a 14-year-old won an international contest whose participants included college students studying CS at an advanced level :)

  7. I'm happy for the lad, however... by FlyingSquidStudios · · Score: 4, Funny

    The photograph they chose to feature in the PDF linked above uses the infamous Kubrick Stare so I am worried about him rounding up minions for his insane plan of world domination.

  8. Re:Where can I see the contest's questions? by edsousa · · Score: 2, Informative

    check the website: http://www.ioi2009.org/
    The problems are right there.

  9. Comment removed by account_deleted · · Score: 2, Funny

    Comment removed based on user account deletion