I started programming when I was very young since my father worked as a programmer and taught me how to program so I wouldn't pester him.
The hardest part is calling something done, or more accurately, ready to share with everyone else.
Seeing something work correctly for the first time is a huge serotonin hit. A massive rush of good energy and happiness.
I learned almost everything I know buy studying code open sourced by other developers and a lot of the feedback that helps me improve comes from collaborators in the open source community.
The chief benefit is user empowerment. If the software is open you can study how it works and improve it, or change it slightly to fit your needs. It's also a lot easier to deploy open source software and hardware in situations when proprietary software would be prohibitively expensive.
The community around open source is wonderful, but it's really easy to misunderstand and be misunderstood, especially on the internet in chat rooms and mailing lists where most open source discussion takes place. If you're not very concious of your conduct, it's very easy to upset people which hurts productivity and good will.
Open source is changing our design process. Instead of working on software alone and hoping that users like it once we are finished. Open source let's us share our works in progress while we are still fine tuning them and gives users more chances to speak their minds earlier in the process. It also means that if you do something that your users don't like, they have the power to take your software as a starting point and build the thing they want. Which hopefully makes both parties happier than they would be in a similar situation with proprietary software.
Yes. There's almost no part of software infrustructure that doesn't utilize some open source software. Even in companies that are not focused solely on software or technology, the computers that they use and the internet to which they connect is powered by projects maintained by the open source community.