So here are some interesting links for all your coding needs.
First, look into a collection of algorithms for practice, on the truly extensive and well structured HackerRank site.
Then, check out this categorised collection of exercises that goes under the name of Kata-Log and truly rocks.
Then, with cute cats posing in the sidebar, there’s codekata.com with explanations on the objectives of every kata.
Then, here’s a site bursting with real world problems suited for learning and practicing TDD under TDD Problems.
Then, there’s the amazing Cyber Dojo site for practicing code katas in a browser without any setup or somesuch.
Then, we also have another online great site, the Coders Dojo for reading up on and trying out code katas.
Then, there’s this site, full of Architectural Katas that look so tempting I can barely wait to try some of them.
Then, there is the original collection of Code Katas from Dave ‘PragProg’ Thomas that advises on How to Become a Better Developer.
Then, there is a smallish but worthy collection of Code Katas on softwarecraftsmanship.org with screencasts.
As to programming competition problems, the UVa Online Judge site contains hundreds of problems for practice.
The CodinGame is where you can practice writing games, get it reviewed and possibly even get yourselves hired.
A genuine treasure trove is the problem archive of ACM ICPC aka ACM International Collegiate Programming Contest.
Last but not least, for your mathematical algorithm coding needs, there’s the invaluable Project Euler to delve into.
Did we miss any? Do let us know!