Interesting. I would have given the same answer some time ago, yet lately I have the feeling that I learn more from installing, configure and dive into somebody else' code and extend / change it than writing something from scratch. I guess both are valid 'methods' to learn, although the latter benefits open source projects like laconi.ca as well.