I don't write this kind of blogs very often (actually not at all), partially because I don't have much to say, partially because I suck at it (as you'll probably find out yourself if you decide to continue reading). However this evening I had a nice cup of tea with a friend of mine and I'm feeling oddly relaxed now. I remembered an earlier discussion we had and it made me think about my inner motivations. In this text I tried to follow all my thoughts and see if they lead anywhere.
This post is about helping. Helping others and helping myself and why I think it's free software, and the community around it that brings up the good in me and in others. Those who were in Brno on last year Akademy might find this kinda similar to Cornelius' keynote about how KDE makes us better people, and it might as well be, since I really liked the keynote and agreed with everything Cornelius said. But I want to tell my story here, so bare with me...:)
Maybe what I'm writing here is absolutely obvious to everyone, but maybe it will help someone to realize what I realized while writing this post. But most of all it helped me to sort out my own thoughts, and I think that after a long time I won't have troubles falling asleep tonight. Maybe I should start writing this kind of stuff more often... :-)
People help other people. That's how the world works. But why do we help others? Because it's a good thing to do? Because it makes us feel better? I guess I first thought about my motivations to help a couple weeks ago when I attended an HTML and CSS workshop organized by Czechitas - a Czech non-profit organization where girls teach other girls IT and programming. You might have heard about Rail Girls, so Czechitas is something similar and they are organizing workshops on various topics - from web coding and WordPress to graphical design (using open source tools!). Each workshop is also attended by tutors (that's where I come in) who have some experience in the subject and who guide a small group of girls during the workshop, answer their questions and help them with their project. One question I got during that workshop was "Why?" - why are we willing to spent our entire Saturday just by sitting there and watching bunch of people we don't know to struggle with HTML. I also got asked the same question couple days later when I talked about this to my friend and it made me think again - why indeed?
I think I always wanted to help people somehow. It makes me feel useful, it makes me feel good and I learn a thing or two during that, which is also important to me. I guess the first moment I realized this was back in 2009, when I started packaging weekly development snapshots of KDE for ArchLinux. I've been using Arch for over 2 years back then, but I was really just a user, I did not contribute in any way. I did not help. I felt I've been given so much, but I never gave anything in return.
I live in a sort of a bubble. My own world, my own reality. My day job involves working on free software, so I spend most of my time surrounded by free software hackers and other like-minded people. Thinking about it, I probably talk to other devs on IRC more than I do to my flatmates. But I don't mind. I take the community as my second family, I consider some people there to be my very close friends and I really cannot express in words what being part of this family means to me. And what influences us more than our own family?
I see programming as a form of art. It's creating something from pure thoughts and imagination. It's building castles out of LEGO bricks, walking those castles and describing them in a form of a code. I do what I do because I enjoy it, because I don't completely suck at it (some of the time), because I get recognized for what I do, and because I can actually see how what I do helps other people.
Richard Stallman defines "free" in free software as 'free as in free speech, not free beer". We are free, because we can take others' ideas and build on them and we let others to take ours and build on them too. We share. We build powerful and high quality software because we share it with everyone, and we allow anyone to step in and help push it forward. We don't want to see their CV, we don't care what they have achieved in their life. We care about what they can achieve in the future If we let them. For a while I thought we were doing it simply because we want to use their potential to help us with our cause, our product. But now I see how wrong I was. After my first Akademy, my first chance to meet the community in person I realized it. We do it because we want to help those people. We want to help them to get better at what they do. We want to help them become part of the family. And we do so, because that's how we became part of it. Because someone there cared enough. Because someone helped us and because we know it's the right thing to do. We do it because we want to share the happiness we get out of being part of the family.
I guess this is where my thoughts lead. We don't help, because we must, or because we are expected to. We help because we believe in it and because we believe it is the right way to make the world a better place. Ultimately it does not matter if I spend 30 seconds answering someone's question on IRC, or if I spend a few hours helping uncountable many people by fixing a bug or implementing a new feature, or if I spend all day helping three girls to learn HTML. It's not possible to say which is more useful, as we cannot see the full potential of those people. But we can help them. We can guide them and let them discover what they can do. And who knows, maybe the next person we help will achieve great things, and maybe those things will directly affect us, and help us in return. And even if they don't, we will still teach them to help others - and they might be the ones to help someone else to do great things.
How does free software fit into all this? We help by sharing - we share what we know and we let others share that knowledge further, because knowledge is really the foundation of everything else. And we don't care how much time it costs us.
I cannot really say what would I be like if I never got involved in free software. What I can say for sure however is that free software made me a better person. It taught me to share what I know with others and it taught me to help others. And yes, by free software I don't mean any program. I mean the people.