When submitting a solution in C++, please select either C++14 (GCC 6-32) or C++17 (GCC 7-32) as your compiler. ×

gs15120's blog

By gs15120, history, 3 years ago, In English

I love solving problems, but I don't think I can hold it as a job. :( So, I am looking for similar things that I can do after graduating from university. I am thinking about studying discrete math, graph theory at graduate school, but are there more options?

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

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

Maybe worth changing the title to be more click-baity (also don't think many people abbreviate problem solving by PS) as the question is of huge interest to many of us. The only option that I'm aware of that is at least remotely as interesting/challenging, yet doable as CP/problem solving, is research of some kind. I guess once you become a super good programmer or something like that, you may be able to work just part time for something that you don't care about, earn enough for a decent living, and use your brain just for fun. But that still feels quite bad, as being not stupid, you'd hope you can put your intelligence to use, and doing programming, if at all counts as such, still only uses a small portion of the potential a truly good problem solver has.

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

    One area where research and CP significantly differ is that, in CP, a beautiful and elegant solution existing is always guaranteed, yet in research I think doing something really notable is much much harder, so what happens in practice is probably people publish just for the sake of publishing etc maybe, because they have to publish something after all. I mean often people don't really solve a problem, they just do some obvious thing and call it "research". I mean I once vaguely heard of someone publishing a paper on an algorithm, which previously existed, but only its 2D variant, and the person simply extended the 2D to 3D in a trivial way (this change was almost as trivial as having 3 elements in vectors everywhere instead of the original 2)

    (Maybe I'm wrong, but this is what I think, correct me if I'm wrong)

»
3 years ago, # |
  Vote: I like it -57 Vote: I do not like it

I love solving problems

Solve global warming.

Apart from the trolling part, isn't every good software engineering job just related to problem solving? You solve them fast, and correctly. You can find a problem in some process, solve it, deploy it for others, with a fees, and boom you've a company.

I think PS is a pretty valuable skill, like everywhere. There are a lot of problems in the world, and there are different kind of returns on solving them. You solve a social problem you're a politician. You solve a programming problem you are a software engineer.

So from my perspective it's dependent upon what return you want in return to solving problems. If it's money, choose some high end job. If you're a philanthropist, then maybe choose the income inequality problem and propose a good fix for it?

Idk.

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

I know a few people who have chosen to build a path in theoretical computer science (MSc/Phd) and they seem to do fine with it. On one hand, it requires strong background of math & theory — one can see this as a connection/similarity with competitive problem solving. On the other hand, though, academic world might be much more challenging/different than expected. Plus, it's not popular as ML/AI etc., so there's a possibility of narrowing the future choices.

I'm stating this as an option but if there's anyone who have chosen this path, I'd truly like to hear their opinions & experiences.

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

    I considered a path in theoretical CS PhD but was disappointed by how absurdly competitive it is. Also, I think you should have a good reason to go for a graduate degree (maybe less so for MSc since it's shorter), knowing what you need it for and what you plan to do after. For example, you might find that the kind of work you want to do doesn't really require a PhD, and you can get a headstart on your career. You might find that your career plan is to be a university professor but you haven't thought about the steps that come after PhD.

    If anyone reading this is considering a career in research, I suggest you take a lot of time to reflect about it and stay open minded to other opportunities so you can make a more objective decision.

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

      Are you trying to be a top contributor on a job site or something, given that you have dominated Codeforces? I am seeing career related comments from you a lot since the last few hours.

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

        Only because there were 2 blogs about careers in the last few hours and I have something to say about being disappointed by the prospects of academic research. I don't want to be more specific about my plans until I accept an offer.

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

    Have you seen what are they doing after graduate school?

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

      Nope. None of them have graduated yet, unfortunately.

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

Auto comment: topic has been updated by gs15120 (previous revision, new revision, compare).

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

I recommend this article: "You don't need to work on hard problems". The gist of it is that, in school (and competitive programming), you're solving well-defined problems with clear solutions, but in the real world, you have to solve different kinds of problems (vague and open-ended problems).

So, you might want to try getting a regular job (SE, teaching) or set up a startup, or trying to solve a problem in your community, to see if you would enjoy that different kind of "problem-solving". (basically, expand your horizons)