I have been competing in various programming contests for the past 10 years. A lot, if you ask me. But, more importantly, I have competed in quite a few different kinds of contests. My adventure started with classic algorithms, and later I switched to optimization problems. Currently I compete mostly in machine learning contests (as a part-time job) and I also do some for-fun contests.
Considering that there aren’t too many people with such broad experience, I thought I’d write a (relatively) short summary of popular types of programming (algorithmic?) contests. This is not a complete list – instead I’m focusing on the ones that are most popular and (in my opinion) most useful.
The structure is type-oriented rather than site-oriented. This means that rather than flooding you with some random sites with an added description, I organized everything into categories and combined sites/contests with similar characteristics. Since some of the sites offer several types of competitions, I had to list them several times.
Ideally, if you’re confused or just curious about the whole world of competitive programming, this should give you a comprehensive overview of the subject.