Otra buena forma de aprender, o de incluso de "entrenar", es hacer
katas. Un
kata es un concepto que viene del mundo de las artes marciales, vendria a ser una serie de movimientos o una tecnica que pueden practicarse solos, no hay necesidad de tener un compañero de sparring
Este concepto de kata llevado a la programacion, consiste en un ejercicio cuyo enunciado es relativamente facil de entender y que deberia ser implementado en codigo. Algunos son "incrementales", en el sentido de que una vez que se resuelven, se pasa a una siguiente fase en la que se agregan mas restricciones o condiciones para agregar sobre el codigo usado para la fase anterior. Es muy interesante para aprender un nuevo lenguaje porque nos dan "contexto" o una tarea para hacer.
Por lo general los katas explican cual deberia ser la salida esperada y de este modo podemos verificar que lo que hicimos es lo correcto. Se recomienda escribir test que validen el codigo. Algunos katas incluso tienen una lista de casos de prueba sugeridos
Aqui hay dos catalogos de katas:
http://codingdojo.org/KataCatalogue/
http://codingdojo.org/kata/
Ejemplo en Delphi:
https://www.youtube.com/watch?v=ilXtxK81GiM
Saludos