Блог пользователя lrvideckis

Автор lrvideckis, история, 5 лет назад, По-английски

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.

  • Проголосовать: нравится
  • +129
  • Проголосовать: не нравится

»
5 лет назад, # |
  Проголосовать: нравится +370 Проголосовать: не нравится

Haha you don’t think it’s fun?

»
5 лет назад, # |
  Проголосовать: нравится +71 Проголосовать: не нравится

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 лет назад, # |
  Проголосовать: нравится +18 Проголосовать: не нравится

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 лет назад, # |
  Проголосовать: нравится +229 Проголосовать: не нравится

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 лет назад, # |
  Проголосовать: нравится +87 Проголосовать: не нравится

s/CP/football/g

»
5 лет назад, # |
  Проголосовать: нравится +160 Проголосовать: не нравится

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 лет назад, # |
Rev. 2   Проголосовать: нравится +7 Проголосовать: не нравится

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 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

CP gave me a second chance...

»
5 лет назад, # |
  Проголосовать: нравится +268 Проголосовать: не нравится

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

Solve GP of Zhejiang. It kinda does both

»
5 лет назад, # |
  Проголосовать: нравится +35 Проголосовать: не нравится

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 лет назад, # |
  Проголосовать: нравится +12 Проголосовать: не нравится

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 лет назад, # |
  Проголосовать: нравится +67 Проголосовать: не нравится
  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 лет назад, # |
  Проголосовать: нравится +73 Проголосовать: не нравится

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 лет назад, # |
Rev. 2   Проголосовать: нравится +30 Проголосовать: не нравится

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 лет назад, # |
  Проголосовать: нравится +14 Проголосовать: не нравится

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 лет назад, # ^ |
      Проголосовать: нравится +8 Проголосовать: не нравится

    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 лет назад, # ^ |
      Проголосовать: нравится +3 Проголосовать: не нравится

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

    • »
      »
      »
      5 лет назад, # ^ |
        Проголосовать: нравится +5 Проголосовать: не нравится
      Spoiler
»
5 лет назад, # |
  Проголосовать: нравится +51 Проголосовать: не нравится

I don't have a life :(

»
5 лет назад, # |
  Проголосовать: нравится +20 Проголосовать: не нравится

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

  • »
    »
    5 лет назад, # ^ |
      Проголосовать: нравится +12 Проголосовать: не нравится

    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 лет назад, # |
  Проголосовать: нравится +6 Проголосовать: не нравится

free university scholarships + fun

»
5 лет назад, # |
  Проголосовать: нравится +6 Проголосовать: не нравится

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

»
5 лет назад, # |
  Проголосовать: нравится +13 Проголосовать: не нравится

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 лет назад, # ^ |
      Проголосовать: нравится +37 Проголосовать: не нравится

    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 лет назад, # |
  Проголосовать: нравится +7 Проголосовать: не нравится

To pretend I'm working on something very serious.

»
5 лет назад, # |
  Проголосовать: нравится +60 Проголосовать: не нравится

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 лет назад, # |
  Проголосовать: нравится +22 Проголосовать: не нравится

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 лет назад, # |
  Проголосовать: нравится +42 Проголосовать: не нравится

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

»
5 лет назад, # |
  Проголосовать: нравится +14 Проголосовать: не нравится

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 лет назад, # |
  Проголосовать: нравится +18 Проголосовать: не нравится

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

»
5 лет назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится

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

»
5 лет назад, # |
  Проголосовать: нравится +42 Проголосовать: не нравится

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

»
5 лет назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится

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

»
5 лет назад, # |
  Проголосовать: нравится +14 Проголосовать: не нравится

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 лет назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится

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 :)
»
11 месяцев назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

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

»
11 месяцев назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

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 месяцев назад, # |
  Проголосовать: нравится +5 Проголосовать: не нравится

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.