Hi Codeforces!
This year I am finishing school and moving to university, I don’t see any sense in competitive programming anymore (just for the sake of pleasure writing contests, but not solving problems separately). Well, I had a question, but what exactly should I do? I’ll try to explain more precisely .. Previously, I came from school and wanted to do something useful, I took and solved problems, realizing that it makes some contribution to my future, but what should I do now to make such a contribution? Please share your experience with what you did after comp. programming.
If you know similar blog posts, skinte please, I tried to google it, but did not find anything similar, although it probably is, but my imagination for the headings is too scarce.
Thanks to all!
Auto comment: topic has been translated by Jostic11 (original revision, translated revision, compare)
The point of uni is to meet new people and learn about different possible paths of career.
You are absolutely right, I can’t wait for this opportunity, but I can’t greatly influence it and do it in my free time ..
I like how you completely ignored "Universities are also supposed to educate us". XD
"supposed to"
If you are going to study something related to computing then you should keep doing problems :) also you can participate in the ICPC now.
Why does the situation change when you move to university? I have "finished" university and I still solve competitive programming problems to learn new things.
I like olympiads with contests only, but I don’t want to additionally train for them at the university, since there is no goal to win. Apparently we just have different interests
How do you balance work with university and cp? Of course you are not going to work in the first year probably because of the lack of time, but when the time comes to join the work force, to join get some internship or even a real job, how do you study, do cp and also learn enough to be able to work as a software engineer or web/app/game developer? That's what has been bugging me.
I regard competitive programming as a hobby. If I don't have time for it for some reason, I don't do it and that's not a problem.
A few ideas
Man, where you are saying to stop CP is where most of us from India start doing it.
This post seems to be coming from a different world!!
Hope that this culture (broad interest in olympiads etc. during high school) starts here also.
It's just that this is the only way for us to enter a normal university, and it gives motivation
here in india they teach us physics , chemistry , maths . 90% of this knowledge is just wasted . i personally liked chemistry very much but no use of that 2 yrs chemistry in college .
Actually this 'use' logic is kind of cyclic/infinite. You say that X has use for Y, then Y has use for what, like whats the final point bruh!
Basically all this is rooted in the human desire to find meaning in life etc. (as this is the only possible logic I could think of to justify this behaviour).
The correct thing to say will be that because one doesn't know early what options were and how things will unfold in future and so one regrets that he/she had to study color of co-ordination compounds.
"No use of that Chemistry" because you took a branch that won't use Chemistry at all. I am guessing you have taken CS. If you had taken Chemical, like one of my friends, you would use it more. As a CS guy, no one will say "no use of that math in college". It would only hold true partially
in school time chemistry was my favourite subject . and i scored highest in chem in jee more than the sum of other two. but it got to a chem school there was no future , future is here and i am loving it.
Ahh, very true,Don't you think there should be seats in IITs,NITs, for OIers, that would develop competitive coding culture in India, where we don't even know any coding language, until entering university.
But one thing (according to my view) is maths in India for JEE level is more inclined towards calculus stuff,integrals,definite integrals, rather than combinatorics,number theory,proof by hand, we are more focused on assuming the right answer by eliminating choices as, JEE papers are MCQs based. which obviously increase your reasoning skills, but we are diverted from Olympiads culture, which is real maths according to me.
Also, after entering universities, there are hell of subjects, and irritating teachers, that you cannot even focus on CP properly, another reason, I guess there is no LGM from India, but hope one day, There will be many LGM from India.
Yes man, not only that there should be some recognition for olympiad winners too.
In Iran they have a similar system that incentivizes the people winning olympiad medals for their country.
I think if such a system would be here in India, probably India's winnings would increase in these international competitions.
I am not sure if I am qualified to give advice, given that I learnt about competitive programming at university and never reached the level of the author. But I would consider:
(1) Doing research. Find an area of interest, find some teammates (if possible), and try to solve some unsolved problems in that area, or just invent something completely new, superior to what is already known. There are a lot of trendy research directions today, such and deep learning and big data. Many other directions are left behind now due to lack of funding (in my opinion), such as complexity theory, knowledge representation, automated theorem provers, etc. Having skills in algorithms helps to advance these areas. Having a green "accepted" in CodeForces is nice. But having a paper accepted at a peer-reviewed conference or a journal, or having your google scholar citations going up was a completely new level of happiness for me. Having a publication by the end of your bachelor degree tremendously improves your chances of being accepted into good Ph.D programs, especially if you have your future advisor as a co-author ;) So it's a good time to start.
2) Contributing to open source. Explore Github, contact project owners that have issues with "help needed" label, or some other projects that you find interesting, and see if you can help. Learn some new technologies on the way. Not only this is useful for them, it will build you a nice portfolio.
3) Getting internships. This can help you decide if industry programming jobs is something you find interesting. Some people get tired or bored, some find it exciting, it depends.
4) Thinking about where you want to live in future. If immigration, or even exploring different countries is something you want to consider, it's time to start working on it! Explore possible paths to where you want to be, learn foreign languages, etc.
5) Helping other people learn to program. See if teaching/tutoring is something you enjoy doing. If you decide to do research in an academic institution (even as a Ph.D student), teaching is often required. Learning how to teach may be useful for you, and, usually, for people you teach :)
6) Getting more friends and connections, it's much easier when you are young and surrounded by people of your age (and culture).
7) Stay fit and healthy: consider hiking, biking, gym, whatever works. I think the older you are, the more important this is.
Thanks for the advice, I didn't even think about point 1, it sounds like something impossible, but it's definitely worth trying
Well, research is very possible, especially if you have a good advisor who can steer you. That's the important part: to know what to research so you will be able to publish the result somewhere. Also, where to publish, how to write, when to write, who to talk to... Basically, a separate game with its own set of implicit rules.
However, it may feel very distinctly from a regular programmer job. E.g. if you tackle a big problem, it may take years before you get reasonable progress. May be quite demotivating, afaik.