Versenyprogramozás, felkészülés és kapcsolatok
Competitive programming
Competitive programming is a mental sport (just like chess), where participants tackle a challenging set of algorithmical and mathematical problems by writing computer programs that can solve them.
Judging of the solutions is based on a large set of hidden testcases, for each of which the program must return the correct solution under a very tight time and memory limit. In order to pass these testcases, participants must employ their knowledge of various data structures and algorithms.
Practicing this sport will train you to think and code fast under pressure, enhance your problem solving skills, find bugs and edge cases in code quicker, understand the workings of complex algorithms and come up with creative solutions to problems. All of these skills translate well into any field in IT and will prepare you for FAANG interviews too. Also, it is fun!
ICPC
The International Collegiate Programming Contest, known as the ICPC, is one of the oldest, largest, and most prestigious competitive programming contests among the universities of the world.
ICPC World Finals 2021, Dhaka, Bangladesh
ICPC gallery
The competition is open to teams of three, who are currently enrolled at the same university and all members meet the eligibility requirements. The teams have 5 hours to work on 10-12 exercises, using a single computer, provided by the organizers. Using hand-written or printed materials is allowed, however other electronic devices (phones, calculators, pendrives) and the Internet are not.
There are four tiers of the competition:
In the qualification round the first 2 teams from Budapest University of Technology and Economics will advance to the regional round. Travel and stay is organized and funded by the university for our teams.
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
Hungarian
VProg student club
Versenyprogramozás (VProg) is a student club we run for college level competitive programming.
Join us on Discord: https://vprog.hu/discord
Calendar
See upcoming meetings here.
Add this to your Google Calendar: https://vprog.hu/calendar
Announcements
Email the organizers: [email protected]
Subscribe to the mailing list: [email protected]
Dr. Katalin Friedl
associate professor
IB137/a
friedl(at)cs.bme.hu
cs.bme.hu/~friedl
Viktória Nemkin
PhD student
IE216/3
nemkin(at)cs.bme.hu
cs.bme.hu/~nemkin
Viktória Nemkin: honlap, Twitter.