Practice makes perfect - following this age-old saying is very important for a programmer. The more problems we practice solving in a language, the more perfect our skills in that language become.
Therefore, here are a number of free and useful sites - where you can train in a number of real-world problems, learn new algorithms and compete with people across the globe:
- Sphere Online Judge
CheckIO - only Python