How To Make Your First Contribution As a Beginner In Open Source
Tags: opensource, beginners, community
Published: 2021-05-25 06:09:00

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b6qu52mg7gteock8at73.jpg)

Open Source is very powerful that is encouraging and empowering, but students today are not really aware of what power the Open Source world really holds, how motivating the community is, and what opportunities it brings as most of the students do not know much about Open Source and how engaging the community is.
If you are here then Kudos to you for making your first step into the amazing Open Source world.:clap:

Now with no more delays let's get right into what Open Source really is, how inspiring the community is, what all opportunities it brings to students and how you also can make a little change to the community and empower others too.

##What is Open Source? 
Open Source, when you think of this term what might come to your mind is anything that is freely available, well that's what it exactly is. 
Open Source can be explained as source code of any software that you might be currently using or will be using in the near future as the Open Source thing is only going to grow more and more and which is made available to everyone so that every single one of us can have a look, help making it better if we think that particular software is missing this feature and if we add that feature to it then the software would become much more better than before.
So, I hope you got a little idea of how things work in Open Source world.
Some of the most commonly used open source softwares are Mozilla Firefox, VLC Media player, Image editing tool Gimp and the list is simply endless. 
As now we have known so much about open source let's get right into how you can help make a change and make your first contribution.

If you know about Open Source I believe that you might be aware of GitHub to, but if do not let's know a bit about Git and GitHub to.
___

###What is Git?
Git is a version control system that lets you manage and keep track of your source code history.

###What is GitHub? 
GitHub is a web-based Git version control [repository](https://www.javatpoint.com/git-repository) hosting service. GitHub provides all the functionalities of Git along with some of its own features as well.

Now we will be covering some steps so that you can download Git on your system and get started to contributing to your first repository.

We will be downloading Git bash, through Git bash you will be able to type Git commands that make source code management easier through versioning and commit history.

###Step 1
Download Git on your system from [here](https://git-scm.com/downloads).

###Step 2
After downloading, you need install it on your system. So for installation click on run then click on next, after that do not change the Destination location and simply click on next, after that while selecting components check the boxes with 'In the Quick Launch' and 'On the desktop'. After that keep on clicking next.

###Step 3 
After installation, uncheck the box with 'View release notes' and check the one with 'Launch Git bash'


###Getting started
To get involved with Open source projects you need to have a basic understanding of how git commands work and how one has to use those commands to make a valuable contribution.

Reference for git commands:
* [git commands for beginners](https://www.hostinger.in/tutorials/basic-git-commands)
* [Quick reference for git command lines by Simplilearn](https://www.simplilearn.com/tutorials/git-tutorial/git-commands)
* [Basic git commands](https://confluence.atlassian.com/bitbucketserver/basic-git-commands-776639767.html)

####Contributing
####1. Choose a project that interests you
This is the most crucial and salient part of your contribution. You need to find a project that interests you and that matches your skillset. And this need not to be a very large contribution. For someone who is just starting with open source it is highly recommended to start with Fixing typos, modifying documentation files in large and even small projects. Well as of now if you are reading this you might be looking to contribute as a beginner. [first-contributions](https://github.com/firstcontributions/first-contributions) can prove to be a really good start for you. [Hacktoberfest-practice](https://github.com/EddieHubCommunity/hacktoberfest-practice) and [awesome-for-beginners](https://github.com/MunGell/awesome-for-beginners) can really help you as well.

####Finding a project
You can filter the issues tab according to your skillset let's suppose you have basic knowledge of Java and you want to contribute to projects written in Java language then you can search good first issues by going to the issues tab and searching the issues with labels like 'label:"good first issue" ' and 'language:Java'

![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g4bvr6rrvi2emymm3e7r.png)
 
In a similar manner you can filter issues by replacing 'good first issues' with 'first-timers-only', 'beginner', 'good-first-bug' and 'easy'.

####2. Forking the project
Fork will create a copy of the repository in your GitHub account so that you can make changes to the project.
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/34gyvlrsneal8hk0xehh.png)

####3. Cloning the project
Go to your own GitHub account and there you will see a forked version of that project under your account. Now click into this repository that is forked and and we will make a copy of it on your machine by hitting the code button.
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nm534wc53idklbpu0yo0.png)
Copy the **HTTPS URL**.
Open your terminal or git bash window.

Move to the location on your computer where you want to create a copy of this project.

Run the following command:

`git clone https://github.com/userid/first-contributions.git`

> Substitute your GitHub username for userid.

You now have a local copy on your computer.

The folder on your computer will have the same name as the remote repository on GitHub.

Create a new branch by running the following command:

`git checkout -b add-your-name`

cd into **first-contributions**.
Then cd into **Contributors**.

Now open the Contributors file in your Text editor. 

Add your name alphabetically into the file along with your GitHub profile URL.

Now run `git status` in the terminal

You should see this: 

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ngiw6l8din8nvc9jafp2.JPG)

Changes that you made need to be staged and committed. 
So to add your changes run the following:

`git add .`

Now your changes have been added and you are needed to commit your changes and push it to your remote repository that is on your GitHub account. 

To commit your changes run the following:

`git commit -m "add-your-name-to-contributors-list"`

It is always important to write a good commit message while working in large codebase projects. So there you have to take care of writing an explainable and not too long message that describes what your contribution fixes and which can be easily understood by the maintainers of the project.

Now you have to push your changes to your remote repository so run the following command:

`git push origin branch-name`

When you will head over to your GitHub account you will be able to see a message with **compare and pull request** button. 
Click on the button and now you will be creating a pull request that will be visible to maintainers of the project. 

After that click on `create pull request`
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4qi0796np3vla1adypk5.jpg)

Yay!!!:tada: You just created your first pull request.
Thanks for following along. You are awesome and I am so proud of you!

**NOTE:** While contributing to any large codebase project or even smaller you can always ask your doubts in Slack channels, mailing lists that are there to help you.

![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ct12v1zdski2apxad8o8.png)
 


> Open Source community is really encouraging and inspiring and inclusive so if you ever feel overwhelmed about such large projects that you want to contribute to you can always ask your doubts and queries in mailing lists and slack channels. 
Remember do not give up ever, people in different groups are more than happy to help solve your queries and all you got to  do is  reach out to them and explain your query.

If you have followed along then Congratulations :tada: on starting your Open Source journey because that is really awesome and I really appreciate your efforts.

 
Also mentioning some other resources that will help you in your Open Source, programming journey and the amazing Computer Science Field :

* [Code for Cause](https://www.youtube.com/channel/UCfv8cds8AfIM3UZtAWOz6Gg)

* [My Code School](https://www.youtube.com/user/mycodeschool)

* [take U forward](https://www.youtube.com/channel/UCJskGeByzRRSvmOyZOz61ig)

* [Love Babbar](https://www.youtube.com/channel/UCQHLxxBFrbfdrk1jF0moTpw)

Hope you found this helpful. If you did then do share this with people who are beginners like you and want to make their first contribution in Open source.

Thanks for reading and hope you have a great day!!:smiley:

Say Hello! [Twitter](https://twitter.com/shatakshiigupta)