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

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

Hello guys,

I decided to use a fake account for this post. I want to talk about a problem I am facing, which I guess might be common among many people in this community.

I am a junior year student in university and I am doing a summer internship at a reputed tech company. I find my job tremendously boring; Most of my day to day work is reading lots of documentation and implementing things. The hardest part of work is to make sure my code sits well within the existing framework.

I don't find this job exciting at all, but it pays really well. I have student loans and I pay them off by doing such internship every year. My past internships have been equally boring. My question to you is, what would you suggest to someone like me for the future?

To give some context, I am a mediocre competitive programmer. My actual CodeForces rating is around 1900-2000 and I haven't gone to ICPC World Finals or IOI. Even outside the competitive programming world, my problem-solving skills are very mediocre. However, I am very interested in algorithms and mathematics. I would like to do research (PhD) after university, but I don't think I am smart enough.

I can see two possibilities for myself:

  • Get high paying job as software developer. Accept the fact that it is boring.
  • Try research (Probably fail and lose years).

Is there any other option? What should I do?

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

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

Well, I don't see why your research would fail with high probability. PhD is the first step in a scientific career and many people successfully do it. It's not good to have a boring job for the rest of your life.

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

Not going to the IOI or ICPC World Finals doesn't mean you're mediocre. ... That's for the best in the world ! Having a rating of 1900-2000 is pretty good, I think.

Not just pretty good ... I think that's brilliant ! There are 32 thousand people on this website and only 1800 people are rated above 1900 ... That's the top 5 percentile !

As far as your career is concerned, I guess other people who are older than me and have more experience can advise you better than I am ... But I just wanted to dismiss your silly notion that you have mediocre skills if you're rated 1900.

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

    Also, as far as research is concerned ... Look at this video. it's very encouraging from a top biologist... scientists and researchers ...

    But, I want to tell you that not every mathematician is Erdos, nor is that necessary and not every programmer is tourist, but that doesn't mean they are redundant .... Someone in the top 5 percentile of their field in definitely valuable !

    I'm just telling you this so you don't feel demotivated ..

    I'm not saying this to convince you to do research ... I think money is definitely important.

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

Jobs in the industry are different. A high paying job is not necessarily boring. If you didn't like places where you did you summer internships, go somewhere else after graduation. You can try a completely different type of company (if you interned in a large one, try and join a small startup).

By the way, even the work at the company where you're interning right now can become more interesting if you get a full-time job there (it's not uncommon to give boring/unimportant tasks to interns).

So I'd recommend getting a high paying job as a developer if you can. There're a lot of options in the industry, especially if you have a few years of experience.

Financial security also matters. Getting into even more loans to pursue an advanced degree is likely to be a very bad decision from this point of view.

P.S. If you still want to do a PhD and your Codeforces rating holds you back, just ignore it. Your rating doesn't matter.

  • »
    »
    7 лет назад, # ^ |
      Проголосовать: нравится -24 Проголосовать: не нравится

    I just want to re-iterate that his rating is in the top 5 percentile ... That isn't something to be held back by !

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

Average codeforces.com rating is 1450. Mine rating is 1459. It is me who is really mediocre!

»
7 лет назад, # |
  Проголосовать: нравится -26 Проголосовать: не нравится

I wonder why a lot of competitive programmers have a terrible self-esteem, or is it just fake modesty?

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

    Now to the question, I did 2 internships and then joined as full time and I don't feel like you.

    I have a friend that did though, he did 2 interns as well and didn't like any, so he changed companies and how he is working in a very innovative area that he really likes, so if you don't like where you are I think it's better to just apply to a different company/team. Try talking with your recruiter(s) and tell them what you enjoy and they will try to place you in the right team.

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

Before completely disregarding working in a company I would recommend you to:

1) try getting as various experience as you can, for example working in machine learning team should be completely different than doing some networking

2) if you have a firm mathematical background you can also try applying for a "quant researcher"/"trader" positions in financial industry. That's what I am currently doing on internship, however I started a week ago, so I can't tell you much from my own experience, but it looks like an interesting opportunity for some people from here that they may be even not aware of.

However of course doing a PhD should also be attractive opportunity, it is definitely not required to be red to be successful in it.

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

    Do you mind disclosing what financial firm you are at?

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

      G-Research (based in London)

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

        mind disclosing why G-research instead of other reputable financial firms like Jane Street or two sigma?

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

          Because they didn't want me ;). In JS I made it to onsite stage in hiring process for a trading intern, but I terribly screwed up it. As for Two Sigma, I didn't have anyone who can refer me there and I didn't get even a reject reply for my CV.

          However even though G-Research may be less recognizable than JS and Two Sigma, it is not a company from lower league.

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

            Thanks for the info. I got rejected for fulltime from JS after onsite as well :( It's really surprising guys at your caliber getting rejected. Wonder what kind of interns they accept...

            • »
              »
              »
              »
              »
              »
              »
              7 лет назад, # ^ |
              Rev. 2   Проголосовать: нравится +15 Проголосовать: не нравится

              Even though I may be really good at brain teasers and may have really good probabilistic intuition there is still a big room to screw it. Following pattern occured two times "I did some not that obvious mistake, they explained to me why this was a mistake, I said I fully understood it, but then I did that mistake second time ... and then third time". They can't allow themselves having such reckless and not learning on own mistakes people as I proved to be one that day. If I would be allowed to undergo that interview once again I am sure I would be much more careful.

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

                Could you elaborate further in what context one makes these mistakes? Are these some kinds of trading games where you have to price risk or something?

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

                  1) You should have 100% certainty that you will not lose all your money, not 99,99% even if that would allow having significantly higher expected profit. Or more generally your utility function should not be EX but rather EX-kVarX, where X is your profit and k is some positive constant denoting your risk aversion.

                  2) You should not take on bets with person who has a full information

                  These surely sounds reasonable, but one's thoughts are not that simple when he is interviewed in JS :)

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

            In a thread about finding interesting jobs, this is one of most depressing things possible. If elite math / CS people somehow still get rejected, this does not leave much hope for the rest of us.

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

              Oh come on, I am just a human. I get stressed sometimes and I am bad at understanding spoken English what sometimes lead to awkward situations and sometimes I just screw up without a bigger reason (not hard to note looking at my positions at cfs contests). These seemed to be a case for my JS interview. G-Research's interviews were also challenging, however they went really smooth to me and I got a really safe spot here.

              As you interview with different companies you get more and more experience, feel more comfortable during interviews and have more chances so that one will go as you wish.

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

It is still better that you are eager to study algorithms and mathematics. In my case, I mostly focus on how to code faster or how to approach non-typical problems effectively or how to make a good strategy during the contest, rather than theory itself. I've experienced one internship job before, but it turned out that I'm inured to code in 5 hours too much, and I felt the project is demanding to me... (also this is why my marathon contest level sucks)

When we feel working in tech companies doesn't match ourselves, nor does research, people are easily to find the way of doing programming contest related job. One of the successful contest company is AtCoder (probably, they seems they don't need donation from users), but still you have to develop the contest system or make problem sets for future contests. I'm not good at thinking about boss-level problems for so long time, so this possibility has also vanished.

What I dream about: becoming a professional competitive programmer and earn fixed salary. What would happen if some companies sponsor some coders? Would it be still tough for Top 100 level coders? (if so, I can say I'm mediocre, too!) I feel it strange that competitive programming is not regarded as esports and no companies contract with some coders.

Okay, it was just a dream. Actually I'm majoring in ecology at Faculty of Agriculture, and mostly I study how ecosystems are modeled and make a new model and test for holding new hypotheses. I feel it's interesting because I just like biology, and complexity of ecosystem on the earth, and I can feel my research may affect worldwide environment. I sometimes have to code, but it doesn't require advanced algorithm skills (some mathematics are needed though). In the world, most models are fruitless so I have to simulate various kind of possible models, where my coding speed somehow works. I'll research as a PhD if possible, and it might be another "competitive programmer's future" solution.

Conclusion: Keep various kind of possibility at hand, try something as soon as possible if it seems to help you, and hope a little possibility of better future for competitive programmers, and support this community growing well.

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

    The kind of sad thing about competitive programming is that it seems prize money has regressed over the last 10-15 years. From reading about the past the TCO used to be huge with 100k to the winner in 2002. In 2008 Google Code Jam prizes were higher than they are today. It seems that companies once thought that competitive programming had great promise, maybe for finding engineers or whatnot, however the reality has not quite worked out that way.

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

      I actually think that the reason is it became apparent that good people will still do these contests even without large prize money just because they enjoy solving the problems, and that big prizes do not do much to attract participants who otherwise would not have entered.

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

Have you considered the option of becoming Research Scientist at Google?

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

    I would expect that in the opinion of the OP this would fall under the heading of "Try research (Probably fail and lose years)", as this position requires a PhD, and even then is decidedly nontrivial to get.

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

      I don't get it. How does failure look like in this case?

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

        You try to do research, never accomplish anything (research is hard and requires one to be smart). Then you either drop out of PhD program or get a pity PhD that will not allow you to get hired in research roles anywhere. Then you take the same SWE job that you could have had 6 years ago, with far less effort and bitterness.

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

          There are guys working with MS degree. You just need strong foundation and read a lot of papers in the domain of your interest. You don't need to make a breakthrough in order to pass the interview.