Here’s a list of useful websites for learning new programming languages. These are not for beginner programmers, but if you are already comfortable with one language, these will help you pick up new languages quickly.
- Learn X in Y Minutes contains cheat-sheets for several programming languages and tools.
- Exercism contains practice problems for several programming languages. It uses a test-driven approach: you are given a set of automated tests, and you must write code to make the tests pass.
- Daily Programmer contains daily problems categorized as “Easy”, “Intermediate”, and “Hard”. Users can post their solutions in any programming language.
It is also useful to search for programming contest sites, such as Kattis, IPSC, and HackerRank (others here).