Hi again! I'd like to ask if competitive programming is useful as a preparation for computer science research, specially in the field of data structures and algorithms. If yes, what skills are the most used? I hope someone working in academia could tell me in which way CP helps or helped him/her in his/her regular work.
Thanks in advance <3
CP is more focused upon implementation of the known knowledge in data structure, logic and mathematics. While Research more focused on the study of the structure itself, i.e. analysis of the algorithms, designing new algorithms based on the computing model. In CP we combine algorithms to come up with the solution to the posed problem. For, better understanding of the watch this, https://m.youtube.com/watch?v=xAeiXy8-9Y8 And https://m.youtube.com/watch?v=cpguolx2oms
CP is not "focused upon implementation" and not just "combining algorithms". The most important part of solving a CP problem is still making observations about the problem. It's not really the same as research of course, but still your comment has a weird idea of what CP is.
I think competitive programming is the best way to prepare for academic research in many areas of computer science. In AI, maybe the most relevant skill is to implement ideas efficiently and quickly, which is exactly what CP is about. Algorithm theory on the other hand corresponds to the problem solving part of competitive programming. For example marek.cygan and YuukaKazami are very successful researchers in theoretical computer science.
YuukaKazami seems insane to me. Looking at his 2019 publication record, he had 9 first author papers with 2 best paper awards at top theory conferences (FOCS, CCC, STOC, etc.). This was when he was a 2nd year PhD student...
I would nominate him as the most successful (researcher x competitive programmer).