Open Source Contribution

Ask not what your industry can do for you–ask what you can do for your industry.

In Hack Reactor week 1, we had a class in which Phillip Alexander taught us about open source contribution. Before we talk about “contribution,” let’s find out what open source is. Wikipedia’s definition: “In production and development, open source as a development model promotes a universal access via a free license to a product’s design or blueprint, and universal redistribution of that design or blueprint, including subsequent improvements to it by anyone.

 

The easiest definition for open source is this: it means anything that is free to use, reproduce, or redesign. We all know the power of crowdsourcing. If there are 10 thousand people reviewing and contributing to a project, we would assume it to have less typos/bugs. Open source contribution’s goal is to make software safer & better.

As software engineers, every time we check a framework documentation or Github project, we usually find errors/typos. If we can help correct those errors, it will save other people tons of time. So all kinds of contribution are basically welcomed by developers. As a contributor, if you contribute through Github, your contribution will show up on your profile page under: Repositories contributed to. It is a wonderful way to show people (or your future employers) how great you are.

 

Phillip Alexander once helped reformat a document from a famous project on Github by aligning all the functions and their definitions. Before he did that, he thought somebody would do the reformatting job before him. However, three months later, he found that everything in the document was the same. He spent the time to make a better formatted document and made a pull request (request the original project to accept your changes). And?! His request got accepted. Because he contributed more than 1000 lines to the project, he became the top 3 contributors to that project. After that, he got emails from recruiters and developers about possible jobs or project cooperation.

 

So, what can you contribute to a project? Here are a few directions for you to start with:

  • Documentation: Any typo & format inconsistency should be a easy start point. If you find that it’s hard to read or understand some parts, it’s a good idea to make it clear.
  • Code bugs: Anything in the code that cause errors.
  • Testing: Some projects lack testing, and the truth is, lots of developers don’t like to write tests. If you can help by writing unit tests, you will be their lifesaver.
  • New feature: this part is a little hard since you will need to persuade people that your ideal new feature is useful and good. But it’s still worth trying.

To complete your contribution, you will need to make a pull request. The diagrams below show you good and bad pull requests (from Phillip’s blog).

Good pull request:

Source: http://phillipalexander.io/2013/09/16/good-github-contributions-look-like/

Source: http://phillipalexander.io/2013/09/16/good-github-contributions-look-like/

 

Bad pull request:

Source: http://phillipalexander.io/2013/09/16/what-do-bad-github-contributions-look-like/

Source: http://phillipalexander.io/2013/09/16/what-do-bad-github-contributions-look-like/

 

Here is my open source contribution to facebook/react.js. I felt so happy the day they accepted my changes (documentation). I will keep doing it.

Screen Shot 2015-02-13 at 8.24.01 PM

 

11/18 Update

My friend just found out that lots of us are in the Facebook React’s contribution list. I feel great that my contribution got recognized in their site!

https://facebook.github.io/react/acknowledgements.html

Facebook React contribution list

Are you excited to make contributions to open source projects? Let’s start today!

Leave a Reply

Your email address will not be published. Required fields are marked *