I've always been an advocate of open source products. For those who don't know. Thanks to Wikipedia ( "The term open source describes practices in production and development that promote access to the end product's source materials.") It allows me to essentially post or publish the source that runs my applications. I loose the ability to "sell" my products since anyone can build off a free source. I depend on donations and various other methods for monetary gain. However, the products I made and supported were always locked down to just myself and a few others. It was a lot of work supporting these projects with essentially one person. I couldn't get myself to expose my products to the world. Then one day I open-sourced my 2nd largest project on github. Within moments people were commenting on the source and recommending ways to do this and that. Others were gobbling up portions of the code for their own use. Days later users were "forking" my project which allows them to download a full copy, modify it and re-upload it back for viewing. Other users found flaws in my code and make my applications safer and better.
It was difficult to release all my projects, but now I work when I can as a hobby instead of being bound to my computer. Obviously open source does not work for private enterprises, but for aspiring developers it is the key to learn lots of information from people across the world.