You had been working at Saratov State University for quite a long time. What was your motivation to quit and start working at ITMO?

I’ve been developing Codeforces for almost ten years. When I founded the platform, it wasn’t very difficult to juggle teaching at the university and working on this project. But gradually, the project grew and a lot of new tasks emerged. I didn’t have anyone to delegate all these tasks to, but at the same time, I didn’t want my work at Codeforces to affect the quality of my teaching at the university. So I realized that I wanted to focus on Codeforces and find like-minded people interested in competitive programming and willing to further develop this field.

Here in St. Petersburg, and at ITMO University in particular, there are many talented people interested in programming as much as I am. I used to come to ITMO every year to take part in the ACM ICPC competitions, and I really enjoyed those trips. I felt so excited every time I went to the university cafeteria and saw students sitting in front of their laptops and coding or discussing programming. I have already held the first meeting with them and I see that most of them are really active and motivated. But what surprised me most was that when I asked how many of them have an account on Codeforces, almost all of them raised their hands.

Why couldn’t you delegate your tasks to others?

I like coding and creating tasks for competitive programming competitions, and I’m also a jury member at the ICPC programming contest for students. I really love my job, and I know that it requires some skills that other people don’t have, for example, negotiations or programming skills. That’s why it was hard for me to delegate these tasks to somebody else.


Your approach to work is very different from what is popular nowadays. How did it come about?

Every project is unique and requires a different approach. My approach allows me to achieve good results, so I don’t want to change it.

Why is it web development that you are going to teach at ITMO University?

I have most experience in algorithms and data structures, but it turned out that there are quite a lot of specialists in these fields at ITMO. So they offered me the web development teacher position. My course is an intensive one-semester practical introduction to web development, aimed at giving students some basic knowledge in the field, as well as the opportunity to understand if they like it or not.

Have you got any other professional plans in St. Petersburg?

Apart from teaching at ITMO, I would also like to become a jury member for programming competitions taking place in St. Petersburg. I see it as a great opportunity to join the IT professional community and meet some interesting people.

How much have the approaches to training programmers evolved over the last five to ten years?

ACM ICPC 2002 Silver winners. Mikhail Mirzayanov is on the right. Credit:
ACM ICPC 2002 Silver winners. Mikhail Mirzayanov is on the right. Credit:

I’ve been engaged in it for more than 20 years, so you can call me an expert in this area. Programmers training has become much more professional: now you have to spend much more hours training to participate in the world championship finals. This was due to increased interest in competitive programming all around the world and the emergence of new training platforms such as Codeforces. On the other hand, I’m not sure if it’s the same in St. Petersburg, but in Saratov, one may notice a decrease in students’ interest in competitive programming. The thing is, just a few years ago, students didn’t have so many options if they wanted to showcase their skills to potential employers. But now it has become easier to get an internship in your dream company, and many students opt for this opportunity. But the general trend is good, and Codeforces audience is growing.

Thanks to the Unified State Exam, many talented students move to bigger cities, such as Moscow and St. Petersburg to continue their studies, which makes it harder for small-town universities to participate in world programming competitions and win. But the good thing is that such universities use all the opportunities they’ve got: they organize many competitions for students, work with school children, use new approaches to competitive programming training, etc.

Have you thought about redesigning the Codeforces platform to make it useful for those who are not interested in competitive programming?

Codeforces was originally created for those interested in solving tasks and taking part in competitions. I don’t think that it needs redesigning. Codeforces is a social network for training and communication. Of course, in big cities, students hardly need this platform as they can communicate offline. But for many students living in smaller cities, this is the only opportunity to find like-minded people.

Codeforces Platform
Codeforces Platform

In your opinion, is it important for everybody to have basic IT skills? For example, starting this year, studying a course in digital culture will become mandatory for all incoming ITMO students. What do you think about this initiative?

I think that it’s a bit early to talk about the results, but I’m convinced that there are certain skills that everybody, even school children, must acquire, for example the basics of Internet security. Everyone has to understand what the two-factor authentication is and why they should be using it. It’s pretty much the same as teaching philosophy. One might ask why is it useful? However, it is widely accepted that every intelligent person should have at least a basic understanding of this subject. And I think that it’s the same with IT.

What is your professional background? What are the biggest milestones in your career to date? And what is your motivation for working on the same thing for such a long time?

I think that it all started when I transferred from a regular school to Saratov physics and mathematics lyceum. I had a very good math teacher, who first exposed me to the beauty of mathematics. That was where I started programming as well. Back then, I didn’t have a PC, so my computer science classes were the only place where I could practice coding. I also realized that I liked competitions and even managed to win a few. Then I entered the university where I met lots of like-minded people and started training hard. But my enthusiasm rapidly vanished when I went to the ICPC finals and realized that I couldn’t play by the rules anymore.

Saratov State University team at ACM ICPC 2016
Saratov State University team at ACM ICPC 2016

After a while, I realized that I really enjoyed sharing my knowledge with others, school children and university students alike. So I started training school children. I’m sure that the skills students acquire in my classes, such as working with algorithms and data structures, programming, and teamwork skills will come in handy in their future career. That’s what motivates me most to go on.


How to motivate students to start programming and learn mathematics? How should a teacher behave in the classroom?

Every time when I started teaching new students in Saratov, the most important thing was not to frighten them off. I gave examples of successful programmers, who landed a great job thanks to a programming competition. In my view, a teacher has to be interested in what they are teaching, otherwise, students won’t be interested either. I also use the competitive approach, as young people are often eager to prove that they are smarter than the others or to try their hand at something new, and competitive programming is just perfect for that.

Back to top