Besides working on my own applications, I contribute to several existing open source projects. I find this to be an excellent way to learn from experienced developers. It is also very satisfactory knowing that your work will be used by more than a few people! Below you find a (probably incomplete, as I will likely forget some) list of contributions.