📜 ⬆️ ⬇️

Old Holivar in a New Way: Will Programming Olympiads Change Over Time

On May 19, the St. Petersburg State University team from St. Petersburg became the winner of the ACM ICPC 2016 international student programming contest, the final of which was held in Phuket. Prize-winners received invitations for internships in the research offices of IBM (sponsored the competition) and other international IT companies.

It’s no secret that Russian teams win prizes at such competitions with enviable regularity. But what happens to them in real life? Which of the participants accepts invitations for internships or work in serious companies? The more acute is the question of what happens to them after they have accepted the offer. It is considered to be that programmers-programmers are not ordinary personalities.

On the one hand, world-class companies need such people (future rock stars), on the other hand, these non-standard employees are required to fulfill very standard conditions of cooperation - teamwork, work on time, permanent work mode (even remote), corporate culture As for the observance of subordination, here the young “genius” is required to listen, and most importantly, to follow the instructions of the immediate supervisor, who is often not a “genius”.
')
During the dawn of the holivars on the topic of “Olympiad programmers”, two polar opinions were spread - “Olympiads are not suitable for industrial applied development” and “Olympiad workers work for ten, half of the IT companies in the world hold on them”.

At some point, holivars have subsided, but Russian Olympiad players continue to win tournaments and regularly receive job offers from Western companies. And still not every one of them agrees to such proposals: someone thinks that Russian brains should not flow away abroad, someone even continues to study in graduate school or magistracy, doing his scientific work, which sometimes turns out to be unnecessary, but very complex and interesting.

Human factor


The team of St. Petersburg State University was prepared for the Olympiad by Andrey Lopatin, known for his participation in the development of the social network VKontakte. In preparing students for the championships, Lopatin tried to take into account not only talent, but also the human factor - who will work with whom, what is happening in the team, how to calm down before the final. He understood that truly teamwork nonlinearly increases the chances of winning. Teamwork is setting the interests of the collective above one's own, delegating tasks, recognizing one's weaknesses, and even, in some ways, accepting one's own impotence.

If such work had not been built, the team of the university could turn into a gathering of “unrecognized geniuses”, individual farmers, each of whom would draw a blanket over himself. By the way, with this behavior, individual olympiads just earned the reputation of "difficult" employees, casting a shadow on more conscious colleagues in the shop.

A year ago, Lopatin said that the skills of olympiadists help us in their work, but their adaptation to working on a commercial product is always difficult: “The closer the company is to a startup, the faster this process takes place. And Vkontakte has lived in such an atmosphere for a long time, ”he added.

This year, on May 23, Lopatin spoke with the publication The Secret of the Firm:
- It seems to me that companies should be more open and participate in contests and competitions. It is necessary that people from companies constantly meet and communicate with programmers. What is the olympiad? This is one of the ways of becoming programmers. Many Olympics criticize as if they are divorced from reality. This is not so, the tasks that are solved at competitions are part of some big tasks.

If the competition (through the efforts of the organizers) and their participants (through the efforts of the trainers) will as aggressively (as described by Lopatin) move closer to reality, then the chances of IT companies to hire adequate and sociable "geniuses" will continue to grow. In this case, the proportion of people who are negatively disposed towards olympiadnik will decrease.

Another thing is that ordinary IT companies may consider Google, Microsoft and even “Yandex” divorced from reality. They do not need to think about banal survival. They say that they can afford to carry out experiments, aiming at projects that mere mortals cannot pull. In this case, olympiadniki fit perfectly well. Moreover, the majority of these projects will not reach the release anyway, and after the closure of one project, the olympiadnik will be transferred to the next “promising” front of work - what if a technological breakthrough happens after the (N + 1) th attempt?

- Do you notice among programmers people with entrepreneurial thinking, people who want to start their own business?
- Among my entourage such a little, although the topic is interesting. I do not know, for some reason this is not customary to think about. Maybe you need to think about how to reverse this trend.

From myself I would add that I met at least one programmer who was an olympiad who had founded his own IT company and is still heading it. He started in the AltGTU team in 2005, but at senior courses he switched to other projects: first he got a part-time job by an iOS developer, and then he started working on a custom project for the Ministry of Internal Affairs. After graduating from college, together with their classmate (who, incidentally, was not an olympiad, by the way), they launched their own project, which became a full-fledged IT company in 2 years. Perhaps this case is an exception.

Why do not they like olympiadnik programmers


One of the users of the site "Habrahabr", based on personal experience, formulated the negative features of cooperation with programmers in Olympiad companies in companies engaged in applied development.

Knowledge of efficient algorithms or the internal structure of the processor makes them think that the code should be as efficient as possible. Thus, too much time is spent on optimization, the code becomes completely unsupported, non-extensible and error-resistant, he complains.

And this is probably from painful:
• Attempt to immediately write fast / undemanding code to resources;
• The desire to squeeze everything out of the code, to the detriment of the other indicators;
• Believing that O (n) instead of O (n ^ {2}) or replacing all multiplication operations with 2 by a bit shift will make a candy out of the program.

Unbreakable myth


There is a common myth that all sports programmers go to Google or, at least, to Yandex, where they work inspiringly on search algorithms and their ilk. Portal dev.by interrogated 21 ACM ICPC finalists. Among them there was one person holding a position at Microsoft, one at Google and one at Yandex. The rest work in less "promoted" companies.

However, Geektimes found another olympiadist story confirming this myth. Moreover, this person, Alexander Kuprin, first hit Yandex, and then Google.

Here are the most interesting fragments of his history:
In theory, everything was not very scary. It was scary to practice. So many horribly unfamiliar things have collapsed on me that I didn’t even have to use git [the Git repository] - with the guys I only once and deflated the repository, and then I did everything locally. Looking ahead, I will say that on the last day of the summer internship [at Yandex] I sent my code to the postmaster, and not something I implemented somewhere.

The task of the authorities picked up with the soul. One had to somehow learn how to compare documents for similarity, introduce a definition of similarity and do it all quickly enough - well, assuming that we have over 10 ^ 9 documents.

With a grief in half and God's help decomposing the problem, I began to search for a solution. The guys advised different articles. But what should a real Olympiad do? Of course, come up with something different!

I read articles and I thought for about a week. Then there was a turning point, which I am proud of so far: I came up with a solution. Later, the practice showed that it turned out to be no worse than its counterparts, which still had to be implemented to build graphs and persuade the authorities.

As a result, on my first review I “sent” something consisting of 300+ lines of code. In my defense, I can say that these 300+ lines completely solved the task. The guys fought hysterically. Artyom Babenko cried bloody tears and said that more than five times he would not accept my code.

Later my code grew and spread. It was somehow stupid and strange, given that the functionality has not changed. Five times quickly exhausted, and with me a significant part of the time spent another chief Yegor Samosvat. Despite the fact that I felt like an idiot and looked no smarter, what was going on was pleasant to me. In fact, I studied in both comfort and combat conditions.

Meanwhile, work was slowly coming to an end. It seems to me, by and large, I managed. It may not be as good as it could be, but it did it. In order not to lose contact, they promised to take me somewhere in the winter on a remote place.

Forecasts


Opinions about olympiadniki still differ. Opponents of such discussions may say that how many people have so many opinions, all people are different. However, based on these opinions and stories, it is possible to identify some averaged, most probable trends that are necessary for the same IT companies and others who are not indifferent for the forecast, for making momentous business decisions.

Against the background of research and surveys (for example, a Universum survey or a Smart Start survey ), current trends are such that students and programmers, including, are becoming more pragmatic and mundane, mercantile.

Does this story relate to programmer Olympiad? Do they change in response to the challenges of time? Or do they continue to live somewhere in their "parallel Universe", as many think?

Source: https://habr.com/ru/post/302216/


All Articles