### Mohinemmmmmmmmmmmmmmmmm's blog

By Mohinemmmmmmmmmmmmmmmmm, history, 17 months ago, ,

Hi guys ! I'm about to get out of my university and step into the corporate world. In India, most competitive programmers stop competing once they leave college. Most of them are in this game for sake of getting jobs at tech giants like Google, Microsoft etc. However, some people never stop competing. There are some who learnt competitive programming while being employed. If you are one of them who hasn't left competitive programming while working, I would request you to share your strategy. How do you balance to do both while still remaining strong during competitions ? I'm just curious.

• +52

 » 17 months ago, # |   +77 In the day, I work. In the night, I solve problem in my dream.
•  » » 17 months ago, # ^ |   +4 Thanks ! That's helpful. Time has come for me to maintain a delicate balance between job and competitions.
 » 17 months ago, # |   -13 I don't. I study in LU and I contest.
 » 5 months ago, # |   +13 Apparently, I reached my highest rating while working. I think it can be done, but requires a lot of balancing act. Sadly, I have stagnated, but I think I can improve further.
 » 5 months ago, # |   +40 In my case, after my 2nd time at the ICPC World Finals, I stopped focusing on competitive programming like a crazy guy. Instead, I take part sometimes, try to do one contest per week on average. I don't spend time upsolving problems, don't spend much time practicing except for contests. Now CP is a must-have part of my life, as I used to love it, I am loving it and I will love it. My skills have been worsening significantly, but I can keep the sense of solving problems :)P/s: Thanks god, CF contests are usually at midnight in Vietnam, so I have more opportunity to take part. I could not do that when I was working in London.
 » 5 months ago, # |   +79 Don't get a job.
•  » » 5 months ago, # ^ |   +141 Or make Competitive Programming your job.
•  » » » 5 months ago, # ^ |   +9 Errichto , is your full time job Competitive Programming?
•  » » » » 5 months ago, # ^ |   +29 I wish. I'm just a Youtuber.
•  » » » » » 5 months ago, # ^ |   +16 Does Youtube pay enough? Or you also have another job?
•  » » » » » » 5 months ago, # ^ |   +20 I guess I teach programming.
•  » » » » » 5 months ago, # ^ |   +3 That can still be very lucrative if you're popular or know how to abuse algorithms. Hauptsturmführer PewDiePie is also "just a Youtuber".
•  » » » 5 months ago, # ^ | ← Rev. 2 →   +15 I am always curious about people having a full-time career in CP (I might pursue this direction in the future if I am bored with working as big industry's slaves, who knows). How does this job imply to your career progression? Do CP companies (like HackerRank?, Atcoder?) make enough money and how? etc?I would very love to hear rng_58's story/opinion about having a full-time career in setting CP problems.
•  » » » » 5 months ago, # ^ |   +21 Hackerrank and plenty of similar websites have money because they are about coding interviews and matching programmers with employers. Working for them will make you enough money assuming you don't live in a rich/expensive country. So, go for it if you want to work remotely. You can prepare problems and materials but for sure it won't be on the level of CP contests.Just setting problems for the whole life is hard or impossible because you might run out of ideas. The way to go is to become a coordinator/tester, I guess. Some people combine that with working in universities and usually doing some research. I'm quite sure though that you can earn more while working in big companies.My plan is to organize classes and maybe camps/workshops myself (ofc. not alone).
•  » » » » » 5 months ago, # ^ |   +11 Wondering if tourist planned to make a life by yearly winning major algorithm contests
•  » » » » » 5 months ago, # ^ | ← Rev. 2 →   +13 I am curious how many problems those companies virtually need for preparing coding tests. Even if you could be paid per problem set, it doesn't mean you could earn billions of dollars if you made billions of problem sets.Assume: I think I could write two whole AtCoder Beginner Contest problem sets in a day if I did as a full-time job, and that would sum up to 10 sets in a week. But who on earth would hold beginner's contests that frequently?? What if another coder is interested in doing the same job?(By the way I am also interested in teaching CP related courses)
•  » » » » » » 5 months ago, # ^ |   +13 Are you sure about that? Writing statements and preparing tests isn't always that easy. Plus you should watch the contest and answer questions, what takes 2 hours itself.Hackerearth needs hundreds of trivial problems so maybe they would want such a person :D And you could mix it up with doing harder rounds and then I'm sure you won't saturate the problem-creating market.
•  » » » » » » » 5 months ago, # ^ |   +13 This is a method one of my friends uses to make easy problems: Choose the type of inputs (the one with a fixed number of integers, like [L, R, X] or [N, M]) Choose the type of mathematical facts (e.g. the sum of digits, divisors) Choose what to calculate (e.g. maximum value, # of ~, output everything that satisfy ~) Combine the three to make one problem Under this method, you don't even have to spend hours to prepare data sets. Mostly random cases + a few tricky cases would work.
•  » » » » » » » » 5 months ago, # ^ |   +23 "I can do a shitty job quickly."Well, I won't argue with that. Your friend creates boring problems. I hope Atcoder doesn't accept so many of those.
•  » » » » » » » » » 5 months ago, # ^ |   +6 Who cares the first few problems' quality. Beginners should solve a lot of problems to get used to coding anyway.
•  » » » » » » » » » 5 months ago, # ^ |   +36 Who cares? Those who solve those first few problems ;pNot everybody competes to excel in competitive programming. Some do it for fun, some for simple practice. Why won't we put some interesting problems there to show them that competitive programming is something they can enjoy?
•  » » » » » » » » » 5 months ago, # ^ |   +28 I often use the method which TozanSoutherpacks wrote to make first some number of problems on ARCs. It is extremely useful, and I agree that I can prepare 2 ABCs everyday.The process to make problems can be divided in following steps. Come up with problems. Once we succeeded to “stop” our brain so that we cannot think about hard things, it takes 5 mins in average to come up with an easy problem. What is important here is to think about the future: you prepare the problems. You should discard the ideas, that you need to write complex generators and problem statements. The problems, which can be explained in one line, and have inputs with constant number of integers, are best. Write statements, make solutions and make test cases. It should be easy task, if you properly made problems. Once I did RTA to prepare first 3 problems of ARC. It took only 40 mins. You may think that the problems produced by this procedure is boring. But, in nature, easy problems are nothing other than boring, since it tests whether the competitors know the grammar of the languages and idea of time complexity. Interesting problems should be harder because they require some thinking, and too hard for very first problems.
•  » » » » » » » » » 5 months ago, # ^ |   +33 You know, you are that one of my friends.
•  » » » » » » » » » 5 months ago, # ^ |   +17 I don't argue that it's possible to quickly prepare a boring problem. But I explained why you shouldn't. Don't write ARC if you don't care about its participants.
•  » » » » » » » » » 5 months ago, # ^ |   0 I don't know the examples of interesting problems, which are suitable for very first problems. If it is a contest for Div.1, I don't take this method because the easiest problem is enough hard to make it interesting.And I didn't say that I don't care about the participants. The main purpose of very first problems is testing whether the participant know the basic grammar of languages and the way to implement some basic functions (such as, standard io, taking max of array, reversing a sequence, calculate Fibonacci). I think that my "automatical" problem-producing method produces the problems which satisfies this condition, because I combine these techniques. Although the problems are boring for me because I already know how to implement the basic things, it doesn't mean these are bad problems.
 » 5 months ago, # |   +20 do you exactly know how many 'm' are there in your id...hahhah(*difficult to login if once logout by mistake)
•  » » 5 months ago, # ^ | ← Rev. 2 →   +51 Yes, there are 17 m's in the suffix, its easy to remember coz Eminem's birthday falls on 17th October.
•  » » » 5 months ago, # ^ |   0 oh wow..superb method to remember no. of m's in suffix..hahha
•  » » » » 5 months ago, # ^ |   +5 Actually his handle a lot easier
•  » » » » » 5 months ago, # ^ |   0 A Fake ID created, just to post a comment here.
•  » » » » » 5 months ago, # ^ |   +8 By the way my team name at ICPC 2016 was IIIlIIIllIIlIlIIllIlIllllllIII but I still remember the correct name.Quiz: Guess why.
 » 5 months ago, # |   +12 One of my friends whom I look upto reached his highest rating while on the job, he got FB Hackercup T-Shirt, did great in round-2 in GCJ, got ranked in top 50 Indian coders on Codeforces, all this while he was working. I don't know how he consistently did CP but his job was of a full time problem setter at Hackerrank, maybe that played an important part.
•  » » 5 months ago, # ^ |   0 Akashdeep Nain ?
•  » » 5 months ago, # ^ |   0 Vipul Sharma?
 » 5 months ago, # |   +41 When I started working, I stopped because most of the cfs were during the working day. But now I put some sql on another tab, and I'm always prepared to push alt + tab when someone comes close.
•  » » 5 months ago, # ^ |   +30 For all you know, your manager might have a software on your comp that can view your screen :O
•  » » 5 months ago, # ^ |   +27 For all you know, LTDT could be your manager.
 » 5 months ago, # |   0 Depends upon whether you've got Saturday off or not :P
 » 5 months ago, # |   +21 Or maybe find a job where designing algorithm is the main skill?
•  » » 5 months ago, # ^ |   +58 Does this magical job exist?
•  » » » 5 months ago, # ^ | ← Rev. 3 →   +19 Yes, which is the main work I'm doing at Facebook right now :) (maybe the algorithm itself is too simple for you, but I still find it interesting none the less).
•  » » » » 5 months ago, # ^ |   +13 But will it actually provide any benefits for your competitive programming skills? Unless the job itself resembles competitive programming, and so do algorithms that you have to work with — I doubt that developing/optimizing "some algorithm" would be very helpful.For example, in my current project at Google I really don't have sufficient math knowledge to understand some of the parts (it requires knowing statistics, and I don't have that background), but I don't even think that learning corresponding theory would make me better at something like Project Euler — leave aside actual competitive programming.The only part of my job that I find related to competitive programming is test-solving problems for Google programming competitions (which would cover all problems from Google Code Jam and Google Kick Start).
•  » » » » » 5 months ago, # ^ |   +10 Like anything else, it's up to your goal. Probably the algorithm in your day job is not sufficient (nor useful) if you are training to be 2800+/3000+/whatever higher rank are there. On the other hand, I find real world algorithms tend to be more "rich" and flexible, partly due to the ambiguous nature of real world work.
•  » » » » 5 months ago, # ^ |   0 What's your position at FB and which office are you in? I'm starting work at FB London in 2 months so I'm hoping to find an interesting position.
•  » » » » » 5 months ago, # ^ |   +10 I work at Menlo Park in Data Infra. From my experience, positions in infra team tends to be more algorithmic-friendly (unless you have some very specific area you can/want to specialize on).
•  » » » 5 months ago, # ^ |   +5 Depending on how broadly you understand designing algorithms, I have it. Mostly not regular competition-like algorithms, but there are often specific constraints I have to optimise for, e.g. 100 kB of memory. Yesterday and today, I was optimising a piece of assembly: "hmm, is it better to use an IT block after the CMP or a BGT branch?", "where do pipeline delays occur?" and so on.
•  » » » 5 months ago, # ^ |   +21 Research jobs on the field of theoretical computer science are kind of that, I think. We can publish paper by just solving CP-like problems. As you know, the CP problems related to real world are usually boring, because the real world is too complex. The real world is not fully mathematical and that is why CP is much more interesting than real world. Here, in research jobs not on IT company, you do not need to consider about the shitty real world and you can concentrate on CP-like things.
•  » » 5 months ago, # ^ | ← Rev. 2 →   0 Hi ll931110 what do you do in Facebook? Since what age did you work there?
 » 5 months ago, # |   0 Vas a caer Chupetin Trujillo #GAAAAAAAAAA
 » 5 months ago, # |   0 I think in the beginning of CP, it's about knowledge, you learn basics, dp/number thoery/ graph theory/etc. After this stage, you don't need lots of time to learn. The game becomes competitions about brain power. You just spend half an hour or so to keep your mind sharp. Besides, job is more important. Pratice without being noticed by your boss.
 » 5 months ago, # |   +34 This topic isn't really relevant for me, as I stopped practicing 2 years ago (and started working full time 1.5 years ago), but I'm going to share my perspective anyway :)Yes, most of the contestants stop any sort of active training after getting a job — either because they want to do something else besides programming, or because now they have less time and prioritize other hobbies, or because they did CP solely for having it on their CV. Your job is typically 40 hours per week. Let's say you need 63 more for sleep. You are left with 65 hours for everything else. Which is more time than you take for sleep.Yes, there are very few students spending something at least remotely close to 40 hours per week on their studies, so typically you have more time there. Also things like family come in play at some point :) You can easily practice 20+ hours per week while having a job — and while some students may have more time for practice, I would still say that 20 hours/week is more than a lot of World Finals teams average.One of my coworkers averages 20 hours per week or so for his endurance sports training (and since training varies over the time, he'll have even more in his peak weeks), and takes part in events like UTMB and Swissman — while also managing several reports at work and having family (with a small child) in his personal life. Another one does cycling fairly seriously, averaging well over 20 hours per week — he already has 14000 km distance, 160 km elevation gain totals this year. Another dude is spending around 20 hours per week training as a musician. I also know people employed full time and still actively doing competitive programming.If I ever decided to try actively practicing CP while being employed — it shouldn't be too hard, since my working hours are flexible and I can take a break for almost any contest during the workday. As far as I can tell from what people are typically complaining about — it is not your job that is competing for your time with CP. It is a bunch of random stuff like watching movies or playing computer games.
 » 5 months ago, # |   0 I am not a legend. But I have intense attachment with CP for last 4 years. Through my UG program, I've participated many onsite and online contests. But, after completing my Bachelor last month, I am having a feelings that may be I won't be able to participate in CP like before anymore. And for this reason, I wanted to join a remote job so that I can manage more time to spend with my own and with CP. That was not a wise decision for me as my very first job I guess, and I realize it very soon. So may be I will try to find an onsite job soon. But, overall, its feels like I am an abandoned child of CP.
 » 5 months ago, # |   +15 You can pursue algorithmic academic career which is like kinda more mature competitive programming and at the same time 1) make your job enjoyable, 2) still have a lot of free time. Win-win :)
•  » » 5 months ago, # ^ |   0 This is a real good idea. Next year, I want to try for higher education. May be that time the advanced and mature CP will make my research and study more enjoyable. But for now "In the day, I work. In the night, I solve problem in my dream." ;-)
•  » » 5 months ago, # ^ |   +23 Do you have recommendations/examples for an algorithmic academic career?
 » 5 months ago, # |   +13 I can't balance job with competitive programming. For this reason I am going to stay with my parents :D.
 » 5 months ago, # |   0 I don't balance job with competitive programming. I just enjoy both separately. But now a days, often I can't prioritize competitive programming because of other responsibilities. That's why my rating dropped, but honestly I don't care for it anymore. Just want to enjoy as much as I can and continue participating in this fantastic arena.