A Virtual Meeting with Worlds ACM-ICPC Programmers

“This is a re-post. The original article (published by csebuet.org) is here:  http://www.csebuet.org/advice/interview-programmers.html”

Hello ACM-ICPC Programmers! I hope everyone is passing happy programming days. Today my purpose of this article is to introduce you few ACM-ICPC programmers. As a creator of ACM-ICPC Programming Contest Training Site ACMSolver (http://www.acmsolver.org), I met several programmers worldwide from some renowned universities over the Internet (and on Dhaka site event from 2000-2006), I could share knowledge and thinking with them and it became a pleasure for me, here goes some interviews of some of them. I think it will encourage new programmers to enter into the world of programming contest.

One thing I must tell, these interviews were taken over a time period from 2003-2004 (over E-mail), some of the programmers here may have left “problem solving”, but still I think these interviews are very much distinctive and appropriate for all time and all programmers. I wish many new programmers will come out time to time and I wish to take *a chance to talk with them* and try to bring them under lime light. May be that’s the beauty of ACM-ICPC!

Arefin : Hello Steven! How is life? Would you please give us a brief introduction about you, your current works and activities?

Steven : Hello I’m an Indonesian, currently 21 years old at the time this page is written (Please visit : http://www.comp.nus.edu.sg/~stevenha/ for steven’s current status). I’m studying Computer Science in National University of Singapore, NUS. My Honors Year Project (thesis) regarding human guided Tabu Search (a local search algorithm). I’m currently active in Christian campus ministry and my church. I have been interested in programming since 7 years ago. My first programming language is Visual Basic 4. Amazed with the ability to create ‘windows’ similar to other programs in Win 95, I become interested to explore more about visual programming. However, my competitive programming experience started 4 years ago when I joined local programming competition. That is the first time I realized the importance of “algorithm” underlying our codes. Switching from visual programming to learn basic algorithm and data structures leads me to be able to compete in several other programming competitions, including International School Software Competition 1999 @ NUS, Singapore and ACM International Collegiate Programming Contest 2001 @ NTU, also in Singapore.
I’ve never won a programming contest anyway, but I managed to get valuable experience from those several contests. Now programming and solving problems has become my hobby and when I have free time, sometimes you can see me thinking in front of my computer solving one or two problems from UVA website.

Related : See our top range of Kaspersky discounts here at ACMsolver for a great deal

Arefin: For last few years, your website “World of Seven“, is helping the people around the world for problem solving activities, how did you start this wonderful site? Is this your own idea or NUS assisted you to work on this project?

Steven: The idea for my website is from my friend Ilham’s website. At first, I just want to write notes for problems that I’ve solved so that I can refer back to it later in the future in case I encounter similar problems. Surprisingly this website become more and more popular, maybe because this website is somehow listed in the first few ranks by google if you type ‘acm oj’ or ‘valladolid online judge’. How google processed it that way is unknown since I never register my page to google search engine yet. Thanks to google and other search engines. It’s not an NUS project and surprisingly only few people who knows ACM ICPC in NUS ever visit (and revisit) this website. My apology if I haven’t updated the page as often as before. However, I promise that I will keep maintaining this website since this website has benefited programming community in the past and I will try to maintain the standard in the future.

Arefin: What is the basic difference between “problem setter” and “problem solver”?

Steven: Assume that we are referring to the same set of problems…In mathematical notation, “problem setter” >= “problem solver”, or equivalently, “problem solver” is subset of “problem setter”.
In order to be able to be a good problem setter which sets a good, unambiguous question, you need to be able to describe the problem carefully, then you yourself must be able to solve your own problem using a good algorithm (even though your solution may not be the best one). “problem setter” also need to know a diverse algorithms. So he won’t set up a contest containing only simple problems…

Arefin: What is your opinion about the programmers of Bangladesh?

 I have known several Bangladeshi who contacted me through e-mails or msn. From my experience, Bangladeshi programmers are all very interested in programming and it will be a good asset for Bangladesh future in Information Technology.

Arefin: Please make a comment for the new programmers.

Steven: The start will always be difficult. Keep on improving. Success is 1% genius and 99% hard work!

Arefin : Hi! headden! How is life? Would you please give us a brief introduction about you, your current works and activities?
 My name is Denis Koshman from Russia, Petrozavodsk. 21 years old. I started programming on 8086 BASIC and Assembler when I was 10. Games were also important part of my life and remain so until now. At age of 12 I started programming C/C++ and never left this area, even now. Perl, PHP, Java, .Net… whatever else got minds of some of my friends, all of these passed by without my attention and until there is still work to be done under C/C++, I am not going to leave this area.
Life is good. Not as good as it was before my 2nd World Finals, but getting better. It’s because I’ve lost an aim I headed towards for about 7 years. Just work seems not so fun for me, so I am looking for some achievement I could do and strive reaching it. Money never were my primary target. When professionalism reaches some threshold, your goals change as well. You become an artist who works for the art, rather than for cash. Cash, of course, is also very very important, at least to buy new brushes.
Arefin: Can you please tell us some of your WF experiences (the moments you enjoyed much!) ?

Denis: Do you mean World Finals? If so, well… In Russia it’s simultaneously easy and hard. Easy because it has the largest delegation among all countries (9 teams went to Honolulu, Hawaii. 11 teams went to Prague, Czech Republic). We were at the bottom of these delegations on our semifinals ranks. Russian semifinals are more about writing algorithms while World Finals tend to be more like first volumes of acm.uva.es. E.g. brute force problems which do not need hard algorithms but require to keep a bundle of indices in the head. Also, it was problematic for me to program under Linux. I am not from those who don’t like Linux, but most of my time I programmed in Windows. And when Kylix crashed on typing in expression via Ctrl+F7… Imagine the words I expressed when it was after the 1st hour of the contest and that Kylix does not auto-save anything, even during compilation. @#$$. “My” finals were at Los Angeles but I did not manage to get there through our semifinals. What’s more funny, we performed better going to Hawaii, but even heap-sort was the thing I wouldn’t write at contest by that time. Well, there’s a chasm between a stupid and smart guy, and in this chasm one performs even worse than a stupid, but once it’s behind, performance grows better and better to incredible heights. I would like one more finals, but rules are rules.
Arefin: What is your method to get the top Rank ? How much time you spend for problem solving? What is your main inspiration and goal?

Denis: Well, usually I have a month or 2 which I do not have to spend working or studying a lot. That time I just sit and solve problem after a problem. I even wrote an application which sorts acm.uva.es problems on some criteria, so I can get ‘Accepted’ faster. Usually such “sitting” gets about 10-20 hours a day. Not because I force myself, it just happens on itself. As a side effect, it gets a lot of cigarettes (yes, I smoke) and coffee which is not too good after a week of such problem solving. Anyway, it drives me forward (solving problems). My main inspiration which lead to all my achievements was always wish to be the best. I just love this feeling, and I love when someone knows who the best here. This might feel egotistic, but it’s impossible for me to live without that feeling. I tried two times, and things tended to tear apart. Work, contests, home, etc… So I brought myself back on respect line and continued on my achievements. As for problem solving in particular, tasks seem pretty hard at the first glance. When online contests came to acm.uva.es, I couldn’t even imagine that I will win some of them operating with my own head and hands (I never use libraries, every problem is being written from the very beginning, no matter if it’s a contest or simple solving).

Arefin: Question about personal life, What is hobby / What do you do else programming or studying?

 Well, I have wife Olga whom I love very much. And a dog Jarry whom we treat as our son, not just as a pet. It was very important for me to know they love me especially when I came from my 2nd Finals. The goal was lost, but I knew that I am not returning to nowhere and someone awaits me there. Parents of course too, but this is quite different. Please don’t think this was another way of getting for some respect from someone, not at all! My hobby… Well, games (anything. quakes, UT, NFS, strategies). I used to play Starcraft almost as much (or even more) as I programmed at acm.uva.es. Also I like music (Enigm and alike, and Goa Trance especially, BTW it’s the reason of my nickname at acm.uva.es, but I don’t spend time just listening to music. I listen to it during whatever activities I do at my computer (except games which have their own sounds).

Arefin: Please make a comment for the new programmers.

Well guys. I had hard time programming and solving problems in particular, and I had brilliant achievements as well. Just think that when you do something, your brain trains. No matter what you think, it trains. And quantity turns to become quality much sooner than you expect. Just solve the problems to get to the top, and in a month/year/2 you will get pretty high, or even beat some of us, top leaders. Set a goal for 50 problems. When you reach it, set for 100 than for 200. During best nights at acm.uva.es I had about 30 problems solved within 20 hours. It’s a contest rhythm, but you don’t get dissolved so much after that like after a contest. Just because time does not push on you. When you are really addicted, don’t hesitate to write a problem different way. It sometimes uncovers much more than expected. Experience, in particular. I am also very thankful to one guy from my city (nick DDS) who solved 500 problems while I had 200. Then I came back to acm.uva.es and solved 900 just to beat them. Select an “enemy” which has at most twice you have and beat him in ranks. As I saw from acm.uva.es rankings, a few people had large sequences of new solved problems. So you may consider that ranks are frozen, so you don’t need to outrun running people. You outrun milestones which stand still. Yes, it’s true. Even at the top. When I had 100 new problems, my closest opponents raised only for 10 or so. Also. EVERY PROBLEM WITH ACCEPTED_RATE > 20% IS SOLVABLE. Just know that. Even in damn lost cases, when I expected a day of efforts, the problem brake up at most within 2-3 hours. This includes both “how the hell is solved?” and “how the hell I get WA”, and even “Damn TL, what else can I do”. I.e. any problem with a problem is solvable when you solve it. Things get done way faster than any your expectations when you just do them! This applies to everything in the life, not only here. And finally, set a goal in your life. Running for several goals makes it worse for all of them. If you want to be the best, just become the best. Nothing more to it, set a goal, and don’t think, you will reach it. Think that you WILL reach it. This way I reached my goals.

Arefin : Hi! Lawrence, Would you please tell us something about you and your life ?
My name is Lawrence Leung. But my username on uva judge is “..”, so many people will write me email start with “Dear Mr ..” I am now studying for my master degree in computer science and engineering at The Chinese University of Hong Kong. My research interest is Graph theory and algorithm. I start learning C programming in 2000. I participated in ACM Asia regional contest in 2001/2002. Unfortunately I only get 4th place(twice). It is not enough to put me in world final. Now I am retired from contest. I am a member of VOJ ALGORITHMIC TEAM (http://acm.uva.es/problemset/algorithm.html). Mostly I do the bug report to the judge and I am willing to write some programming problems for the judge.

Arefin: What is your method to get the top Rank ? How much time you spend for problem solving?

Lawrence: I don’t have any magic to get top rank. I just keep solving then my rank comes up slowly. (My uva user id is 4 digits only, I registered the account almost 4 years ago) Of course, to keep solving so many problems, you have to pay time to learn many new thing. I have to read many reference books/papers/websites to find the method to solve. Sometimes I will make discussion with Vincent(uva id 5656), he is an intelligent programmer and also has a high rank. Making discussion with him helps me much. On average, every day I use 1 hour for solving problem. Luckily I am not so busy this year so I can pay so much time a day. I think the time on problem solving will be decreased after I graduate from university and start my career.

Arefin: What is your main inspiration and goal?

Lawrence: Now my first goal is to get my master degree in coming few months. I think it ok to achieve this without big problem. My second goal is, get the first rank of uva I have fought for this for 4 years. I hope that can be done within 3 to 6 months. I also want to write some programming problems for uva. But not yet have enough idea, and I think I am too careless to prepare judge data.

Arefin: Please make a comment for the new programmers.

Lawrence: In the electronic board of uva, I always see many beginners just post their source code and ask “Why WA/RE/TLE?” I don’t think it is a good way to learn problem solving. I suggest them making discussion with others. Although it is slower to get AC (ask someone to debug your code is always the fastest way to AC), you can learn much more through discussion. The ACM programming contest is being more and more popular around the world. It means that there are more and more intelligent people joining the contest. If you want to beat them and get the key to world final, you must learn as much as you can. One more comment, if you can, use the most update compiler for programming. There is a old proverb in Chinese: “One who wishes to be good at his work should sharpen his tools first”. I always see some people getting trouble in programming because they use some old compiler. I have meet for few times that, a buggy program crashes after compiling with newer compiler, but the old compiler doesn’t. Then the new compiler can help you discover the bug more easily.

Arefin: Hi! Per Austrin! How is life? Would you please give us a brief introduction about you, your current works and activities? 
Austrin: I am currently (November 2004) 23 years old, living in Stockholm (Sweden (Europe)), and life is a bit too hectic but otherwise fine. Recently, our team placed second in the North Western European Regional of ICPC (which we won last year), earning us tickets to the World Finals in Shanghai next spring. Last year, in Prague, we placed second, so we have high hopes of getting a good position this year as well.

Arefin: What is your method to get the top Rank ? How much time you spend for problem solving?

Austrin: When I started solving problems at UVA, the chances that I would know how to solve a randomly chosen problem were pretty high, so I could basically just pick problems and solve them. But of course, all things come to an end, and sooner or later you run out of easy problems to solve. Nowadays I tend to read through a problem or two and put them somewhere in the back of my mind, and hopefully a solution will pop out after a while. And of course, it doesn’t hurt to have vast amounts of spare time lying around. I’ve kind of run out of that by now, but I still try to squeeze in a few moments of problem solving every now and then (more than I should, I guess). Another good thing is having clever and experienced people around you to discuss things with as you learn to “play the game”, so to speak.

Arefin: Question about personal life, What is hobby / What do you do else programming or studying?
 I sometimes try to be cultivated, and often fail. I like to discove new and interesting music as well as listening to old favourites. I love cats and my 8-bit Nintendo video game (Zelda, yum!), as well as LucasArts’ adventure games. Good friends are also jolly fun to have.

Arefin: Please make a comment for the new programmers.
 There’s no use going somewhere if you are not going to enjoy the trip.

Here I have tried out to make some interesting talks with world’s best programmers. I am thankful to the programmers who seriously have participated the conversation sessions over the Internet. But this is not the end rather the beginning, Best of luck for all ACM-ICPC lovers.

* Author is compiler of Art of Programming Contest Project. 

** This article is to appear in “1st Science Olympiad 2006″ Souvenir arranged by Daffodil International University on November 2006.

©Ahmed Shamsul Arefin, all rights reserved. Article released under Creative Commons Attribution NonCommercial NoDerivs version 2.5 or later.

Leave a Reply

Your email address will not be published. Required fields are marked *