Interview with Roman Udovichenko. Code Jam TOP 10 or how well olympiadnik live
Good day, dear habrachititeli!
Most likely, many of you have heard about the Olympiad in sports programming. In recent years, there have been a lot of competitions in this type of programming. These includeGoogle Code Jam , Topcoder Open , and Russian Code Cup . Today I was fortunate enough to have a personal talk with Roman Udovichenko (within the framework of AYcamp, under the special program “Sauron” ), one of those who achieved significant success in them. He lives in the city of Minsk, last year he graduated from the Belarusian State University, works in the company Yandex. He told how he prepared for the Olympiads and how they helped him in life.
I ask all interested under cat. ')
Some successes of Roma:
Silver medalist IOI 2007 and 2008
Absolute winner VKOSHP-2007
ACM ICPC 2011 Student World Cup Finalist
Finalist Topcoder Open 2011 and 2012
Prize-winner Russian AI Cup 2012
Finalist of the Russian Code Cup 2011, 2012, 2013
Silver medalist of the ACM ICPC 2013 student world championship
Finalist Challenge24 2014
Google Code Jam 2014 finalist
Q: Roma, when did you start programming Olympiad?
A: I started to do Olympiad programming in fifth grade.We had different circles at the school, including computer science.I started going to him and soon learned how to solve problems and began to participate in competitions.
Q: How did your parents react to your choice, didn’t they scold you for spending a lot of time on the computer?
A: At first, parents reacted normally, like a normal hobby, but they still did not allow to spend time at the computer anyway.For example, my mother set a limit for me to spend at the computer no more than one hour a day.
Q: How did your Olympiad career start?
A: At the circle we studied the programming language Intal, then very simple algorithms.But then the teacher saw that I was doing very well, and a year later he offered to solve very simple tasks of the olympiad direction, starting with the fact that he calculated the area of ​​the rectangle on both sides and the other very simple ones.Later, I went to the regional Olympiad and realized that it was very interesting for me, and then I began to solve olympiad tasks and learn algorithms.
Q: And when did you have really strong joy from success at the Olympiad?
A: At school everything happened somehow smoothly: at first I went to the regional one, then to the republican olympiad, after a few years the fees for the international olympiad and the international olympiad itself.Probably one of the strongest joys was when I took a first degree diploma at the Republican Olympiad and went to the camp for the international Olympiad.Still, perhaps, when we reached the final of the programming championship in the third year.
Q: If you had the opportunity to return to the past, would you change anything in your workouts?
A: Good question.Perhaps I did not prepare enough for the last school international Olympiad in the 11th grade, I took a silver medal there, I was very unhappy about it.It was probably worth preparing more actively, but for various reasons I didn’t spend much time on preparation.Therefore, I only got a silver medal, although I had enough strength and skills, it seemed like a golden one.Probably, this could somehow be changed, but in general I am satisfied with myself.
Roma second left with silver at IOI-2008
Q: So you always aim only at the highest result, only in the first place?
A: Not quite like this: I try to assess my strength more or less objectively and I understand: in some situations I can count on victory, and in others I pretend where I can be, in what place, based on, for example, some common online workouts.
Q: How are you improving now?
A: At the current level, I do not really train.Because I have already graduated from university, I am engaged in work and participate in competitions, so to speak, having what is.
Q: And at what point were you most “pumped up” in terms of olympiad programming?Was it a camp, a textbook, or something else?
A: It was Cormen’s textbook.Once in the eighth or ninth grade, I don’t remember exactly, I didn’t manage to get to the international Olympiad camp, although I really wanted to.And then I had a sports anger: "Yes, damn, why, I can, I need it!".Then my parents bought Kormen's book, this is such a healthy classic textbook on algorithms, and I began to read it purposefully throughout the summer.
The same book
Q: How is it worth starting an Olympiad career?
A: If you really want to start studying Olympiad programming, then the learning process should be iterative: you try to solve the problem, you don’t succeed - you learn from older colleagues or teachers how it is solved.You learn something new, try to solve new puzzles, again you do not understand, and so on ... Such a practical-theoretical approach should be alternated, because experience shows that if you just sit down on a textbook and start learning algorithms, and then try to solve problems, then Most likely, nothing happens.
Q: How did you prepare for olympiads during your school years?
A: School years ... In school years, I tried every day besides lessons to solve some problems.It took several hours a day.In total, about 20-30 hours a week along with weekends.Fortunately, we had a good director at the school, who was glad that he had such a student at school, and therefore he allowed me to attend classes free all year round, which I enjoyed with pleasure.(smiles) Thanks to this, I was able to devote more time to training.Although I had no problems with visits: I finished school with a gold medal.
Q: And how did you relax?
A: I loved and still love to play board games with friends, at school, for example, we loved to play Colonialists.In addition, they played Munchkin and other classic ones.I also played football and volleyball, in the evenings I often went to the stadium.
Roma plays Magic: The Gathering
Q: And in his student years?
A: As a student, everything is very difficult, because I really wanted to go to the World Cup finals, and there we practiced very hard for some time, maybe even too much.There were such days when we decided on two five-hour contests per day.When we were in the second year, we wanted to go to the finals, we trained 40-50 hours a week, this gave its fruits, but for some reason we still could not go, but we succeeded in the next.
Q: As far as I remember, in the third year you didn’t perform very well, how did you?
A: Yes, in the third year we took the place somewhere in the middle of the table.But I think it was associated with excitement.With this feeling, we could not cope during the entire competition.All thoughts were like this: “Wah!Already everybody passes the problems, everyone already has 2-3, but we have nothing!Panic, panic, panic - what to do? ”This is unconsciously, but it makes it difficult to concentrate.
Q: You were literally a week ago in Los Angeles on Google Cod Jam, are you satisfied with your result or could it be better?And how did the CIS generally perform?
A: The CIS performed well, many guys are at the top of the table.I took 10th place, not because I did not come up with a puzzle, but because of a small ideological error.To be honest, I’m very sad to realize that I’ve figured out how to solve it, but didn’t use the right approach.
left: Roma, Andrei Malevich, followed by an employee from Google Right: Gene, Dmitry Yegorov
Q: And which tour was the most difficult and do you have any algorithm for solving problems?
A: Yes, probably there were none.I try to solve the rounds without unnecessary tension: if at some point there is not enough effort to go to the next round, then so be it.What about the algorithm of the solution: I try not to chase after complex, overwhelming tasks, but I seek to gain points more confidently for the tasks more accessible to me.
Q: You said that you try to participate in various qualifying competitions and, if possible, go to the finals.But does your Olympiad career hinder work?
A: No, it does not interfere.There are a lot of olympiadics in Yandex, both former and current, so we don’t have this: “Do not go to competitions, sit, write code at work" (smiles)
Before the start of Code Jam
Q: Yandex and ABBYY have organized a wonderful camp, it's really cool here.You came here as a teacher, do you like it and what moves you internally?If it were not for your work in Yandex, would you be ready to spend all your time on teaching children?
A: I really like to teach children, this is one of my favorite activities in life.Unfortunately, in our country it is so formed that teachers are not paid very high salaries, so I am not ready to devote myself to teaching.I also like programming, so I want to work in some large company, do some interesting projects and get a good salary.Of course, I also like to teach children very much, so I’m happy to take part in summer camps like this.At the training camps or in the camps, I try to convince the children that I am not scary and I do not need to be afraid to ask questions, because the worst thing that can happen is that I will not answer it immediately, but in a day or two.In general, many guys write to me Vkontakte or via e-mail how to solve this or that problem, and I gladly answer them.
Q: Do you want to be equal to someone?
A: In general, yes.There are guys from Belarus, such as Ivan Metelsky and Gene Korotkevich, who perform well in various competitions.Sometimes I consult with them, take an example in terms of strategic, tactical thinking.There is one wonderful person from Russia - Serezha Kopeliovich, who also serves as a cool example of combining successes in olympiads and active, diverse personality development, because he is sociable, is interested in both dancing and sports games - by and large a very positive young man .
Q: What language do you mainly program in?
A: I solve puzzles in C ++, I write some auxiliary programs on python.
Q: How did you get into Yandex and did the Olympics help you?
A: When Yandex decided to open an office in Minsk, and this happened right after my third year, they came to us with a small team and began to conduct an interview, where first of all they began to invite the strongest olympiads.Accordingly, I and even more than a dozen people who were actively involved in the Olympiads were interviewed, we were very pleased, and we can say that mainly the Olympiads and made up the first part of the Minsk office.Since then, of course, he has been replenished with various other developers and not only developers, even recruiters and other specialists.But the beginning of the office was laid by the teams of olympiads, so we can say that yes, the Olympiads helped me.
Q: Is there any discomfort or disagreement between olympiadics like you and some ordinary developers?
A: Yes, actually, but they are not critical.As in any activity, some people vote for one way of development, and some - some other.Olympiad is characterized by speed and expressiveness in solving problems.That is, when there is some task that needs to be done, the olympiadist is more characteristic of starting to do it faster, so that it works, because he does it in all his competitions and, when he comes to work, he tries to act in the same way.However, this is not always good.Sometimes you need to think, plan, design, before you do.This olympiadniki mostly do not know how.
Q: What can you say about your work in Yandex and how do you see your career in the IT industry in the future?
A: Now I manage a small project that is being done here in Minsk.In principle, I like to combine the process of writing code with managing a small team, distributing small tasks to everyone and some kind of planning, but, unfortunately, recently it has become more and more to go into the task distribution process and planning less and less in the process of writing code, and I don’t like this tendency, because I know how to write code, like it, do it more or less well and don’t want to go away from it into management and management activities.I hope that in the future I will also be able to manage some project, small enough, within the framework of Yandex, in order to have time and control the work of other employees and write the code myself.
Roma at work
Q: What project are you currently working on?
A: We are improving the substrate of the cards, i.e.what is used by other services: traffic jams, routing, panoramas and others.They use the base substrate of the cards, i.e.basic pictures of houses, streets and stuff.We have recently been committed to improving the readability of this substrate.Our managers come up with how to make it more visual, more comprehensible and easier to use and orientate, and we realize it.In particular, at the beginning of the summer we launched a project called “Landmarks on maps” and now on Yandex.Maps we can look at some buildings not simply: “But this building is number 25 on such and such a street”, but it’s written that it is a concert hall, cinema or pharmacy.
Q: Habr read?
A: Yes, I read.(Smiles)
Q: What do you read and what do you think is useful there?
A: I read Habrahabr in Vkontakte feed.I am subscribed to the group and just look through the headlines that come across there and open interesting articles.Usually, I’m interested in some news about machine learning, python, and all of the near-Python.
Q: Hold such a bonus question: Your attitude to poker and how this game “pumps” the brain, is it worth including it in the curriculum, can you learn something from that?
A: Funny question.My attitude is generally the same as for computer games.This occupation, in the first place, depends on the person: you can safely play poker or online games for your own pleasure, without spending a penny, and you can also lose a fortune in some checkers or chess.Games, of course, are more gambling or less gambling, but still the degree of addiction to them depends on the person.As for poker, this game has a good mathematical basis.Not that I encouraged her to learn, but to play poker and understand what is happening there is quite a worthy occupation.