Preparation
Mentality
This is key.
- Don’t overwhelm yourself. Don’t start with going online and buying an 800-page book on the theory of algorithms to try and read it from cover-to-cover. It will be difficult and boring. Instead, compile a list of topics you’re interested in and pick one to tackle first. Find easily digestable sources, such as youtube tutorials or blog posts on that topic and try solving the exercises they link.
- You’re not too late. It can be easy to feel like you’re in a hurry to reach whatever standard you set for yourself for your current age. Then, you try to catch up as fast as possible, committing to an impossibly high workload. This is unsustainable and leads to burnout eventually. You should allow yourself to take breaks, rest, have fun and enjoy life too.
- Quantity leads to quality. Perfectionism is what’s keeping you from improvement. If you are interested in competing, you should start competing. Don’t wait around, telling yourself that you need to practice before you can start with it, because you’ll never start that way. Yes, in the start, your results won’t be good, but if you keep going, you’ll improve. Keep showing up, allow yourself to ‘fail’ and enjoy the ride! (See the origin of the parable.”.)
- Don’t let other people’s success demotivate you. No matter how good you get, there will always be people, who are better than you. It can be easy to feel stupid in comparison and envy those people, especially when they are your peers. Don’t let this discourage you from your goals. Feel proud of what you have accomplished so far and instead of comparing you to everybody else, try to outdo yourself. Also, I encourage you to reach out and befriend these people instead. You might be surprised to learn, that they are approachable, friendly and may feel just like you do.
- Ask for help. If you’re stuck with a problem or a concept, don’t waste your time with it way too long. Ask other people to help you, so you can go onto learning the next topic instead. We are building a community of competitive programmers on Discord, make sure to join us, if you’re interested. :)
Materials
English
- A very extensive topic list, for reference: GeeksForGeeks: How to prepare for ACM - ICPC?
- Explanations and source code: cp-algorithms.com
- University courses on Youtube for free, such as (pick what you like): [1], [2], [3], [4], [5]
- Competitions and practice problems: Codeforces
- More practice problems: SPOJ, Advent of Code
Hungarian
- BSZ1, BSZ2 és NESZ jegyzet.
- Segédletek C és C++ programozáshoz: InfoC porta, CPP FTW