### pritishn's blog

By pritishn, 19 months ago,

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.

• +134

 » 19 months ago, # |   +61 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 :)
•  » » 19 months ago, # ^ |   +20 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).
•  » » » 19 months ago, # ^ |   +4 It's more than 1.2 million!
•  » » » » 19 months ago, # ^ |   +23 I feel like the rest 0.7 million just participate for the sake of participation. They don't even bother to prepare.
•  » » » » » 19 months ago, # ^ |   +7 That's true though!
•  » » » » » 19 months ago, # ^ |   0 but in jee mains, more than 1 million people sit for the exam
•  » » » 19 months ago, # ^ |   +3 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?
•  » » » 19 months ago, # ^ |   +2 30,000? I don't think so. In my opinion only 10,000 seats are really good.
•  » » » » 19 months ago, # ^ |   -15 He just said that to include himself , he clearly isnt in top 10000 you can see his college
•  » » » » » 19 months ago, # ^ |   0 Well even I am not in top 10,000. I am on the edge of 20,000.
•  » » » » » 18 months ago, # ^ |   +3 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!
•  » » 19 months ago, # ^ |   +10 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.
 » 19 months ago, # |   +118 It's fun and exciting.
•  » » 19 months ago, # ^ |   +32 :)
•  » » 19 months ago, # ^ |   -65 not doing cp is much more fun and exciting.
•  » » » 19 months ago, # ^ | ← Rev. 3 →   +50 Wow, thank you. I didn't know about that. Now, that you've revealed the truth to me, I'll leave CP forever.
•  » » » 13 months ago, # ^ | ← Rev. 2 →   0 I don't think so.. when you are able to solve quickly in the contests and while practising, you will feel it as fun and exciting but when you can't you will feel demotivated. When you got instant success in cp, it is fun, otherwise it is boring. It's really hard to pick yourself up after having a bad contest or when you feel you are stuck at a particular problem.
 » 19 months ago, # |   -49 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.
•  » » 19 months ago, # ^ |   +12 That is the no.1 reason behind the participation of 99% of the Indians in this CP community. XD
•  » » » 19 months ago, # ^ |   -31 And somehow still 99% of them suck. Even though they should be more motivated than the other users.
•  » » » 18 months ago, # ^ |   0 Sed lyf!
 » 19 months ago, # |   +12 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...)
 » 19 months ago, # |   +9 A while ago, I wrote a blog post trying to answer this question, at least to some degree.
•  » » 19 months ago, # ^ |   +9 That's a really cool article. Thanks a lot for writing it and also for sharing it.<3 :DBdw, there's a small typo. In the conclusion part, you have written "begging" instead of "beginning".
•  » » 19 months ago, # ^ |   +4 I really liked your claim in the post.
 » 19 months ago, # | ← Rev. 7 →   +366 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!
•  » » 19 months ago, # ^ |   +72 I'm gonna upvote this comment from my second account too. :D
•  » » » 19 months ago, # ^ |   -17 :)
•  » » » 19 months ago, # ^ |   +3 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.
•  » » » 18 months ago, # ^ |   0 hold up
•  » » 19 months ago, # ^ | ← Rev. 2 →   +12 One of the best comments ever!
•  » » 19 months ago, # ^ |   0 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 :)
•  » » 19 months ago, # ^ | ← Rev. 3 →   +1 Deleted
•  » » 19 months ago, # ^ |   +7 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.
•  » » » 19 months ago, # ^ |   +36 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.
•  » » 19 months ago, # ^ |   +2 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
•  » » 19 months ago, # ^ |   +9 I believe that the ultimate goal of my existence is to be happy. Why do you believe so?
•  » » » 19 months ago, # ^ | ← Rev. 2 →   +14 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.
•  » » » » 19 months ago, # ^ |   +8 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.
•  » » » » » 19 months ago, # ^ | ← Rev. 2 →   0 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.
•  » » » » » » 18 months ago, # ^ |   0 How can you experience happiness without experiencing sadness? The concept of happiness cannot exist without sadness and vice-versa.I know that you did not say that you do not want to experience sadness. But making happiness your ultimate goal of life is similar to asking for a coin with a heads and no tails.Happiness is just a chemical that the brain releases based on your interpretation of external events or based on your internal thoughts. That said, happiness is a choice and you can be happy if you choose it.These are just my thoughts and I do not intend to hurt/deride anyone.
•  » » » » 18 months ago, # ^ |   0 Whether you live a happy good life or suffering and miserable one, the end result according to you is death, after which nothing remains, correct?
•  » » » » 18 months ago, # ^ |   +8 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.
•  » » 19 months ago, # ^ |   0 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 .
•  » » » 19 months ago, # ^ |   0 You can click on the star on that comment.
•  » » 18 months ago, # ^ |   -6 If the ultimate goal of your life is happiness, instead of doing CP, you should do drugs all day long until your money runs out. After that you should die a quick and painless death. That way you will remain happy all your life (however little that may be).PS — Happiness can't be the ultimate goal of life.
•  » » » 18 months ago, # ^ |   0
•  » » » » 18 months ago, # ^ |   0 If pleasure = dopamines, is releasing dopamines the aim of people who say peace / happiness is the ultimate goal of their life XD
•  » » 18 months ago, # ^ |   +8 Goosebumps
•  » » 6 weeks ago, # ^ |   0 The greatest comment I've ever seen on CF. Thank you YouKn0wWho
 » 19 months ago, # |   +3 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 matterolympiad 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 concentrationp.s. google translator
•  » » 19 months ago, # ^ |   +8 Well, google translator did a very bad job this time. XD
 » 19 months ago, # |   +39 brain goes very big
 » 19 months ago, # | ← Rev. 2 →   -14 To get a better rating
 » 19 months ago, # |   0 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.
 » 19 months ago, # |   +24 I found that I was addicted. I got "Accepted" after writing the code, just like Pavlov's dog.
 » 19 months ago, # |   +11 I would be completely honest. I am doing it for placements.
•  » » 19 months ago, # ^ |   0 What placements?
 » 19 months ago, # |   +5 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?
 » 19 months ago, # |   0 being proficient in CP also does NOT guarantee good placements. is that true?
•  » » 19 months ago, # ^ |   0 Of course. What did you think? You become a candidate master and companies start chasing you with job offers?
•  » » » 19 months ago, # ^ |   0 I don't mean companies will chase, But I don't think any candidate master is unemployed
•  » » » » 19 months ago, # ^ |   0 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.
•  » » » » » 19 months ago, # ^ |   0 i think what you said is correct. because you have more exposure to these things as you are from iiit
•  » » » » » 19 months ago, # ^ |   0 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.
•  » » » » » 19 months ago, # ^ |   0 How is Computer Architecture relevant to software engineering? It's completely hardware-based topic, and most software engineers never use it.
•  » » » » » » 19 months ago, # ^ |   0 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.
•  » » » » » » 19 months ago, # ^ |   0 Knowing about computer architecture (hardware) helps you right cache friendly code which is relevant when your doing systems programming.
•  » » » » » 19 months ago, # ^ |   0 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?
•  » » » » » » 19 months ago, # ^ |   0 irrelevant in actual software engineering.
•  » » » » » » » 19 months ago, # ^ |   0 Yeah,I reckon xD
•  » » » » 19 months ago, # ^ |   +6 I am unemployed.
•  » » » » » 19 months ago, # ^ |   0 Sad to hear that. Due to the low living cost in India. Even I can find a software job easily
•  » » » » » 18 months ago, # ^ |   +8 hi unemployed, I am unemployed
 » 19 months ago, # | ← Rev. 2 →   +26 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.
 » 19 months ago, # |   0 If Competitive Programming is not so important. why companies like google contacting open events like kickstart for recruitment propose?
•  » » 19 months ago, # ^ |   0 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.
•  » » » 19 months ago, # ^ |   0 thanks
•  » » » 19 months ago, # ^ |   0 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
•  » » » » 19 months ago, # ^ |   +3 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 ?
•  » » » » » 19 months ago, # ^ |   0 thanks
•  » » » 19 months ago, # ^ |   0 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.
•  » » » » 19 months ago, # ^ |   0 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".
•  » » » » 19 months ago, # ^ |   0 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.
•  » » » » » 19 months ago, # ^ | ← Rev. 3 →   +8 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.
•  » » » » » » 19 months ago, # ^ |   +1 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
•  » » 19 months ago, # ^ |   -10 I was just asking the reason. Do not put downvotes. I agreed cp is irrelevant for software engineering
 » 19 months ago, # |   0 I also started CP due to this reason, now I also find it fun and exciting!. PS- I am from IIIT Delhi!!
 » 19 months ago, # |   0 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.
 » 19 months ago, # |   +3 Everyone needs to feel this adrenaline rush. This changes one's way of thinking in a particular situation.
 » 19 months ago, # |   +14 "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. :-)
 » 19 months ago, # |   0 honestly for a good job
 » 19 months ago, # |   +6 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.com/profile/tmwilliamlin168 for example) then sure, go ahead.