How To Contribute To Open Source Software As A Beginner

What is Open Source?

In simple words, we can describe an open source project as source code that is made available to the public to view, use, modify, and distribute under a permissive license.

As an example to explain this, let’s use a classroom scenario. A teacher can share a document on a platform like Goggle Docs. On this platform students can edit the document and even make copies of their own. But whenever they make edits they have to be approved by the teacher before reflecting on the document again.

That’s how open source code works: once it’s been made public, and you need to add a feature or make changes, the owner has to approve the added changes and publish them for others to see.

Most successful open-source projects are a result of contributions from people with all skill levels – and not only coding skills, but also other skills like writing, languages, and so on.

Any time someone fixes a typo, adds an alert about a possible compiler warning, fixes a bug, or even adds detailed documentation to a project, progress is made. If we take all these small contributions from different people with different skills and put them together, great things can happen.

Just as Vincent van Gogh said:

Great things are done by a series of small things brought together.

What is Open Source?

In simple words, we can describe an open source project as source code that is made available to the public to view, use, modify, and distribute under a permissive license.

As an example to explain this, let’s use a classroom scenario. A teacher can share a document on a platform like Goggle Docs. On this platform students can edit the document and even make copies of their own. But whenever they make edits they have to be approved by the teacher before reflecting on the document again.

That’s how open source code works: once it’s been made public, and you need to add a feature or make changes, the owner has to approve the added changes and publish them for others to see.

Most successful open-source projects are a result of contributions from people with all skill levels – and not only coding skills, but also other skills like writing, languages, and so on.

Any time someone fixes a typo, adds an alert about a possible compiler warning, fixes a bug, or even adds detailed documentation to a project, progress is made. If we take all these small contributions from different people with different skills and put them together, great things can happen.

Just as Vincent van Gogh said:

Great things are done by a series of small things brought together.

What is Open Source?
In simple words, we can describe an open source project as source code that is made available to the public to view, use, modify, and distribute under a permissive license.
As an example to explain this, let’s use a classroom scenario. A teacher can share a document on a platform like Goggle Docs. On this platform students can edit the document and even make copies of their own. But whenever they make edits they have to be approved by the teacher before reflecting on the document again.
That’s how open source code works: once it’s been made public, and you need to add a feature or make changes, the owner has to approve the added changes and publish them for others to see.
Most successful open-source projects are a result of contributions from people with all skill levels – and not only coding skills, but also other skills like writing, languages, and so on.
Any time someone fixes a typo, adds an alert about a possible compiler warning, fixes a bug, or even adds detailed documentation to a project, progress is made. If we take all these small contributions from different people with different skills and put them together, great things can happen.
Just as Vincent van Gogh said:
Great things are done by a series of small things brought together.

What do you mean by open-source contribution?

Open-Source Software is a type of software whose code is publicly available to use and modify. Open-Source Contribution involves contributing to the development or improvement of open-source software.

Some popular Open-Source Software are the Linux Operating System, Android, Mozilla Firefox, Chromium (which powers Google Chrome and Microsoft Edge), VSCode IDE, VLC Media Player, WordPress Content Manager System, etc.

Open Source is something each one of us is inevitably using every day, possibly without being aware of it. Interestingly the code that resulted in the first manned mission to the moon is also open-sourced. Yes, I am talking about Apollo 11.

Why should I contribute to open-source?

Ever wonder if all these projects/software were single-handedly maintained by a single developer?
What would have been its impact on them and pretty much on us?

The software would not have had so many features and upgradations. This is where open source contribution comes in. Contributors from around the world help develop and improve the software for every one of us who use it. Being a contributor will give you the super-power to be a part of something that is impacting so many lives.

Apart from the impact that you get to create, it also helps you become a better developer and with time a good mentor, leader, and passionate team player.

Prerequisites before starting to contribute

Learn a programming language

Since open-source contribution requires you to read/write code if you want to be involved in its development, you are required to learn a programming language to get started. You can get started with any language of your choice. You can easily learn another language at a later stage if a project requires it.

Many people help with documentation, translation, etc as well which does not require programming. If you do not want to contribute as a developer then you can skip this step.

Get Familiar with Version Control Systems (VCS)

When we are working on a big project, it is extremely important to store all the changes that are being made to recall it at a later stage. Version Control Systems are software tools that help with it. They keep track of all the modifications that happen over time in the source code as versions. They also allow us to go through older versions and revert to an old version if required.

You can read more about VCS here – What is version control?

There are many version control systems such as Git, Mercurial, CVS, and SVN. Git is the most popular and most widely used version control system in the industry.

Git

Git is the most popular open-source distributed VCS used with most commercial and non-commercial projects.

These resources might help you learn Git from scratch:

In the initial stages, this cheat sheet might be very handy: GIT CHEAT SHEET

GitHub

GitHub is a code hosting platform for collaboration using the Git Version Control System. In layman’s term, it is the place where you keep all your projects and multiple people can work together on those projects.

Good resources to get started with GitHub:

Note that you do not need to be a master in VCS/Git/GitHub to start contributing. Once you are comfortable with the basics, you can start contributing to open-source.

How to get started with open-source contribution?

Open Source your projects

If you have already done some projects, open-sourcing your projects might be a good way to get started. Put it on GitHub and seek contributions from the community. This will not only add value to your project but will also help you to collaborate with many developers around the world.

Many widely-used frameworks and libraries were open-sourced by individual developers. Several people started collaborating and maintaining these projects after the projects got popular. 

If you do not wish to start with your project, it is totally fine to move to the next step directly.

Solve beginner-friendly issues

Solving a beginner-friendly issue will help you get started with contributing to an existing project.

You can get started by making your first contribution here.

Here are some good resources for finding beginner-friendly issues:

Alternatively, one can go to GitHub and search for easy, beginner-friendly, or good first issues.
The following links might be helpful:

You can then select or filter repositories based on your interest.

Notice “is:open” in all of the above links. This denotes open issues that have not been resolved yet. 

While solving issues do check if the same issue is being taken up by someone else or not. This means that if you find an issue in the codebase and someone else has already raised a PR, make sure not to pick up that issue.  

Start contributing to Open-Source actively

  • Find projects or organizations that you are interested in contributing to.
  • Go to their GitHub repository, read the documentation, and search for first-timer issues as mentioned above.
  • Try to work on as many issues as you can either across projects or for a single project.
  • Join their IRC channel (Gitter/Discord/Slack, etc.). Introduce yourself and ask for help when stuck. You can find the link to the channels on their GitHub pages.
  • You can also create issues after running the application locally.
  • Once you are comfortable with contributing to open-source, start participating in open source programs.

Open-Source Programs/Contests you can participate in

There are many open-source coding programs that you can participate in.

  • Google Summer of Code (GSoC)
    GSoC is the Olympics of Open Source. It is a global program focused on encouraging more student developers to do open source software development.
    Students work with one of the selected open-source organizations for 3 months and get a handsome stipend on completing the project. Students need to propose changes that they want to work on to get selected.
    It is a good idea to start contributing to your favorite orgs/project much before GSoC.
  • HacktoberFest
    HacktoberFest is a month-long celebration of open source software carried out in October. You can sign up anytime between October 1 and October 31.
    It is open to everyone in the global community!
    One needs to complete a certain amount of quality PRs to get swags in return. The swag motivates many people to get started with open-source contributions through this program.
  • GirlScript Summer of Code
    GirlScript Summer of Code is a 3 month long Open Source program during summers conducted by GirlScript Foundation, started in 2018, to help beginners get started with Open Source Development while encouraging diversity.
    Note that it is open to everyone and not just girls as the program name might suggest.
  • Outreachy
    Outreachy (previously the Free and Open Source Software Outreach Program for Women) is a program that organizes three-month paid internships with free and open-source software projects.
    It is for people who are typically underrepresented in those projects.
    This is generally carried out biannual throughout the year.
  • Rails Girl Summer of Code
    Rails Girls Summer of Code is a global fellowship program aimed at bringing more diversity into Open Source.
    Successful applicants are paid a monthly stipend, from July-September, to work on Open Source projects of their choice.
  • MLH Fellowship
    The MLH Fellowship is an internship alternative for software engineers.
    Instead of working on a project for just one company, selected candidates contribute to Open Source projects that are used by companies around the world and are paid a competitive stipend during this tenure.
0 Comments

No Comment.