lrvideckis's blog

By lrvideckis, history, 5 years ago, In English

Here are some reasons I believe people do CP:

  • Enjoyment
  • Preparation for job (coding) interviews
  • Preparation for Competitions

CP seems to be a low priority activity. For example, school and job responsibilities usually take higher priority. It’s not possible (realistically) to make a living from CP. Thus, people taking part in CP usually have good reasons.

The nihilist viewpoint says CP is just solving contrived made-up problems. Who cares? There’s little/no benefit to society. Unlike CP, programming for a job creates services (value) for people. Unlike CP, Computer Science research pushes the boundaries of knowledge of the field (value). Why spend time in an activity which doesn’t product relative value? Again, it seems the people doing CP must have good reasons.

I’m wondering what people’s reasons are for doing CP.

  • Vote: I like it
  • +129
  • Vote: I do not like it

| Write comment?
»
5 years ago, # |
  Vote: I like it +370 Vote: I do not like it

Haha you don’t think it’s fun?

»
5 years ago, # |
  Vote: I like it +71 Vote: I do not like it

I like the short bursts of intense concentration. Normally when you're on a job or studying for courses, time pressure is not so acute because deadlines can be days or weeks ahead. On the other hand, the coding competitions have the speed and endurance dimension attached to them which makes them attractive. I like to think of them as cardio exercises such as jogging: you practice a couple of times a week and it already sharpens your thought process and trains your concentration grit.

The content (value) of the problems is not so important (as long as it is interesting and new); it's more about the state and regime of thinking they require you to put yourself into to find the solution.

»
5 years ago, # |
  Vote: I like it +18 Vote: I do not like it

I started doing CP when I was a first year student, at first I wanted to get better at programming, next I started to prepare for ACM contests, this is my last year in ACM but I am now just doing it for fun :D

»
5 years ago, # |
  Vote: I like it +229 Vote: I do not like it

Thus, people taking part in CP usually have good reasons. [---] There’s little/no benefit to society. Unlike CP, programming for a job... [---] Unlike CP, Computer Science research...

Reading such things has always irritated me. To me, competitive programming first and foremost is a hobby. When you talk about football or disc golf or stamp collecting or whatever, such questions don't make sense — they are hobbies, they don't need to have some benefit to society. But because CP involves programming, a famously useful activity, you somehow need to justify it now? You don't "choose" between competitive programming and programming as a job, because they obviously fill different roles in your life.

And yes, my primary reason is that it's fun. There are many things I like about competitive programming. Competitive programming problems are ideally built around some interesting observations that lead to beautiful solutions. It is incredibly satisfying to come up with a difficult observation on your own. Contrast this to real life problems — even if they are very hard, the solution is kinda mundane and usually non-exciting.

»
5 years ago, # |
  Vote: I like it +87 Vote: I do not like it

s/CP/football/g

»
5 years ago, # |
  Vote: I like it +160 Vote: I do not like it

It's a fun way to get me into a good university. The other option is to get good grades and good scores but that's boring and much harder :/

It's still fun enough on its own for me to continue doing it now.

»
5 years ago, # |
Rev. 2   Vote: I like it +7 Vote: I do not like it

Again, it seems the people doing CP must have good reasons.

Honestly, no matter how useless an activity, the people doing it will have their own set of reasons to do it. Even if you replace CP with sleeping, there are people who enjoy sleeping marathons too.

Comparing this to relationships, when everyone else says your bf/gf is bad (and he/she really is), one may still insist that he/she is good because love is blind.

Well, to each his own I guess.

»
5 years ago, # |
  Vote: I like it 0 Vote: I do not like it

CP gave me a second chance...

»
5 years ago, # |
  Vote: I like it +268 Vote: I do not like it

Unlike CP, Computer Science research pushes the boundaries of knowledge of the field (value).

Solve GP of Zhejiang. It kinda does both

»
5 years ago, # |
  Vote: I like it +35 Vote: I do not like it

Kinda like a sport, which means it keeps my brain and my hands working quite consistently, especially during the lazy period when I do not have anything to do.

»
5 years ago, # |
  Vote: I like it +12 Vote: I do not like it

I take CP as my interest, just because I love it.

I'm not very good at it though, but it doesn't matter. I just enjoy thinking seriously, as well as getting a strong feeling of satisfaction when successfully solve the problems. (awa)

»
5 years ago, # |
  Vote: I like it +67 Vote: I do not like it
  1. It's fun.
  2. Our country's education system is almost completely based on memorizing unimportant shit and has nearly zero focus on problem solving. Hence I have had very little opportunity to solve problems on my own. Unfortunately I didn't know much about IMO, IOI etc when I was in school. CP is my way to try activating problem-solving parts of my brain which have been almost unused before joining CP.
  • »
    »
    5 years ago, # ^ |
      Vote: I like it +19 Vote: I do not like it

    as a Tunisian, I can definitely relate to this.

»
5 years ago, # |
  Vote: I like it +73 Vote: I do not like it

There’s little/no benefit to society.

Having sex with condoms gives little/no benefit to society. People do it all the time, though.

  • »
    »
    5 years ago, # ^ |
      Vote: I like it +51 Vote: I do not like it

    Well, it eventually reduces one's carbon footprint, so there is impact in the end.

    • »
      »
      »
      5 years ago, # ^ |
        Vote: I like it +70 Vote: I do not like it

      So does suicide, yet no environmentalists take that option.

      • »
        »
        »
        »
        5 years ago, # ^ |
          Vote: I like it +9 Vote: I do not like it

        It's just a matter of time before it becomes a suicide cult.

      • »
        »
        »
        »
        10 months ago, # ^ |
          Vote: I like it -15 Vote: I do not like it

        but Thanos took that option and he became a villan

»
5 years ago, # |
Rev. 2   Vote: I like it +30 Vote: I do not like it

I am doing CP, because it's super fun and because I love problem-solving! Well, don't say that it's useless because it's directly or indirectly very useful and it has let me develop a lot of skills, including:

*programming skills: became better at testing and finding edge cases, writing bug-free code, plus its difficulty is much higher than some software development fields (LOL, web development (front-end and back-end) is much easier for me compared to CP. Even stuff like DBs or Design Patterns or even some deep learning look much easier on my opinion!)

*problem solving skills: CP has enabled me to improve a lot my problem solving skills. Also, because of it, I have learned easier discrete math (combinatorics, probabilities, etc.), induction (which has a lot of applications in a lot of areas) and even I saw improvements in my math competition skills!

Basically, because I like doing CP, I think the time that I engaged with it has helped me to think more clearly, better and even to have more endurance than before. I remember, when I was younger, by the time I tried to think let's say a bit more than 1 or 2 hours, I felt tired and I stopped. But, now, I can think math for much more (say about 5 hours)! Big, big plus!

Lastly, you said that CP is useless for humanity. In the same logic, we could argue that the entire entertainment industry (TV, movies, all the sports around, etc.) do not help to advance society at all (for the same or similar reasons you posted). But I doubt that people who work on those feel like that at all. So, please, don't worry about it! Just have fun and try to use your skills to help people do stuff!

»
5 years ago, # |
  Vote: I like it +14 Vote: I do not like it

To become red.

Yeah I know that sounds unrealistic af but everybody has dreams lol (at the moment I'm doing interview preparation on a separate platform) I hated it in the beginning when my university forced us to take part in competitions, but since I found codeforces I dont hate it anymore. The problems here are good :)

  • »
    »
    5 years ago, # ^ |
      Vote: I like it +8 Vote: I do not like it

    Just wondering, if there exists universities which forces students to take part in algorithmic contest rather than just coursework.I would be lucky to get into those universities. :D

  • »
    »
    5 years ago, # ^ |
      Vote: I like it +3 Vote: I do not like it

    Becoming red: Unrealistic — maybe (idk); possible — yes. Most people will tell you this because they believe in growth mindset.

    • »
      »
      »
      5 years ago, # ^ |
        Vote: I like it +5 Vote: I do not like it
      Spoiler
      • »
        »
        »
        »
        5 years ago, # ^ |
          Vote: I like it +8 Vote: I do not like it

        I know a former grey guy who has become orange personally. Your goal is tractable. You got this.

»
5 years ago, # |
  Vote: I like it +51 Vote: I do not like it

I don't have a life :(

»
5 years ago, # |
  Vote: I like it +20 Vote: I do not like it

Good question. I don't know why I do CP, I'm confused now

  • »
    »
    5 years ago, # ^ |
      Vote: I like it +12 Vote: I do not like it

    Dang, scaring people away from CP was a risk of this blog. It wasn't my intention. But, I think it's important to have reasons for doing what you do. And people have commented lots of great reasons for doing CP here.

»
5 years ago, # |
  Vote: I like it +6 Vote: I do not like it

free university scholarships + fun

»
5 years ago, # |
  Vote: I like it +6 Vote: I do not like it

It's the most fun form of programming out there with the perfect blend of joy and depression.

»
5 years ago, # |
  Vote: I like it +13 Vote: I do not like it

It's funny, I took a turn when reaching university and learning Comp. Science despite I used to be skilled in Chemistry instead. The first thing caught my mind when reaching uni was CP.

Trained a lot in the last few years, reaching this, having some decent part-time work, and now suddenly CP feels void to me. I don't really have the heart for it as a competitor any more.

However, it gave me quite some fundamental skills to get into this industry, and I'll credit it for that.

  • »
    »
    5 years ago, # ^ |
      Vote: I like it +37 Vote: I do not like it

    Haha, I am just the opposite! I was quite good at math and CP as a kid, but then decided to challenge myself and entered a chemistry program at uni. And now I am a professional chemist that does CP to fill the void of young years excitement :\

    • »
      »
      »
      5 years ago, # ^ |
        Vote: I like it +13 Vote: I do not like it

      What coincidence, man. Never thought there was someone that way :D

»
5 years ago, # |
  Vote: I like it +7 Vote: I do not like it

To pretend I'm working on something very serious.

»
5 years ago, # |
  Vote: I like it +60 Vote: I do not like it

For me it is:

  • hobby: just as everyone else, this is something I am doing in my spare time;
  • sport: I really like to compete, and this is one of few things I am good enough at to feel satisfaction;
  • way to keep my brain alive. I've noticed that my decision-making at work (not related to programming in any way) and ability to generate good ideas drop noticeably when I stop doing CP or solving math problems.

It is also a lot of adrenaline (when contest is just about to start or if you are finishing to code something just before the end), and a way to experience rollercoaster mood: excitement/satisfaction to frustration/anger. Sometimes it is necessary, without ups and downs any activity becomes boring very soon.

»
5 years ago, # |
  Vote: I like it +22 Vote: I do not like it

I don't think you need "specific" reasons to be pursuing something in life. Your passion towards a certain activity makes your life revolve around it. As long as it gives you happiness, you need not hunt for other reasons to stick to it. Not denying the fact that doing CP does culminate many more traits in you but that doesn't define the whole and soul reason, at least for me, to be pursuing CP.

Personally, I feel that CP is not meant to have any "specific" benefits, instead just make you happier (isn't that what all hobbies are about?).

»
5 years ago, # |
  Vote: I like it +42 Vote: I do not like it

It's a fun way to meet cool people ^^

»
5 years ago, # |
  Vote: I like it +14 Vote: I do not like it

I've been in the workforce for many years now, so I do not have an incentive to do competitive programming for a job or school. I pursue it to keep learning, have fun and keep my programming skills intact. I envy those of you in school or college or early in your career, as these skills -- algorithms, math, data structures, etc. -- are foundational and valuable if you like to remain on the technical side of things in your career.

I think people should be doing it because they enjoy it and it offers a continuous learning experience. If you're seeking to land a dream job or get into a good school, that will follow automatically from the skills that you'll gain here. If you're already settled in a job, the constant learning from the best will help keep your skills sharp.

»
5 years ago, # |
  Vote: I like it +18 Vote: I do not like it

I do CP as it is the best way to exercise my two brain cells, plus it is fun.

»
5 years ago, # |
  Vote: I like it +3 Vote: I do not like it

I guess, I have an answer already. I think you'd love to read it.

»
5 years ago, # |
  Vote: I like it +42 Vote: I do not like it

-120 rating points : "Why do I do CP?!!"
+1 rating point : "Yeah... I f***in' enjoy this"

»
5 years ago, # |
  Vote: I like it +3 Vote: I do not like it

It's an unbreakable curse that lured me in by itself and trapped me inside for eternity.

»
5 years ago, # |
  Vote: I like it +14 Vote: I do not like it

CP kind of changed my life trajectory by a considerable degree. Like most people here even I got addicted to CP for the fun aspect and the adrenaline rush you get during contests. even though you feel like you are solving made-up problems in CP, it kind of trains your mathematical thinking ability which can be potentially transferred to other domains. Also there's a social aspect to it where we can discuss about problems with a community/friends. At some point I started realizing that CP is more closer to a game than some kind of subject.

But the biggest impact CP had on me was that it was a gateway for me in getting interested in math and theoretical CS. In fact from my past couple of years studying theoretical CS, I would even say that hard CP problems (Div 1 C,D,...) are closer to small sub-problems encountered in theoretical CS research. For example, there is an area of theoretical CS called parameterized algorithms, and three of authors of the book on the topic are competitive programmers themselves. When I took a course on parameterized algorithms, I found parallels between some parameterized algorithms and some tricks in CP. So I guess it isn't that nihilistic after all :) .

I feel online judges are a really powerful pedagogical tool to learn programming/problem solving.

I was recently reading a book on learning and encountered this — (Image from Google Books)

From the book "How we learn By Stanislas Dehaene" (Check the page on "The Four Pillars of Learning")

As we can see platforms like codeforces strike the chord on all the above four areas.

So to summarize, I love CP because I find it a fun and very effective way in learning new algorithms and sharpening my programming skills.

»
5 years ago, # |
  Vote: I like it +3 Vote: I do not like it

I actually don't like the adrenaline rush associated with the contests(that's why I don't participate anymore) but I LOVE to think about the solution of a problem. I love to sit, take my time and think about a problem(it's even better if I can't solve it :) ). I love to experiment with stuff and try different approaches, learn new algorithms and data structures, find ways I could apply a method I couldn't even imagine.

I consider that CP contributes a lot to the quality of a developer, the reason being simple :

  • It learns you how to tackle a problem

  • it learns you a basic set of rules which in time basically become a "heuristic" for finding the correct solution from the entire space of possible solutions

  • it learns you about different mixtures of math and algorithmic thinking which in time may be useful in understanding other branches which are not related to CP ( machine learning).

So why do I stick with CP?

  • It's fun
  • It's challenging
  • I hope that someday it may help me in understanding other programming related concepts
  • I can experiment stuff and I love the feeling of solving a problem I couldn't solve before :)
  • It is similar a bit with research in the sense that even if you know a solution exists, you still have to do the exploration part :).
  • (BONUS) It helps you with job interviews but again this is just a bonus, not a reason for me doing CP :)
»
10 months ago, # |
  Vote: I like it 0 Vote: I do not like it

like I think i don't have that much mind to be a great level i am feeling demotivated i don't know but I like CP

»
10 months ago, # |
  Vote: I like it 0 Vote: I do not like it

im into competitive programming because it's fun and I enjoy solving problems even if im not that great at it. I only began about a month ago but it's been really enjoyable for me

»
10 months ago, # |
  Vote: I like it +5 Vote: I do not like it

Ego. I am convinced I'm not as bad as my rating says I am but like I have no data to prove that because my rating is still trash so I just want to improve my rating so that I'm quantifiably as good as I think I am.