Archive | Interviews RSS feed for this section

2 April 2011 Comments Off

A Virtual Meeting with World’s ACM-ICPC Programmers

A Virtual Meeting with World’s ACM-ICPC Programmers

- Ahmed Shamsul Arefin
October 7, 2006


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


1. Preface

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!

2. A Meeting with Steven Halim, National University of Singapore

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.

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?


Steven:
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!

3. Denis Koshman From Russia (and his Destination Goa!)

Arefin : Hi! headden! How is life? Would you please give us a brief introduction about you, your current works and activities?
Denis:
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?


Denis:
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.


Denis:
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.

4. Lawrence Leung with from Hongkong

Arefin : Hi! Lawrence, Would you please tell us something about you and your life ?
Lawrence:
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.

5. Per Austrin from Sweden (KTH)

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?
Austrin:
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.
Austrin:
There’s no use going somewhere if you are not going to enjoy the trip.

6. Conclusion

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. Detailed information can be found here.

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

7. References

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

19 October 2010 Comments Off

Bjarne Stroustrup::What inspired you to create C++?

In the late 1970s, Stroustrup applied the idea of “classes” to the C programming language to create a new language that allows for high level abstraction—but is efficient and close to the hardware.

Question: What inspired you to create C++?

Bjarne Stroustrup: In the really old days, people had to write their code directly to work on the hardware. They wrote load and store instructions to get stuff in and out of memory and they played about with bits and bytes and stuff. You could do pretty good work with that, but it was very specialized. Then they figured out that you could build languages fit for humans for specific areas. Like they built FORTRAN for engineers and scientists and they built COBALT for businessmen.

And then in the mid-’60s, a bunch of Norwegians, mostly Ole-Johan Dahl and Kristen Nygaard thought why can’t you get a language that sort of is fit for humans for all domains, not just linear algebra and business. And they built something called SIMULA. And that’s where they introduced the class as the thing you have in the program to represent a concept in your application world. So if you are a mathematician, a matrix will become a class, if you are a businessman, a personnel record might become a class, in telecommunications a dial buffer might become a class—you can represent just about anything as a class. And they went a little bit further and represented relationships between classes; any hierarchical relationship could be done as a bunch of classes. So you could say that a fire engine is a kind of a truck which is a kind of a car which is a kind of a vehicle and organize things like that. This became know as object-oriented programming or also in some variance of it as data abstraction.

And my idea was very simple: to take the ideas from SIMULA for general abstraction for the benefit of sort of humans representing things… so humans could get it with low level stuff, which at that time was the best language for that was C, which was done at Bell Labs by Dennis Ritchie. And take those two ideas and bring them together so that you could do high-level abstraction, but efficiently enough and close enough to the hardware for really demanding computing tasks. And that is where I came in. And so C++ has classes like SIMULA but they run as fast as C code, so the combination becomes very useful.

Question: What makes C++ such a widely used language?

Bjarne Stroustrup: If I have to characterize C++’s strength, it comes from the ability to have abstractions and have them so efficient that you can afford it in infrastructure. And you can access hardware directly as you often have to do with operating systems with real time control, little things like cell phones, and so the combination is something that is good for infrastructure in general.

Another aspect that’s necessary for infrastructure is stability. When you build an infrastructure it could be sort of the lowest level of IBM mainframes talking to the hardware for the higher level of software, which is a place they use C++. Or a fuel injector for a large marine diesel engine or a browser, it has to be stable for a decade or so because you can’t afford to fiddle with the stuff all the time. You can’t afford to rewrite it, I mean taking one of those ships into harbor costs a lot of money. And so you need a language that’s not just good at what it’s doing, you have to be able to rely on it being available for decades on a variety of different hardware and to be used by programmers over a decade or two at least. C++ is not about three decades old. And if that’s not the case, you have to rewrite your code all the time. And that happens primarily with experimental languages and with proprietary commercial languages that change to finish – to meet fads.

C++’s problem is the complexity part because we haven’t been able to clean it up. There’s still code written in the 80’s that are running and people don’t like their running codes to break. It could cost them millions or more.

Recorded August 12, 2010

Interviewed by Max Miller

3 September 2010 Comments Off

An Interview with Burunduk2

An Interview with Burunduk2
How long have you been engaged in programming? How did you start?

As I remember I started programming when I was 9 years old in my third year at school. My first programming language was Basic. One day I found an old book describing the principles of solving differential equations. I didn’t understand them at all but the examples were given in Basic and I began learning the language.

When I had grasped the fundamentals, I started coding. First I wrote programs just for mastering the language and then went on with the ones closer to real life problems. During the first year of my self-education I tried to write small games – mathematical and arcades mainly. Later I wrote editors, image viewers, and code-helping utilities. (My own 3-D shooter game I left unfinished.)

I participated in my very first programming contest in the sixth form. It was the Saint-Petersburg School Olympiad where I got the last but one of the third category certificates for solving several problems. By that time I had been already attending a special programming group for kids. At such circles children had an opportunity to study Logo, Pascal, C, Basic and learn how to solve algorithm problems. Thus by the time when I started taking part in real programming contests, I’d already had some programming skill.

[...]

13 August 2010 Comments Off

Joke- Stroustrup C++ ‘interview’

Interviewer: Well, it’s been a few years since you changed the world of software design, how does it feel, looking back?

Stroustrup: Actually, I was thinking about those days, just before you arrived. Do you remember? Everyone was writing ‘C‘ and, the trouble was, they were pretty damn good at it. Universities got pretty good at teaching it, too. They were turning out competent – I stress the word ‘competent’ – graduates at a phenomenal rate. That’s what caused the problem.

Interviewer: Problem?

Stroustrup: Yes, problem. Remember when everyone wrote Cobol?

Interviewer: Of course, I did too

Stroustrup: Well, in the beginning, these guys were like demi-gods. Their salaries were high, and they were treated like royalty.

Interviewer: Those were the days, eh?

Stroustrup: Right. So what happened? IBM got sick of it, and invested millions in training programmers, till they were a dime a dozen.

Interviewer: That’s why I got out. Salaries dropped within a year, to the point where being a journalist actually paid better.

Stroustrup: Exactly. Well, the same happened with ‘C’ programmers.

Interviewer: I see, but what’s the point?

Stroustrup: Well, one day, when I was sitting in my office, I thought of this little scheme, which would redress the balance a little. I thought ‘I wonder what would happen, if there were a language so complicated, so difficult to learn, that nobody would ever be able to swamp the market with programmers? Actually, I got some of the ideas from X10, you know, X windows. That was such a bitch of a graphics system, that it only just ran on those Sun 3/60 things. They had all the ingredients for what I wanted. A really ridiculously complex syntax, obscure functions, and pseudo-OO structure. Even now, nobody writes raw X-windows code. Motif is the only way to go if you want to retain your sanity.

Interviewer: You’re kidding…?

Stroustrup: Not a bit of it. In fact, there was another problem. Unix was written in ‘C’, which meant that any ‘C’ programmer could very easily become a systems programmer. Remember what a mainframe systems programmer used to earn?

Interviewer: You bet I do, that’s what I used to do.

Stroustrup: OK, so this new language had to divorce itself from Unix, by hiding all the system calls that bound the two together so nicely. This would enable guys who only knew about DOS to earn a decent living too.

[...]

16 July 2010 Comments Off

Interview with Joan Rieu

Well, I began programming when I was really young, let’s say 9 years old. It was on an Amstrad CPC 6128+. It had a BASIC environment which wasn’t always a joy to “work” with, because it was really slow (drawing a circle took 30sec), but it did it’s job. It had no way to save what I created as the floppy drive was broken. It had therefore only the BASIC and one game which was on the system disk. Programming was the only thing you could do, when bored with the game Burnin’ Rubber. Switching between BASIC and the game also cleared the RAM (and any program in it, at the same time)… But that’s with this computer that I started.

[...]

6 July 2010 Comments Off

An interview with Bjarne Stroustrup

An interview with Bjarne Stroustrup

Bjarne Stroustrup is the creator of C++, one of the most widely used languages that allows object-oriented programming. He also authored The C++ Programming Language and The Design and Evolution of C++. Stroustrup is currently the head of AT&T Labs’s large-scale programming research department in New Jersey. His research interests include distributed systems, operating systems, simulation, design, and programming.

LinuxWorld.com: Object-oriented languages have been around since the late 1960s. Yet, the object-oriented revolution took place more than two decades later. How do you explain this delay and which conclusions can we draw from it?

Bjarne Stroustrup: Part of the reason is that changes in people’s behavior always take far more time than we are willing to believe. Another major reason is that some people had (and have) unreasonable expectations about “revolutions.” The idea that there is one right way to solve essentially every problem for essentially every user is fundamentally wrong. I’m a great fan of the idea of object-oriented programming and the design ideals and techniques that it supports — originating with Simula 67. However, those are not the only effective techniques. Much programming is best done with techniques that do not fall within a narrow definition of “object-oriented.” And if you broaden the definition of “object-oriented” sufficiently for it not to be an obstacle to good programming and design, you get something that is basically meaningless. See my paper, “Why C++ isn’t just an Object-Oriented Programming Language.”

[...]