Tuesday, April 25, 2017

Contribute to Open Source Projects As a Student [Guide]

Some of the best products and software available today are due to the brilliance of open-source software. For those who don’t know, an open source software is one where its source code is open and available with a license in which the copyright holder provides the rights to study, change, and distribute the software to anyone and for any purpose.

There are whole communities on the internet that work on their projects of choice.


Why Should You Contribute to Open Source Projects?
First things first. Contributing to open source projects won’t help you earn money except in very few cases, like Google’s Summer of Code program for students. Of course, one would wonder why should he or she really bother spending some time working on an open source project if there’s no monetary benefit?

Well, here’s why:

  • Learning: While taking online courses and/or studying at a top institute might prepare you for work later in your life, there is no learning experience better than working on an actual project yourself.
    If you are working on an open source project with a thriving community, you’ll get tons of feedback on your work and learn to adapt very quickly, getting better with every contribution.
  • Great People: You’ll work with some of the most experienced developers, programmers, designers, from around the world while working on open source projects.
  • CV – Building: Contributing to open source projects is a great mark to have on your CV. If you are graduating in Computer Science, having a degree just isn’t enough and your experience as a contributor to open source projects can be the one thing that catches an employer’s eye.

Paid Open-Source Programs for University students
If you’re a student, there are a number of programs that can help you start working as a contributor to open source projects. We have attached some of them below:

  • Google Summer of Code: Google Summer of Code (GSoC) is an annual program for university students around the world. Held from late April to August, the competition invites university students to spend their summers coding free and open-source software.
  • Outreachy: Outreachy organizes paid three-month internship programs for free and open-source software specifically for people who are typically underrepresented in those projects.
  • Rails Girls Summer of Code: A global fellowship program, Rails Girl Summer of Code is focused on getting more women in Open Source projects. Selected teams receive a three-month scholarship to work on selected Open Source projects.
  • Google Code-In (Pre-University): Google Code-in invites students aged 13-17 to take part in a global, online contest related the world of open source programming.

How can you start contributing to Open Source Projects?
The first thing you should do is ask yourself what your interests really are and your preferred programming language. Even if you’re not a programmer, there are lots of others areas you can help. There are a number of great tools built using the open-source model that we already use in our daily lives – Firefox, Linux, WordPress, Chrome, OpenOffice, etc.

Once you’ve done that, you should start looking for a beginner-friendly project that you would like to work on. There are a number of great resources where you can find that. GitHub has compiled a pretty neat list of some of these,

  • Up For Grabs – a list of projects with beginner-friendly issues
  • Issuehub.io – a tool for searching GitHub issues by label and language
  • First Timers Only – a list of bugs that are labeled “first-timers-only”
  • YourFirstPR – starter issues on GitHub that can be easily tackled by new contributors.
  • Awesome-for-beginners – a GitHub repo that amasses projects with good bugs for new contributors, and applies labels to describe them.
  • Openhatch – a non-profit organization that helps lower barriers of entry into open source. You can find bugs and projects here, as well.

Contributing for the first time
Every open source project has its own sets of rules and design guidelines that you need to adhere to. You need to stick to the rules so do remember to go through the project’s documentation beforehand.

Here is a helpful guide for starting with GitHub. You can also read a book on open source software. I recommend Open Advice, since it is available for free and can be downloaded from this link.

Once you’ve done your reading, you can start looking for known issues. Just head over to your chosen project’s issue tracker and browse through the list of issues. Look for anything you’d like to work on.

Submitting your first bug-fix, feature, etc.
Finding bugs as a beginner can be a really difficult task and it’ll take a decent amount of time before you get experienced enough to spot bugs in code.

Meanwhile, you can use tools like Fedora — it lists down all the easy fixes which have been evaluated as an easy entrance point for beginners. Mozilla also has a great starting guide for newcomers in this field.

  • Good First Bugs – bugs that developers have identified as a good introduction to the project
  • Mentored Bugs – bugs that have a mentor assigned who will be there on IRC to help you when you get stuck while working on fix
  • Bugs Ahoy – a site dedicated to finding bugs on Bugzilla
  • Firefox DevTools – a site dedicated to bugs filed for the developer tools in the Firefox browser
  • What Can I Do For Mozilla – figure out what you can work on by answering a bunch of questions about your skill set and interests
  • Start Mozilla – a Twitter account that tweets about issues fit for contributors new to the Mozilla ecosystem

Whenever you submit your first bug fix, or suggest implementing a new feature or make any suggestion you think might be good, don’t forget to include the test information, the documentation, or any other data that would be necessary.

Take criticism constructively
When you make your first ever contribution, chances are that you’ll receive a good amount of criticism in the subsequent code review. Most veteran developers on open source projects are focused on the code so they don’t pay much attention to the problems faced by a newcomer, so ignore any harsh criticism you receive in a code review.

Be ready to face rejection. Learn to accept it and learn to improve upon it. That’s the only way you can start to get better at this.

No comments:

Post a Comment