I would like to bring your attention to Codility Training Site (https://codility.com/programmers).
It is addressed to both, advanced programmers that train and take part in various programming contests, and those that learn basic programming techniques.
Contestants can find a collection of 30+ (and growing) challenging programming tasks together with a discussion of possible solutions.
Less advanced students can find over a dozen (and growing) lessons covering basic programming techniques together with 30+ exercises.
All the tasks can be solved in 14 programming languages, and the solutions are assessed on-line in the IOI style.