Getting started with contributing to open source

Getting started with contributing to open source

all about open source and how to quick start your contribution in open source

What is open source?

In simple language open source software is software whose source code is available to use and modify. Open source contributions involves development and improvement of open source software.
In daily basis we are using some open source software without being aware about it like Linux operating system , Android , VLC media player, Chromium , VS code IDE, word press content manager and many more such software .
you will surprised by knowing that code of the mission in which human has landed on the moon for the first time is also open source !! You have heard it correctly i am talking about mission - Apollo 11

image.png

Apollo 11 source code

Why to contribute in open source ?

Have you even imagined single developer is maintaining an application? Applications will not have too many features and upgradation so here open source comes into picture.
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.
As contributor in open source we will have hands on experience to work on project and by the time you can be good developer with guidance of the maintainers of that project and if you are doing great work in that project , You can get opportunity to become full-time of that project.
Apart from that you are creating impact on many people by adding feature on that project or resolving some issues of that project. It will help you to be better developer and with time good mentor.

Which things i should know before contributing to open source?

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)

image.png

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.

Read more about VCS

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

you can see workflow of git below image.png

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

GitHub

Github workflow for contributing in open source image.png 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.

You must know about git + github if you want to contribute in open source

Resources:- cheatsheet for git commands
Git+Github complete tutorial Github learning lab

If you have learned the basics then you can start with open source you will get to know many thing on the go.

How to start contributing?

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. Now you may think that how i will able to search for beginner-friendly issues? So there are some orgs they can find you beginner friendly issues:

You can directly go to github and request some good first issue, Easy issue , First timer issue by the below links

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 because if you are not assigned that issue you should not take it.

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.

Some good open source programs you can participate in

Google summer of code (GSoC)

image.png

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

image.png 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.

Outreachy

image.png 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.

GirlScript Summer of Code

image.png

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.


MLH Fellowship

image.png

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.

By the names of this programs you can see these programs are encouraging women developers to contribute that's great.

If you have completed till here please 🙏don't forget to follow my socials

-github
-twitter
-Linkedin

Did you find this article valuable?

Support Kunj Patel by becoming a sponsor. Any amount is appreciated!