On 27th April 2018, the International Coding Contest took place. The Contest united coders from more than 50 cities around the globe. Our developers, as real jedi who devoted their lives to the Force of Programming, couldn't stand aside just watching and participated in the contest.
The competition was dedicated to asteroid detection. The asteroid challenge was divided into levels. Programming heros who completed the level could move on to the next one. It goes without saying, the tasks became more complicated with each level - 10 thousand images of asteroids, different speeds, rotation around three axes. Participants had to classify those data on asteroids for mining and evaluate their hazard potential level by level.
At the first level participants were supposed to run a full mission with the goal of counting and classifying asteroids in the data. Participants were given time-stamped images. Each image was in the form of a 2D array, containing pixels with intensity values. Positive intensity value indicated the presence of an asteroid.
The task for the second level was to group asteroids by shapes and to identify recurring asteroids.
At the third level participants had to identify the subset of images showing the same asteroid and then output the results in order of asteroid first occurence.
At the next levels, images of the same asteroid were rotated by integer multiples of 90°. At the last level participants could rotate images of asteroids in three dimensions. The results for each asteroid were to be output in order of asteroid first occurrence, as in the previous levels.
Why programming competitions are great?
People remote from this topic often are smiling when they hear the words "sports" and "programming" in one sentence. However, a lot of programmers find such competitions between developers, passionate just like them, a fun and gratifying way to learn something new and to hone the skills. Creating good software apps requires knowledge of algorithms and creativity. Participation in coding contests make you think outside the box, which is a very useful skill at work, besides it helps to improve the problem solving ability.
Both in software development and in the sport of competitive programming, it is critically important to take the time to analyze and test your solution qualitatively, to identify all boundary test cases and stress tests. Competitive programming develops the skill to write code without bugs, to think about extreme cases and about performance, to find innovative solutions.
Our developers are regular participants in various programming contests, because they like coding. This time Sergey Tokarenko and Andrey Markhaliuk won the 3rd place in online classic contest for everyone. As Sergey says: "My personal motivation was to win against C++/Java-guys on Ruby". It's fair to say that our guys fought like lions and made it very well.
There are professions in which sincere interest in what you do is necessary for success in the work environment. Only those specialists (regardless of the field of activity) who are really in love with their work can expand the boundaries of what is possible and go beyond the ordinary solutions. We are proud that our developers are exactly such specialists.