U
U
user_of_toster2021-01-11 10:57:28
Algorithms
user_of_toster, 2021-01-11 10:57:28

How much do Olympiad programming and development intersect?

How much does the knowledge gained while solving olympiad problems / sports programming problems (topcoder \ codeforces) help in solving applied problems at work and on real projects?

Particularly interested in the opinion of Ilya Nikolaevsky

Answer the question

In order to leave comments, you need to log in

4 answer(s)
W
Wataru, 2021-01-11
@user_of_toster

Solving Olympiad problems first of all teaches you how to solve problems, and only then algorithms and data structures. It turns out some kind of mindset, or approach to tasks, if you like. This helps a lot to collect thoughts in a heap, formalize the problem and solve it, even if tricky algorithms are not needed there.
Algorithmic knowledge, in my opinion, is also absolutely necessary. Not every day and not in all areas, but when it is needed, it is really needed. The trick is that without knowledge of these algorithms and the ability to formalize tasks, you won’t even understand that somewhere you can apply an “algorithm” - instead of a short, simple and very fast solution, you will have to fence some cumbersome and complex full enumeration, or not at all clear what to do. Therefore, I also consider the popular opinion that everyone does not need to know algorithms - a dedicated mathematician in the team is enough - I also consider it wrong.
From my experience: in Google I had to write dynamic programming, all sorts of tricky dichotomies (like binary search, but by function and not by array), linear regressions, tricky data structures (like sliding window max),apply number theory.
One problem that I had to solve, I now ask for an interview. And it is no different from those hated by many "algorithmic tasks for interviews that no one will ever need." Although I myself committed her solution and it works in many millions of computers around the world.
For balance, I will also point out the minus of the Olympiads - this is the habit of writing terribly unsupported code. But it is easily cured in a few weeks. Especially if the project has a code review.

G
Gennady Kruglov, 2021-01-11
@robinzonejob

Solving problems, especially complex ones, develops thinking and prevents the brain from becoming numb and lazy.
On real projects, lazy brains often strive to resort, for example, to ready-made solutions or copy-paste, which is not always ideal or is redundant, and when the brains are in good shape, such temptations do not arise and any task is a new challenge.

X
xmoonlight, 2021-01-11
@xmoonlight

When a project contains complex ("heavy") mathematical calculations when processing data (search, sorting, clustering, hashing, traversing the "tree", etc.), then practice ( experience, not knowledge! ) at olympiads / sports -tasks helps to encode (program) the logic of data processing in the most optimal way.
If the projects do not contain the processing of complex data structures (websites on CMS, a blog on WP, etc.), then of course: Olympiad skills will not help here.

A
Andy_U, 2021-01-12
@Andy_U

I would say that real success in programming olympiads correlates with the success of a person as a programmer. But just to solve them in order to fill my hand, I don’t see much point.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question