I’ve never done much in the way of contributing to open source. I was discussing this earlier today, and I wasn’t able to really articulate why not, beyond something vague about fear of being made fun of and the unwelcoming tone I saw from people like Linus. I could tell as I was speaking that my thoughts were pretty vague, and I spent the rest of the day mulling the whole thing over. I wanted to sit down and talk about it some more to flesh things out a bit. The truth is, until recently, I didn’t really know why I had never contributed to the things I love and use on a regular basis.
Let’s jump back a few years to when I first started becoming aware of the OSS scene. I can’t remember exactly, but it must have been the early 2000’s, probably shortly before or maybe during the first year or two of college. I of course loved the idea, and got excited about things like trying out different Linux distros, chatting with fellow nerds, and playing around with window managers and whatnot. This is also when I started learning about the command line and the power and fun of Unix, so all of that excitement kind of got bound up together.
But it almost didn’t even occur to me that I should get in there and submit patches to anything myself. I would read mailing list threads where Linus (or some other venerated maintainer) would berate the idiocy of a submitter’s poorly thought out patch, or the audacity of someone asking a newbie question. It seemed to be a rite of passage to endure this kind of verbal beating until you could level up enough to be able to dish out your own tirades.
I was scared to subject myself to this kind of thing, but I don’t think the fear came from a fear of the venom itself. I could take someone yelling at me when I knew they were just angry, no problem. I think what I was secretly afraid of was that the person yelling at me would also be right about my stupidity. So I didn’t submit anything. All of this was a subconscious process. I never examined my avoidance behavior or vague sense of fear.
A couple of years after college, I started to read a lot about skill development, learning, how expertise is gained, that kind of thing. I learned about a concept that—now that I know about it—seems to have been fundamental to my life experience called Performance vs Mastery Orientation. If you aren’t familiar with the concept, the basic distinction is this:
Performance Oriented Mindset
“I am smart. I am good at programming. I know things about computers.”
Mastery Oriented Mindset
“I love challenging problems. I enjoy learning more about programming. I’m improving myself.”
Another way to say the same thing is that a performance-oriented person thinks about themselves in terms of static properties, whereas a mastery-oriented person thinks about themselves in terms of processes and changes.
The other big love of my life besides computery stuff has always been music. Even before I got into computers, I was a musician. I grew up in a musical family, and it’s always been a core part of my identity. I was always pretty good at it too. I had musical talent, and growing up in a small town, it wasn’t hard to be reasonably highly rated in things like those high school band competitions that in retrospect now seem kind of weird.
So growing up, I was smart, I knew computers, and I was musically talented. You can guess what happened when I got to college and was suddenly surrounded by hundreds of people who could say the same. Since I was so strongly performance-oriented, I didn’t really practice very much, I didn’t really study very much, and in general I was just not equipped to deal with the idea that I wasn’t already good enough for any given situation.
I don’t want this to come off too sad or anything. I had a great time in college! I did manage to learn a ton (in spite of my mindset), made a lot of great music with awesome people, and somehow scraped good enough grades to graduate and land a decent programming job out of school. But always I would avoid getting into situations where I didn’t already have expertise. I was afraid of not already being something, whether it was smart, or musical, or whatever.
So, getting back to the OSS contributing thing. I now realize that what I was afraid of was not the harsh critiques I might receive, but the possibility that those harsh critiques would be true. I really didn’t know much! (I honestly still don’t, even though I’m light years beyond where I was 10 years ago.) Since I was performance-oriented, the thought that the hypothetical flames would be right was scary enough to prevent me from even approaching the activity.
I guess what I’m saying is, 10 years ago, you could have absolutely crushed me by calling me an idiot. I’d like to think that’s less true today. I know I’m not all that smart, and I’m coming to terms with it. Of course, you calling me names would still make me feel bad, but not in that same existential kind of way.
This has been long, and rambly, and all about me rather than about the OSS community as the title might have implied, but that’s on purpose. I want to take responsibility for my own mindset and not try to externalize it.
HOWEVER, and that is a big however, I do not think that the kind of OSS attitude I used to be frightened of is OK. I think if the normal thing in 2003 had been for Linus to greet newcomers gently and offer them a helping hand up, I’d have been able to transition from performance-orientation to mastery-orientation in my late teens instead of my late 20s. I’m there now—or getting there, at any rate—and I’m already carving out time to contribute to some of the projects I love, but man…10 years is a long time. I could’ve given away so much code in that amount of time if I hadn’t been scared to.
I don’t really think there’s a moral or a TL;DR here. I mean, I guess it’s “be nice instead of mean, also focus on improving instead of on being good”. Mostly I just wanted to sit down and flesh out some of the thoughts that started spinning around after that conversation this morning. I’m intentionally not going to edit this post as much as I normally would so that it maintains its there’s-not-really-a-point nature, so if you’ve made it this far, congratulations on wading through that much unstructured braindump :)