Is OPW sexist?

Today was my last day as an OPW intern and I had hoped that it would end on a positive note. Upon our wrap-up meeting, the discussion of having a women-only program is sexist came up.

Now, this is a topic I feel really strongly about and it’s something that generates strong reactions from either party and I’m not even really sure that I want to get caught up in the mix, but I feel quite unsettled after being part of it.

I’ve been programming since high school. When I started, my classes were 50/50 in gender ratios, partly because my school was 75% female. I had noticed that there were more males in my class than usual, but since the ratio was equal, I never had the notion that women were underrepresented in the field. Then came college. There were significantly less women in my lower division classes, but since some classes were required by other engineering majors, the disparity was not as stark. I made many female friends during this time and was able to work on projects together.

Then came around to upper division classes. Suddenly, I was one of the few girls in my classes. There were times when I’m the only one. When people say that it shouldn’t matter that I’m a girl or not, they’re right. It shouldn’t. But it does. The fact that I was a girl stood out, intentionally or not. If I was absent, it was obvious. If I was in class, it was obvious. My presence stuck out.

For the most part, I tried not to let it bother me. I tried to be like one of the guys. But I’m not a guy. So when people are making guy jokes, it was very uncomfortable for me. Things like how hot a girl was and how they would like to get to know her. Or things like how I was the hottest girl (when in fact, I’m the only girl) in CS. Or how I should cover up my boobs because I was wearing a v-neck tee, which frankly didn’t even show cleavage. I tried to grin and bear it because, hell, I can hang with them; I’m a guy’s girl.

During this time, I treated a lot of women as not cut out for my field. I started woman hating. I thought, hell, I made it in CS, why can’t you? You’re not smart enough. I thought I was goddamn special for being a CS girl.

But on the other side, I was horrible insecure. I felt like I was never good enough. I felt like I had to work twice as hard to be “as good as one of the guys” when in fact, I was better than some of them. Every thing I did was not as good. I felt inferior to even the terrible programmers.

Now you can say that I just have terrible confidence and I brought it all upon myself. But I don’t think that’s true. Whether explicit or not, there’s a message out there for female programmers, “You’re never going to be a man and it’s a man’s world.” And I feel it everyday.

This brings be back to the point on OPW. I don’t think OPW is sexist at all. Yes, it excludes men as participants, but men are welcome to mentor and help interns. There are no restrictions on men voicing their opinions. There are plenty other avenues for men to participate in Hacker School, Google School of Code, to name a few. There are countless ways for men to get in touch with other like minded men. There are plenty of male role models for men to get inspiration from. But women are few and far between. I’m sorry, but being in a room of men vs being in a room of women is extremely different. I find that the all male atmosphere can be cold and uninviting. But in a female atmosphere, I feel more comfortable and willing to ask “stupid questions”.

Another point that people who think OPW is sexist is that it allows less qualified people in just because of their gender. I take huge offense to this. I found that the other participants of OPW to be bright, self-sufficient, and passionate people. They are just as qualified, if not more. The goal of OPW isn’t to bring in women who have no interest in the tech world. It’s to bring in women who otherwise weren’t comfortable applying to other internship or mentorship programs. Women who have been overlooked. And this is not the woman’s fault. You can’t just tell all the women that they should suck it up and just go for it. This is the same hostility that kept them away.

Honestly, I’m appalled at some comments that were surfaced today. It makes me angry that I have to keep fighting for programs like OPW to exist. I’m angry that I have to even address it. I hate being needlessly angry at things.

Things like OPW are necessary until women in the tech force is the norm. Until there’s less hostility for women to participate. Having more women in the tech industry isn’t a bad thing. They’re not taking away your jobs. Men who think women are replacing them don’t think about other men who are also replacing them. Gender somehow becomes the main focus and it’s not fair. What’s wrong with a little female competition?

All in all, my experience with OPW has been mostly positive and I learned a lot. I grew mentally and emotionally as a programmer in these past three months than in the years I was in school. I’ve learned that, while the majority of the FLOSS world is good, there’s still slivers of evil that I should be aware of. I’ll be sure to keep my chain-mail on and fight the good fight.

Thank you OPW for this wonderful opportunity. I am forever grateful.

An update!

I’m working at Wikimedia offices today and I’m already starting to wind down. I had to wake up early to make it up to San Francisco so I’m more groggy than usual. Sitting in an office is such a different experience than working from home. Mainly, I get to see and interact with other people. When you’re working from home, there’s barely any face to face human interaction. Though I do like programming in my PJs at home. I feel a bit more productive when I’m working in the office because there’s a lot less distractions. I’m not constantly thinking about doing the dishes or making myself lunch or spacing out on the internet.

I’m not really sure where I’m going with this post. I just finished writing up a few unit tests for my extension and I’m feeling really tired so I thought I might write a blog entry. Sorry if it’s ramble-y.

Oh! I met Aleta, an OPW intern, and Marta, a former OPW intern, yesterday. Pycon was in town and people were planning to come meet up but only three people ended up showing up. I’m not sure if people just didn’t realize it was yesterday or just decided to ditch last minute. It’s really hard to organize a meetup. They were both really nice and I’m glad we decided to meet up. We talked about our projects and what it’s like being a woman in the field. It was fun, I felt like we all got along really well.

Maybe I’ll go make some tea because I’m literally napping with my eyes open. D:

Unit Testing

Now that I’ve gotten my prototype working, the next time I wanted to do was unit testing. But I’ve had hard time to get unit testing rolling. Unlike my program, unit testing is much less exciting. Since I didn’t do it along side my program, it’s also really hard to modularize my functions and figure out what I should be testing. I keep looking at the big picture and can’t seem to buckle down and look at what each function needs. I just keep getting bogged down with what I should be doing and before I do it, I come up with something else I need to do.

I think I should take a step back and look at what I need to do. I should write down what ever comes to mind and try to organize it. I don’t know if other people go through this, but whenever I finish something, I go through a period of “I don’t know what to do next” and find myself feeling a bit lost. I’m trying really hard to get back on track, but I just wanted to let you all know that not everything is perfect. But that’s part of the learning process.

Sparse Checkout!

I’m happy to announce that my extension is now working with sparse checkout! Sparse checkout was a feature that we decided to try instead of git clone. It’s a feature of git that allows a user to keep just a certain file or directory from a git repository. It’s pretty neat because it’ll help conserve space.

I think my commit message will explain best what I’ve done:

Added sparse checkout functionality.

Created two new functions: SparseCheckoutNewRepo and AddToSparseCheckout. SparseCheckoutNewRepo will clone the repo and keep only the file given by the tag #snippet. Sparse checkout will only take the file from the given branch. The md5 hash has been updated to include the branch name so that each branch from the same repo will have its own folder.

AddToSparseCheckout will add files to the sparse checkout if the git repo/branch combination already exists. It will update the tree with `git read-tree -mu HEAD` whenever the file is edited.

This one took a while since there were many more things to check and find out. I didn’t realize that the sparse checkout will only check out one branch, which is staunchly set after it’s called so if you wanted something from branch2 but you had created your repo with master as the branch, you would need to make a new git repo for it. That’s why I added the branch name to the md5 hash.

Anyways, I’m really proud of this new change because it was a feature of git that I really didn’t know and didn’t understand. I had to test the commands on my computer several times to really grasp what was happening.

There has been some people who have taken an interest in my project lately and I can’t say how excited I am at the prospect that my code will help anyone. When I first started this, I was a bit disheartened when people said that they didn’t understand how my extension could be useful. But now that people might actually find it useful, it’s been a really nice bonus. I’ve found that project to be pretty fulfilling already because I learned so much in just two months.

Also, I noticed that people are translating the description of my extension in my i18n file. Sorry to be a parrot, but that’s so cool. I can’t believe people actually bothered to give my modest extension a translation. The mediawiki community is so amazing.

I will keep working hard and push myself. I feel that whenever I come across something I don’t know or understand, I tend to freeze. I have to learn to push myself into a project. I’ve been talking about doing unit testing for a few days now, but I’m still quite intimidated by it even though it should be a simple process. It’s a mental thing that I must overcome. I feel that once I start, I should be able to get the ball rolling and do it quickly, but getting the ball rolling is harder than I expected.

Updates on my project

Inevitably, blogging has gotten the best of me and I pushed it to the wayside. But I’ve made some pretty good progress, IMO, on my extension. It basically does all the things that my initial application does but in a much better format.

I’ve implemented a few error catching and messaging, which wasn’t present in my initial application. Also, I’ve created a shiny new class GitRepository which will hopefully be used later on by other applications. I’ve just added the functions that are relevant to my project, but perhaps in due time, it’ll be fleshed out more with more functionality.

I’ve been wanting to get into unit testing so that I don’t have to test manually. This is a totally new field for me since I’ve grown accustomed to testing things via printing things out or, more rarely, using a debugging tool. Having a testing environment is pretty important to the software world and I would really like to develop the skills for it. There’s been a surge of test driven development and behavior driven development so learning how to write unit tests is pretty important.

Things I learned: Week 4-5

Hi guys! I’ve almost forgotten about blogging. I’ll definitely try to blog more, but I tend to get writer’s block a lot.

So I actually don’t have a lot of things that I learned in the last two weeks. My mentor has gone missing. I haven’t been able to get in contact with him since last Monday. :( I don’t know where he’s gone, but it’s a bit distressful.

I think I’ve learned that I do best when I have a safe place to ask questions. Since Dereckson was the one who understood my project the most, it was easiest to ask him for opinions. I have been asking questions on #mediawiki, but it’s not quite the same.

I’ve hit a bit of a snag with my project in the last week. It was really hard trying to do my project on my own. I had a lot of environment problems so I had to reinstall a clean copy of mediawiki (which I’ve already done twice). I’m hoping my environment doesn’t die anymore because it really sets me back a few days. My problems seem to be unique to me, which is the worst possible feeling.

In terms of my project, I can still get my stuff done before I need to go into in-depth discussion with Dereckson (I hope he comes back soon). I’ve gotten my project to successfully clone and switch branches and now I’m working on getting the file open and read. It’s coming along well. I’m trying not to let the fact that I’m behind on my timeline get to me. MUST STAY MOTIVATED!

EDIT: My mentor is alive! Huzzah!