It occurred to me the other day that as a 3rd grader, my answer to the standard elementary-school question of "What do you want to be when you grow up?" was always to become an inventor. I don't know exactly what book or movie I must have seen to influence that answer as a child, but I distinctly remember my vision of an inventor as wearing a lab-coat all day long and coming up with new inventions or ideas that would help people do things better or accomplish things easier. I finally connected the dots and realized that I achieved my child-hood dream of becoming an inventor by pursuing software development as a hobby/career.
I have a very determined attitude towards most things that challenge me in life. For example, I spent hours learning to juggle just because it didn't come easily to me at first. I did the same thing when learning to ride a uni-cycle. Playing the piano has become more of a stress reliever for me lately, but growing up playing by ear forced me to focus a lot of time on new songs to ensure that the chords I heard matched the song I was learning. The process of learning how to develop software was very similar for me as it was a challenge and a different thought process than I was used to. After the logic of coding started to make sense, there was the challenge of mastering a new coding language (and then another and another, etc...) There are always new technologies, libraries, frameworks, etc... that will keep me challenged in the future and it satisfies my need to learn and master things that aren't immediately clear to me.
Even more than the personal satisfaction I get from the challenge of software development is seeing the impact my solutions have on the end-users. When a process consumes a great deal of an individual's time and my software is able to automate it or improve it by some measure, I feel a large sense of accomplishment. In terms of opportunity cost for the end-user, the time they WERE spending dealing with the problems that used to exist as opposed to focusing on other issues now means they can be a more effective employee or business owner. It's probably a stretch, but when a client of mine succeeds in the future after having implemented a solution to save them time, save them money or increase efficiency, I feel that I was a part of their success.
I feel very lucky to have a career/business that I could easily classify as a hobby and I hope others are as fortunate to enjoy what they do for a living.