Quer uma dica preciosa e consistente para programar melhor? Que tal dividir um problema gigantesco em pequenos problemas menores e resolver cada um destes pequenos problemas? Esta técnica chama-se "dividir para conquistar". A partir de um problema complexo, busque informações para enxergar os pequenos problemas que você consegue resolver. Estruturando seu pensamento desta forma, você terá muito mais sucesso em seus algoritmos.