pritishn's blog

By pritishn, 4 years ago, In English

Hi,
Somethings related to Competitive Programming (well, in a broader sense , Data Structures and Algorithms) have been on mind lately.

I know some people who haven't done Competitive Programming and also have very less knowledge of DSA but they never needed those. Example- Some of the seniors from my college are well-placed in good companies but they never properly explored DSA.

I know that being proficient in CP is not the only way to get good placements and I also realize that being proficient in CP also does NOT guarantee good placements.

Lately, my primary motivation to keep doing CP has shifted from "getting good placements" to "it's fun and exciting".
But along with that shift of mindset, I also find it harder to suggest others to start CP (knowing that most of them are just looking for an easier way to get well paying jobs).

So, I wanted to ask you guys.
If you'd ever suggest someone to start Competitive Programming, what would be your reasons to do so? I mean how would you convince someone to start CP ?

PS: I'm sorry if this has been asked before or if you find this useless.

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

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

In iran if u get the gold medal in the olympiad you can go any university you want and you dont need to participate in "konkur" wich is very hard and boring to do and compete with 180k people for some universities that have only 100 sits! so most of the very talented guys in iran will choose to learn what they really like and dont participate in "konkur". and you can see that there are few people that are doing CP and they are not participated in olympiad :)

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

    Thanks for commenting.
    It's nice that there is awareness in Iran.

    In India , however , most people start CP after they have joined University.( We have to go through an exam called JEE. It has more than 0.5 million participation and around 30000 good seats are available.)

    It's because most of us aren't aware of the benefits of Olympiads.
    And also , I don't know why but companies in India give a lot of priority to DSA and CP (for freshers placement).

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

      It's more than 1.2 million!

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

        I feel like the rest 0.7 million just participate for the sake of participation. They don't even bother to prepare.

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

          That's true though!

        • »
          »
          »
          »
          »
          4 years ago, # ^ |
            Vote: I like it 0 Vote: I do not like it

          but in jee mains, more than 1 million people sit for the exam

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

      I don't know why but companies in India give a lot of priority to DSA and CP (for freshers placement)

      Is it not the case for FAANG even in other countries? Or they give less priority?

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

      30,000? I don't think so. In my opinion only 10,000 seats are really good.

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

        He just said that to include himself , he clearly isnt in top 10000 you can see his college

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

          To include himself? Does it really matter which univ. he is in if he is performing good? His rating seems much higher than you ig!

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

    I hope this happens in India as well. Lot of people waste more than two years for preparing JEE exam which just gives seat in university.

»
4 years ago, # |
  Vote: I like it +118 Vote: I do not like it

It's fun and exciting.

»
4 years ago, # |
  Vote: I like it -49 Vote: I do not like it

CP helps to build DSA skills, which increases the probability of getting good placements (or to be more specific, acing the coding/ technical rounds). Obviously, CP is not the only way and exceptions are always there.

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

    That is the no.1 reason behind the participation of 99% of the Indians in this CP community. XD

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

Why should one search for jobs? For having easier life for sure. For going on trips, food, etc. so I think finding job is a two step way to reach happiness: 1.get money and 2.enjoy life. But enjoying cp for just what it is and problem solving, being exiting and nothing else, is one step to reach joy. So I think it is enough to convenience one to do cp. (All of them are just my thoughts any way, a lot of people may disagree...)

»
4 years ago, # |
  Vote: I like it +9 Vote: I do not like it

A while ago, I wrote a blog post trying to answer this question, at least to some degree.

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

    That's a really cool article. Thanks a lot for writing it and also for sharing it.<3 :D

    Bdw, there's a small typo. In the conclusion part, you have written "begging" instead of "beginning".

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

    I really liked your claim in the post.

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

Well, I believe that the ultimate goal of my existence is to be happy. And I have learned from many well-established people that getting a great job or being famous or other common stereotypical goals won't make you happy as when you get used to those they become meaningless.

I think happiness is living your present with excitement.

That being said, now your main goal is to find something that will make you happy. There are lots of things you can do like being a musician or an artist etc. For me it was CP. I can lose myself into CP for hours and hours and still hold my excitement. A good contest is enough to make my day.

Man, I am not saying that you have to choose CP too. Find anything that suits you well, delve into that and maybe you will find peace.

Because I wanna spend my precious time on something so that in the end I can say with Heisenberg, "I did it for me. I liked it, I was good at it, and I was really... I was alive".

Let's discuss something if you think CP is the thing that you wanna do.

Many of us set this goal like I wanna be red and continuously looking at the goal and not enjoying our current hard works. I am not red but I can guarantee myself that when I will be red I will be happy for a day or two and will get used to it. So what was my 3-4 years of hard work all about? Just a day of excitement? I don't believe in so. Wouldn't it be great if I could live those 3-4 years of my life with excitement? Well yes. This is what I am currently doing. I am living in the present, working hard and whether I become successful or not I will still be happy as I was alive throughout the whole process and lived my life to the fullest.

Thanks for your time. May you find that something that you have been looking for throughout your life!

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

    I'm gonna upvote this comment from my second account too. :D

    • »
      »
      »
      4 years ago, # ^ |
        Vote: I like it -17 Vote: I do not like it

      :)

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

      Thank you for asking this question and thanks for the reply above. It's really hard to pick yourself up from a bad contest or when you feel you are stuck. At least in my case I start to question CP's worth every time and why am I doing it. This question and the answer does give some insightful direction.

  • »
    »
    4 years ago, # ^ |
    Rev. 2   Vote: I like it +12 Vote: I do not like it

    One of the best comments ever!

  • »
    »
    4 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    I feel this comment... a good contest or solving a problem finally after investing a lot of time makes my day... and so did this comment! Cheers to all :)

  • »
    »
    4 years ago, # ^ |
    Rev. 3   Vote: I like it +1 Vote: I do not like it

    Deleted

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

    Excellent comment. But I don't agree with the statement "happiness is living your present with excitement". To me happiness is being in peace, having less heartache, anxiety, disappointment etc. and more freedom and positivity. I don't get excited when I eat with my family, but I feel happy.

    I used to play a lot of computer games. I still get excited while playing them. But I quit, because now I feel more disappointment in losing, than I find positive feelings / feeling of accomplishment in winning.

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

      To be fair, even if "excitement" is not the best word there, your comment doesn't really challenge underlying idea. You were unhappy at the moments where you were not "living your present with excitement" (due to losing). The point is precisely about enjoying something about the process in a way that doesn't make you rely on having CF rating increase or win in an online game in order to be happy or excited. Nowadays there are multiple things that I'm doing on my free time such that I'm quite bad at them (including competitive programming), and I enjoy them a lot precisely because I don't care about the fact that I'm quite bad there.

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

    couldn't agree more...... a good contest just makes my day and nothing makes me happier than seeing my code getting accepted during a contest:D

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

    I believe that the ultimate goal of my existence is to be happy. Why do you believe so?

    • »
      »
      »
      4 years ago, # ^ |
      Rev. 2   Vote: I like it +14 Vote: I do not like it

      Because everything people desire, everything people do, the final cause of every action people take is happiness.

      Let's take an example. Alice is a martyr. He sacrificed his life for his country. Why did he do so? Because his country needed him and sacrificing for his motherland is the thing that made him the happiest person on earth.

      Quoting from a book "Happiness is a goal of human existence because it is the end that we are constantly trying to achieve. Aristotle explains that everything in life we do in order to achieve happiness, and we are aiming to find the means to accomplish this through things such as money, being brave, and having others in our life".

      I have asked lots of old people what their biggest regret is. And every one of them said that they were a little less happy when they were supposed to be truly alive.

      As this is that something that we always end up with, this must be the ultimate goal of our existence.

      Well, that's my point of view. You can share yours if you think happiness is not what we should ultimately look for.

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

        I don't see meaning in 'being happy'. I don't even know if something can be truly meaningful. So I just don't have answer to your question.

        • »
          »
          »
          »
          »
          4 years ago, # ^ |
          Rev. 2   Vote: I like it 0 Vote: I do not like it

          Well, I don't know if something can be truly meaningful or not, I don't know if life has any hidden meaning or not. But what I know for sure is that being happy is the best way to live my life.

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

        Desire is never ending bro, if you gain happiness by achieving something, it is momentary, so the happiness you are talking about is like a painkiller which may temporarily make you feel good but once its effects wear out you need to use it again. What you are looking for is a medicine that cures you permanently however.

        The people from whom you are taking suggestions from (old people) lived a normal fruitless life and those that follow their advice will probably come to the same end because the solution they offer you is another hit and trial method they think might have worked for them XD.

  • »
    »
    4 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    buddy thnx for the comment was feeling a lil depressed but u make sense to a great extent.... wish i could save this particular comment in my cf account coz i think this might take me long ways( i took a screenshot ;) ) thnx a lot .

    • »
      »
      »
      4 years ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      You can click on the star on that comment.

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

    Goosebumps

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

I will risk putting forward a hypothesis that many disagree with. In my defense, I’ll say right away that I was on both sides of the barricades in this matter

olympiad mathematics or olympiad programming is the fastest way to understand how intelligence works when solving problems. All this under the assumption that work takes place at the limit of concentration

p.s. google translator

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

    Well, google translator did a very bad job this time. XD

»
4 years ago, # |
  Vote: I like it +39 Vote: I do not like it

brain goes very big

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

There are two categories of people i think in this.

1) People who feel it as a sport.

2) People who do it for placement or job.

From my perspective, i think it is fun though i am not good in this. I have been with software industry since an year approximately, yet i don't see the usage of these algorithms there. Still, recently i started doing again as it brings me a bit of fun.

»
4 years ago, # |
  Vote: I like it +24 Vote: I do not like it

I found that I was addicted. I got "Accepted" after writing the code, just like Pavlov's dog.

»
4 years ago, # |
  Vote: I like it +11 Vote: I do not like it

I would be completely honest. I am doing it for placements.

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

In Cuba is held the OCI , a competitive programming contest to chose our IOI contestants, and the top ten participants of every grade(10th,11th,12)are chosen to integrate the national preselection. That students had her scholar year closed , they dont have to exams or any kind of evaluation, so instead of 10 months of school , they only have 3 or 4 and the rest is competitive programming. Also if you consider ,like me, you have scientific qualities and enjoy exploring reality and looking for the why of most things CP is an elegant way to raise those aptitudes. But that is not all , CP is synergistic , because you also must learn a programming language , a lot of experienced programmers will tell you that the first is the most difficult to learn , making super easy to learn others if you need it. Obviously that and the algorithmic skills you develop will greatly increases your chances to get a good job and it may open some windows. But even more , if you can solve problems in hours ,like competitive programmers do,that most of people never solve in her existence you can answer roundly this question: With my programming skills , my CP knowledge ( and any other skill or kwonledge you have) what can i make that people benefits form it and i get profits?

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

being proficient in CP also does NOT guarantee good placements. is that true?

  • »
    »
    4 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Of course. What did you think? You become a candidate master and companies start chasing you with job offers?

    • »
      »
      »
      4 years ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      I don't mean companies will chase, But I don't think any candidate master is unemployed

      • »
        »
        »
        »
        4 years ago, # ^ |
          Vote: I like it 0 Vote: I do not like it

        Well, as far as I know, only CP is almost irrelevant in actual software engineering. You also need to learn other relevant things like DBMS, Computer Architecture, etc and have some small projects too. Those all build up a wholesome CV. CP only shows your problem solving skills to your employer. They will still ask questions from other topics.

        Surely, being CM+ is a worthwhile achievement but the employers also look for some things other than pure-problem solving I guess.

        That's my point of view based on what I've noticed. There may be exceptions.

        • »
          »
          »
          »
          »
          4 years ago, # ^ |
            Vote: I like it 0 Vote: I do not like it

          Learning DBMS, COA, OS and CN isn't a big deal. They(companies) just test the basics(sometimes medium but rarely ask questions deeply related to these) of CS fundamentals afaik. And tbh i found reading about OS and DBMS quite interesting. Found COA weird and CN tough.
          PS: These are just my opinions.

        • »
          »
          »
          »
          »
          4 years ago, # ^ |
            Vote: I like it 0 Vote: I do not like it

          How is Computer Architecture relevant to software engineering? It's completely hardware-based topic, and most software engineers never use it.

          • »
            »
            »
            »
            »
            »
            4 years ago, # ^ |
              Vote: I like it 0 Vote: I do not like it

            I'm not entirely sure, but isn't Assembly a part of syllabus of COA?

            A friend of mine needed some Assembly knowledge for one of his projects. I'm not entirely sure what he was trying to do but it was software based.

            Also I'm not exactly aware of what software engineers need for daily use so I may be wrong here.

        • »
          »
          »
          »
          »
          4 years ago, # ^ |
            Vote: I like it 0 Vote: I do not like it

          I have heard that being a Candidate Master doesn't guarantee you a job but is it right to say that CP is almost irrelevant ? Don't know much about actual software engineering but in the placements ,isn't there a coding round for almost all good companies?

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

        I am unemployed.

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

          hi unemployed, I am unemployed

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

I think a healthy amount of puzzle is good for keeping your logical thinking ability. Just like how reading books, newspapers, or going to a gym helps.

And if you are doing something related to algorithmics, CP is a good thing to try, because it's a regular activity that can have positive impact to your jobs.

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

If Competitive Programming is not so important. why companies like google contacting open events like kickstart for recruitment propose?

  • »
    »
    4 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Because there are way too many people wanting to join them. And just think about it, You are a big tech giant company head and you see 1000s of people every month wanting to join.

    Obviously , for example , some will have experience in ,say, Machine Learning and some will have experience in Web Development and so on.

    Would you conduct different contests for each category?

    The smart thing to do is to test all candidates based on something common they have. That common skill is logical thinking and problem solving skill.

    So they test the candidate based on this.

    • »
      »
      »
      4 years ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      If checking logical thinking and problem-solving skill is the only reason. why can't they use hard maths problems like in IITJEE or maths olympiads? even non-CS people know maths

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

        Why check only logical thinking and problem-solving skill when you can also simultaneously check programming skills too?

        Competitive Programming contests are like the perfect way to test

        • Problems Solving Skills
        • Programming Language Proficiency
        • Debugging Skills
        • Mathematical Thinking
        • Pressure Handling Skills

        all at the same time. So why only do a maths test when you clearly have a much better and relevant test ?

    • »
      »
      »
      4 years ago, # ^ |
        Vote: I like it 0 Vote: I do not like it
      The smart thing to do is to test all candidates based on something common they have. That common skill is logical thinking and problem solving skill.

      I think it is far from true to say that such events (FHC, GCJ, GKS etc.) are testing some abstract generic "logical thinking and problem solving skills". Generalizing it this far is like saying that playing snooker is testing not your snooker playing skills, but your general fitness conditions.

      It is also not true that they test "all candidates based on something common". It is simply used as one of many ways to find candidates who have high probability to be sufficiently skilled, because apparently there is sufficient correlation between expected value of the candidate and their good performance in such competition.

      If things were the way you described, the companies would've stopped to waste their resources on other recruiting channels. Moreover, they probably would've taken another step and stopped wasting massive amount of resources on interviews. Let's simply substitute them with automated tests similar to competitive programming.

      In reality, majority of engineers at companies like Google or Facebook don't have competitive programming experience. A lot of them don't even know what competitive programming is.

      • »
        »
        »
        »
        4 years ago, # ^ |
          Vote: I like it 0 Vote: I do not like it

        I think you misunderstood my point. Well, it my fault because I wasn't being more specific.

        His question was "Why companies like Google conducting open events like Kickstart for recruitment purpose ?" I was just giving him a reason why competitive programming contests could be a good way to recruit candidates. I was actually talking about Kickstart only. Codejam and Hackercup problems are way too difficult to judge an average candidate's problem solving skills.

        I wasn't trying to imply that CP contests are perfect "Hiring tests". I was just telling that CP contests are good way to test the problem solving skills.

        I think my point is clear now. I was only trying to justify "Kickstart being used as a hiring test".

      • »
        »
        »
        »
        4 years ago, # ^ |
          Vote: I like it 0 Vote: I do not like it

        Also regarding that ..

        The smart thing to do is to test all candidates based on something common they have. That common skill is logical thinking and problem solving skill.

        I was just giving an ideal scenario. What I meant was , If you were approached by 1000s of candidates and you had to pick one test to filter them, wouldn't you pick a CP contest as the test?

        Sorry for not being clear enough earlier.

        • »
          »
          »
          »
          »
          4 years ago, # ^ |
          Rev. 3   Vote: I like it +8 Vote: I do not like it

          Honestly, I don't know. I think CP contest would be a bad idea; but it is not like I have some much better solution in mind.

          I've already interviewed quite a lot of people, and I should say that in some cases I get much better impression about somebody who has zero competitive programming experience and very low chance to do well in a competition of such format — compared to some random dude with 1900 CF rating who can really only solve competitive programming problems they memorized, and don't even have a clue about how to apply algorithms they know to something that isn't competitive programming, leave aside using common sense and those abstract "problem solving" skills that you are trying to test by CP. In other words, I can recall many examples where somebody who would've been discarded by CP test looked like much more bright & clever person than somebody who's already well above average at stuff like CP or LeetCode. I think this is precisely why large companies have huge number of different recruiting channels working in parallel — because limiting it to a single one, like "they should do well in CP" or "they should be from great university" or "they should have awesome GitHub", would leave too many valuable candidates outside.

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

            That's exactly why I had written

            I know that being proficient in CP is not the only way to get good placements and I also realize that being proficient in CP also does NOT guarantee good placements.
            in the blog. I too believe that judging a candidate by only CP performance is just stupidity.

            Fun fact: The reason I believe that is because of your Quora answers. XD :D

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

Looking at the level of most of the coders I think my answer might not be very relevant as I am still an amateur but in my opinion competitive coding gives a lot of thrill and excitement.I really like trying to solve challenging questions and I experience a deep sense of satisfaction every time I get an AC. However,(speaking as an Indian at least) I think the fact that competitive coding benefits me in placements is always there at the back of my mind.But even with the placement factor,if a person doesn't find passion in CP he can't really excel in it. My reasons to convince somebody to start CP would be that it is a useful skill from placement perspective and at the same time ,something so deep and challenging that if you really start loving it, you will find real happiness in solving problems.

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

Everyone needs to feel this adrenaline rush. This changes one's way of thinking in a particular situation.

»
4 years ago, # |
  Vote: I like it +14 Vote: I do not like it
"it's fun and exciting

" Lately I have gone through the same mind shift. I have started learning DSA recently and after watching a bunch of Youtube videos decided to start doing CP. Earlier if anyone asked me — "what is your hobby ?" I used to start wondering like what is my hobby as I am no good in sports, dancing etc. then I used to say my hobby is listening music.. LOL! then I used to wonder " Man! what kinda hobby is that ?". But now, although my rating is not increasing right now, I have found a hobby of a lifetime. :-)

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

Positive:

Just like any video game — it's fun. It's really really fun.

It develops your brain.

It makes your brain feel satisfied when you're done (unlike other games/competitions that just make you file tired and that you accomplished nothing, anyone else knows the feeling of playing 10 hours straight league of legends? it's not a good feeling).

It prepares you for any riddle or problem solving in real life, and helps you understand complex topics faster than most other people.

Negative:

Just like video games, it shouldn't consume your life unless it serves you purpose. If it interrupts your life (you miss opportunities to advance in life, advance in your job, get into a good school, etc.) then it's not a good thing.

If it's a hobby on the side (like any other hobby), it's always a great thing. If you're legitimately consumed in it and it serves you purpose (https://codeforces.me/profile/tmwilliamlin168 for example) then sure, go ahead.