Just finished

Due to the COVID-19 pandemic, IOI 2020 was hosted by Singapore online. Visit the official website to learn more.

Just finished   IOI 2020 was held online

Interview: Sofiia Melnyk

In this interview, we will talk with Sofiia Melnyk, a competitive programmer from Ukraine and a two-time silver medalist at the International Olympiad in Informatics.

Apart from discussing her experience with the IOI, we will chat about how the IOI team is selected in Ukraine, and what it takes to be successful at programming competitions.


1. Can you give us a brief introduction about yourself (where are you from, where do you go to school, some accomplishments you are proud of, etc…)

I’m from Kremenchuk, a town in Ukraine. I’m studying in the 11th grade, in the lyceum, which is specialized in mathematics and computer science. I can’t say that I’m a perfect student. However, I have some achievements not only in computer science, but also in physics and mathematics. I hope my knowledge in these subjects will help to find a dream job. 


2. When did you start being interested in programming?

The most amazing thing is that my father is a computer science teacher. His students have won more than 20 medals on IOI since 2006 and I was always admiring them. In my childhood he noticed that I was much more interested in solving logical tasks than in painting or playing with dolls. So when I was about 9 years old I started programming. It wasn’t something very hard, just easy problems like A+B, or maybe a bit harder. However, while I was solving such problems, I understood that I really like this. Therefore, thanks to my father, I started developing in computer science, solving problems on different systems like Codeforces and when I was 11 I went to the UOI (Ukrainian Olympiad in Informatics) for the first time. 


3. What is your favorite thing about competitive programming (do you like computers, meeting new people, learning new stuff/algorithms/data structures, etc)

My favorite thing about competitive programming is an ability to learn something new, travel all over the world and meet new people. Each olympiad brings me new interesting meetings and an opportunity to talk to amazing people. The most wonderful thing is that I can visit distant countries like Japan (in IOI 2018) or Azerbaijan (in IOI 2019). I’m waiting to visit Singapore, it was my dream since childhood. 


4. Can you briefly describe the way IOI participants are selected in Ukraine? (how many competitions there are, are they online/onsite, maybe you know how many high school students take part in them...)

First, each region of Ukraine chooses its participants, who go to UOI and represent their region. There are four stages to go to UOI. First is a school competition, second is a town competition, third is a region competition, which helps to choose 3-15 participants to go to UOI. In UOI, the top 8 or more students then participate in IOI selection. The selection includes 6 contests and the best four students go to IOI. 


5. What is the best way to practice in order to be successful at programming competitions? What skills do you think are required in order to be good at it, and be able to win a medal in a competition such as the International Olympiad in Informatics?

In my opinion, the most important thing is to love your hobby. Therefore, you just need to learn algorithms, practice, practice and practice again. Of course, basic mathematical skills, an inquisitive mind and an ability to learn something new are extremely important. However, if you really want to become a good programmer, you just need to work on your knowledge. 


6. What programming language do you use when participating at programming competitions? What are its advantages?

When I was 10 I used Free Pascal, because it was very easy to learn. The problem was that many tasks were too hard to solve on this language, so I started learning C++ and now I always use it when participating in programming competitions.


7. What is your opinion on online competitions vs onsite competitions? Which one do you like more?

I like online competitions like Codeforces or Codechef rounds, because they help you to develop. However, I definitely prefer onsite competitions. I have an opportunity to feel that atmosphere of competition around me. Moreover, I am usually more concentrated when I hear that sound of beating on the keyboards and see other participants, than when I sit home alone and have all amenities.


8. Do you have a favorite IOI task and which one is it (and why)? How about a favourite programming competition (apart from the IOI of course :)), that you really like?

To be honest, I have never thought about my favorite IOI task. Saying about competitions, I really like team olympiads, because I’m very sociable and like discussing problems with others and to think about solutions together. 


9. The majority of IOI participants are aiming to win a bronze medal (~50% of participants don’t end up winning a medal at all). Do you think there is any difference between a strategy to win a gold/silver/bronze medal, and what would you recommend to students aiming for a bronze? (ex. go with the easiest subtasks, don’t spend too much time on one task, ...)

In my opinion, everyone needs to choose their own strategy. However, I think that it’s important to all participants not to concentrate all attention only on one problem. Maybe the best strategy is to solve all the easiest subtasks and then try to solve harder ones. It depends on the contest difficulty.


10. What do you think about competitions where you get a result for your submissions immediately (like the IOI), versus competitions where you don’t know if your submission is correct or not until the competition has ended? 

I definitely prefer competitions where you get a result for submissions immediately. It helps me to understand what I need to do after submitting. I’m not a fan of competitions where you don’t know your result until the end of the contest. It’s just not my format, I can’t distribute my time correctly while participating in such competitions.


11. Unfortunately, there are a lot more male participants at the IOI compared to female ones (this is true for other programming competitions as well). How has your experience been participating at the IOI? Would you recommend to other girls to give competitive programming a shot?

I’m sure that it doesn't matter what gender you are. Yes, there are much more male participants on IOI and other programming competitions. However, girls can win any medal if they are well prepared and really want to. 


12. What do you do when you are not studying/competing? Do you have any hobbies - sports, watching movies/TV, computer games, ...?

I really love reading books and watching series or films. I usually read 1 or 2 books in a month and I have a big collection of them at home. Even when I go to an olympiad in another city or country, I always take a book with me. I remember when I was at IOI 2019 and in the evening before the contest we were limited in communication with our friends and relatives, I was reading a book and it helped me not to worry.  

Need more info?

Beginners

Not sure where to go? Click here to view some basic information on how to learn programming and prepare to win a medal at the IOI.

Statistics

A couple of volunteers maintain a separate page with stats about people who participated at the International Olympiad in Informatics.

Journal

The IOI publishes a journal every year, with original high-quality scientific papers related to education, contests and algorithms.