Why do we support sports programming
For eight years, Naumen is actively engaged in educational programs, in particular, supports the Olympiad in sports programming. Today we will tell how the AFM movement has changed and why it is interesting to us.
We note immediately that we will not write about sports programming as an intellectual sport (there are team and personal competitions), we are interested in ACM ICPC - the international team student competition in sports programming. Often these concepts are confused even by the participants of the Olympiad.
A little about ASM
As the organizers of such Olympiads in Yekaterinburg told, in fact, the concept of ASM is already outdated. Formerly, they were officially called ACM ICPC, and since 2018, they are simply ICPC. Therefore, the word “aysymshchik” needs to be replaced, apparently, with “aisypishnik” :)
According to the general rules, teams of three people participate in the competitions. These are university students or first-year graduate students. Teams are given computers for five hours and from eight to twelve tasks. Decisions are made in C, C ++, Java, Python, Pascal, C #, etc ... Answers are sent to the testing server. If the program issued the wrong answer or did not meet the time or memory limitations, the command that sent it receives a message about it and can send a corrected version of the code. The problem is considered solved if the program has issued the correct answers on all tests. Unlike other competitions, partial solutions are not taken into account.
The winner is the team that correctly solved the largest number of tasks. If several teams have solved the same number of tasks, then they look at the penalty time. It is considered the time of delivery of tasks and the attempt with which the code was written.
ICPC competitions differ from computer science competitions with an increased number of tasks that take a relatively short time. As a result, participants need to write code quickly, efficiently, using extensive knowledge of algorithms, and as clean as possible, without bugs.
If we talk about trends, then every year the number of teams is becoming more and more. Moreover, both at school and student competitions. Accordingly, the tasks become more difficult, but the process itself is more fun.
On the pros and cons of sports programming told staff Naumen, who participated in the ICPC competitions.
Pros
+ best practice on algorithms;
+ increases the speed of the solution;
+ well versed in basic things, for example, how does HashSet differ from TreeSet;
+ you can calculate the speed of execution and the amount of memory consumed;
+ you learn to find errors both in the, and in another's code;
+ you understand the internal structure of a programming language: the pros, cons and pitfalls;
+ the ability to find like-minded friends;
+ the opportunity to earn decent money. For example, for a victory on VK CUP they give 2 ^ 20 (~ 10 ^ 6) rubles;
+ If you're lucky, you travel around Russia and the world for free.
Disadvantages
- “govnokod” - the main thing is not quality, but that the solution passes all the tests
- you forget about such concepts as architecture, framework
- according to male colleagues, few girls.
Certainly, ACM competitions, like other professional Olympiads, are needed to identify talents. . If we are talking about working out real programming skills, ACM is not the best way. But he can give the necessary connections.
“When I got a job at Naumen, I had neither work experience, nor even knowledge of the language used in the department. But there was a couple of years of intensive ACM, which helped me to get a job and start developing in industrial development, ”said our colleague Vlad.
To begin, let us explain how Naumen supports the ICPC Olympiads:
We understand that ICPC is needed, like other professional competitions, to identify talents. Olympics show a person immediately as a specialist, and as part of a team. For us it is important.
Why do we support such events:
We note immediately that we will not write about sports programming as an intellectual sport (there are team and personal competitions), we are interested in ACM ICPC - the international team student competition in sports programming. Often these concepts are confused even by the participants of the Olympiad.
A little about ASM
As the organizers of such Olympiads in Yekaterinburg told, in fact, the concept of ASM is already outdated. Formerly, they were officially called ACM ICPC, and since 2018, they are simply ICPC. Therefore, the word “aysymshchik” needs to be replaced, apparently, with “aisypishnik” :)
According to the general rules, teams of three people participate in the competitions. These are university students or first-year graduate students. Teams are given computers for five hours and from eight to twelve tasks. Decisions are made in C, C ++, Java, Python, Pascal, C #, etc ... Answers are sent to the testing server. If the program issued the wrong answer or did not meet the time or memory limitations, the command that sent it receives a message about it and can send a corrected version of the code. The problem is considered solved if the program has issued the correct answers on all tests. Unlike other competitions, partial solutions are not taken into account.
The winner is the team that correctly solved the largest number of tasks. If several teams have solved the same number of tasks, then they look at the penalty time. It is considered the time of delivery of tasks and the attempt with which the code was written.
ICPC competitions differ from computer science competitions with an increased number of tasks that take a relatively short time. As a result, participants need to write code quickly, efficiently, using extensive knowledge of algorithms, and as clean as possible, without bugs.
If we talk about trends, then every year the number of teams is becoming more and more. Moreover, both at school and student competitions. Accordingly, the tasks become more difficult, but the process itself is more fun.
Pros and cons of AFM
On the pros and cons of sports programming told staff Naumen, who participated in the ICPC competitions.
Pros
+ best practice on algorithms;
+ increases the speed of the solution;
+ well versed in basic things, for example, how does HashSet differ from TreeSet;
+ you can calculate the speed of execution and the amount of memory consumed;
+ you learn to find errors both in the, and in another's code;
+ you understand the internal structure of a programming language: the pros, cons and pitfalls;
+ the ability to find like-minded friends;
+ the opportunity to earn decent money. For example, for a victory on VK CUP they give 2 ^ 20 (~ 10 ^ 6) rubles;
+ If you're lucky, you travel around Russia and the world for free.
Disadvantages
- “govnokod” - the main thing is not quality, but that the solution passes all the tests
- you forget about such concepts as architecture, framework
- according to male colleagues, few girls.
Certainly, ACM competitions, like other professional Olympiads, are needed to identify talents. . If we are talking about working out real programming skills, ACM is not the best way. But he can give the necessary connections.
“When I got a job at Naumen, I had neither work experience, nor even knowledge of the language used in the department. But there was a couple of years of intensive ACM, which helped me to get a job and start developing in industrial development, ”said our colleague Vlad.
Why IT companies
To begin, let us explain how Naumen supports the ICPC Olympiads:
- provide gifts to participants and winners;
- help in the program: opening and performance of employees before students;
- affiliate support organization of the event.
We understand that ICPC is needed, like other professional competitions, to identify talents. Olympics show a person immediately as a specialist, and as part of a team. For us it is important.
Why do we support such events:
- Olympiads draw talented students and schoolchildren into the world of IT;
- if a person spends his time on olympiads and additional training, he must be supported and helped to develop further;
- increasing company awareness. Olympiad participants are the target audience of companies. And it will be a mistake not to take the opportunity to tell about yourself not just to IT students, but to those who are “sick” with programming.