Over a 35 year career, pretty much all code I have written has been some form of open source or licensed under the GNU, artistic license, GPL and lately, GPLv3. There is so much that is not understood about open source software yet many of us survive [quite well] from it. Not only can a developer make a decent living from customizing other open source code for others but it has an uncanny way of opening doors to other opportunities.
As I see it, there are two types of people who write "propriety" code:
Those who are no good at it and would rather distribute compiled code so no one can see how bad they really are, and those who think their code is so important or revolutionary that it needs protecting. As the Good Book says, "there is nothing new under the sun" and that is so true of application code - one only has to spend a few hours on one of the repositories like CPAN or Sourceforge to see the mind boggling volume of new [and mostly decent] open source code being added each day.
One of the coolest things about open source is the willingness of the rest of the [insert programming language here] community to jump in an find bugs, make improvements and generally help get the kinks out of a new program. This does not happen with proprietary code for the most part unless there's a big development team behind it ... ultimately making open source more robust, better tested and better written in my opinion.