I’ve come to a realization that I suck at contributing to open source projects. It’s not like I dislike contributing to open source or believe I suck at coding, but that I just don’t know what to contribute, how to do it and feeling insecure about my code and solutions. I became interested in programming in 2007 and since then I’ve only coded alone on my own projects. I never contributed to open source projects because the thought never crossed my mind.
It wasn’t until last year when my friend Callum Macrae showed me GSoC (Google Summer of Code) that I (slowly) started to contribute to open source projects. The goal of GSoC is to submit a proposal of how you would make any of the registered open source projects better, and if you are chosen by the open source organization, you’ll implement your proposal during the summer and you get paid by Google for doing so. Last year I submitted a proposal to phpBB to create an API, but I didn’t get chosen (looking back at that proposal I realize how bad that proposal was so it wasn’t a surprise I wasn’t chosen).
To increase ones chance to get selected you’d have to contribute to the project beforehand. I checked the bug tracker for things I could fix but come to a realization: I have no idea what I am doing. As I’ve only worked alone for so long I always knew what bugs there were in my projects and how to solve them, but this wasn’t the case anymore. I checked bug report after bug report but I wasn’t secure enough to fix any of them. Fortunately I found a couple of rather easy ones to get a hang of the open source workflow of phpBB. Here was my next problem: how exactly do I submit my patch? phpBB uses GitHub, and I’ve used git and GitHub before but only for my own use. I read some instructions on the phpBB wiki and asked Callum as he contributes to phpBB as well, and sure enough, just fork the repo, branch from the correct develop branch, fix whatever bug you were about to fix, commit that to your own repo and submit a pull request. Easy enough.
Or not. No one had ever reviewed my code before. No one had ever commented on it. This had led me to become very insecure about my code and I was worried what others would think about my solutions and my coding style. I was unsure what I would put as my commit message, and sometimes even afraid to send the pull request. I managed to fix some four or so small bugs but after my proposal was rejected I got a bit bored with contributing and forgot about it and went back doing my own stuff instead.
This year I’ve tried again with GSoC and phpBB with same idea but a much better proposal than last year and I’m in the same position and I’m trying to get used contributing again. I still have issues with insecurity and how I should solve things the best way, but I’m trying my best to overcome these obstacles and get more active contributing to various open source projects.
The message I want to send is to start as early as possible with contributing to open source projects. Even if you don’t know enough programming yet, check the bug tracker occasionally, try to understand parts of the projects code and when you find a bug report that seems easy enough for your skill level, don’t be afraid to fix it! I believe by contributing to open source projects, you’ll learn to be a better team member and you get valuable feedback on your work. It’s a crucial skill and you really need it later in life when you are working in teams at whatever job you get.
I know for one that currently I’m not the best at working in teams. I’m doing ok with groups of 2 – 3 persons, but when working in large groups I have a hard time making myself useful for the rest of the team. I do wish I’ve started contributing to open source projects earlier in my life so I would be more prepared at it when starting college, but I guess it’s better late than never am I right?