São muito bom os sites de programação progressiva (Cprogressivo, javaprogressivo, assemblyprogressivo, etc. Mas quando chegamos no final desses cursos ficamos com vontade de continuar seguindo a mesma metodologia para aprender algorítimos. por isso eu sugiro que fação um curso, não de uma linguagem especifica, mas de algorítimos que podem ser implementados em qualquer linguagem. inclusive, poderia ser um exercício frequente neste curso, passar o código de pseudocodigo (ou outra linguagem escolhida por vocês para ser o padrão do curso) para a linguagem que a pessoa já usa.
Programação Progressiva