I was pondering the other day as to what my main motivation is for wanting to code open source software, and what motivates me to learn new languages/tools/etc that are outside the scope of my current position. Do I spend my freetime for hopes of a better job in the future? Or do I do it because I love Open Source and want to give back to the community? Do I learn just to be master of my own box, satisfied that I can do anything with this hardware?
It is hard for me to really determine if I'm learning for a job or money or not. But I think I finally came to the conclusion that I do it just because it's damn fun :-)