If your sole motivation for working on a project is to get it done, you’re cheating yourself. Part of being a good programmer is building stuff that YOU find cool. There is plenty of dreary software in the world, what the world needs is more AWESOME software. And the only way to make awesome software is to have fun building it!

Randall Degges How I Learned to Program