- Timus Online Judge
- Topcoder algorithms tutorials
- Data structures and algorithms links
- Sphere Online Judge
- USA Computing Olympiad and Training
- International Olympiad in Informatics
- UVA Online Judge
- Sites with programming problems to practice with:
- Bios of programmers who have won in programming contests:
- http://www.quora.com/Gennady-Korotkevich and http://en.wikipedia.org/wiki/Gennady_Korotkevich
- Blogs and Articles:
If I am to start programming now, I would do it this way
- Solve 200 most solved problems on SPOJ or UVA, Problem by problem. In 2 months.
(This will teach all standard problems, algorithms and implementation skills)
- Solve problems from CodeChef and CodeForces for 2 months.
(This will teach variations, we can read others solutions and learn better ways. Skip easy problems)
- Solve problems from TopCoder for 2 months.
(This will teach Dynamic Programming. Div 1 500p)
- Check past ACM ICPC Regional's Problems
(Great quality problems)