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:
I don’t know if this counts as a resource to train your programming skills, but one site that has helped me a lot with some programming languages is good ol’ w3schools. They also have quizzes to check your knowledge of a particular language and they do offer “Try it out” examples where you can try code.