5 mistakes that can be avoided as a beginner in FOSS contribution! 
Tags: opensource, beginners, computerscience, github
Published: 2020-09-18 04:16:28

I was introduced to a computer when I was not even a decade old. Since then I have been using computers. I remember I used to use my PC just to watch movies in **VLC Media player**. This was unknowingly my very first interaction with open-source software. <br>

![vlc.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1599470825616/LOcORN_tF.png)

When I grew up a bit and was given loads of homework from my school, I used to use the **Firefox browser** to search my queries to get my tasks done. This was my second interaction with OSS.
<br>

![mf.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1599470862938/6Ssv5fq8g.png)

When I got admitted to a college and started learning to code in **VS Code** I realized that this was my third interaction with OSS.
<br>

![vsc.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1599470901217/Ov87AjMAM.png)

Right now I am learning stuff related to Databases and surprisingly MySQL is also an OSS.

All I want to point is that we are literally surrounded by OSS. Some of us realize it and some do not. Just think about that feeling if you get a chance to contribute to OSS which is used by millions of people how awesome you would feel about yourself. You would have created a strong digital footprint in the Tech world.<br>
Now while there are many ways to contribute to open-source software. Firstly, it is important to know where are the repositories of such projects hosted. There are three well-known repo hosting sites that every newbie developer must be aware of **GitHub**, **GitLab**, **BitBucket**. 

Now if you are new to open source then there are five mistakes that you can avoid to get a much better experience contributing: <br>

* **Opensource is not just coding**<br>

Yes, you heard that right! When I was a beginner all I knew was that you must have a good grip on a tech stack, then only you would be able to contribute but that's not the case. 
You can start contributing to the documentation of a project. Or you could work on it's UI/UX designing. This would **not** require a sound knowledge of code. Just a little experience with writing (for documentation) or knowing how to use Adobe tools/Figma (for UI/UX).

![doc.jpg](https://cdn.hashnode.com/res/hashnode/image/upload/v1599476973136/cUIzUcsxM.jpeg)

* **Avoid jumping directly contributing to big organizations**<br>

When you start your open source journey after learning a skill you **may** be very pumped up thinking that now you can change the world and put in some major contributions in repositories of big organizations with all the knowledge you have, but that's not the reality.
It takes time to choose and understand the project that you are willing to contribute. It can be very demotivating if you have just begun. You can start with smaller repositories and once you get a grip on how the process of contribution actually works, you are good to go. 
I would strongly recommend that first, you start contributing to docs of small projects as it's easy for the first time. When you get familiarized with the way git works & how to push, pull, or make a PR; Then you can elevate your level. 
You can search for beginner level or first-timer issues on Github. For example for doc related issues follow [here](https://github.com/search?p=10&q=need+docs&type=Issues).
Note that you can contribute to beginner level issues in a repo by searching the corresponding labels in the issues section in a repository.

*To understand how to contribute to beginner level issues:* 

**Consider**, freeCodeCamp's repo: 

Click the labels tab in the issues section.

![labels.jpg](https://cdn.hashnode.com/res/hashnode/image/upload/v1599813958305/NqlulzF8L.jpeg)

Now you may choose the type of issues you want to resolve and get into it :) 

![l2.jpg](https://cdn.hashnode.com/res/hashnode/image/upload/v1599814179195/m1LFCqAA8.jpeg)

* **Spend time to first set up an environment on local PC**<br>

I have committed this mistake a lot when I started. It is ok if you are taking the time to set up your environment. 
Don't get demotivated if you are stuck with any bugs. Because if your environment is not set right then in no way you would be able to start contributing to the repo.

![pc.jpg](https://cdn.hashnode.com/res/hashnode/image/upload/v1599476982482/nf94IW4ZB.jpeg)

* **Get connected to the IRC mailing list/Slack/Gitter channel of the Organization if available**<br>

When you start contributing to OSS or set up your environment you may hit up with lots of doubts initially. In this case, it is best if you can contact the project admin or mentors of the project. 
Generally, if you are contributing to the project of an organization. You may find a mailing list, gitter/slack channels where you can contact the owners, and engage with the community to get your queries clarified. It's always best to google your doubt and do proper research in the background before asking a doubt with your mentors.
Many beginners raise an issue in the repo mentioning that it's a problem in the project but mostly that's not the case.

![soc.jpg](https://cdn.hashnode.com/res/hashnode/image/upload/v1599476992094/YEIGqn8fM.jpeg)

* **Have Patience**<br>

Last but not the least, you must have patience.
When you have raised an issue in the repo or asked a question in the community, you must have patience. Everyone manages his/her tasks in 24hrs only. Avoid messaging the mentors in person and rely on the community and your own debugging abilities. 
After all, it takes time for good things to happen.
Once you get good exposure to the way how contributing to OSS works you can start contributing to bigger projects. You can participate in OSS events like GSoC/Outreachy/MLH/GSoD..and many more... 

>You can follow these links to get an overview of various OSS events that happen around the world: [OSS_1](https://github.com/Catalyst-IN/OpenSourceEvents-Frontend) and [OSS_2](https://github.com/tapaswenipathak/Open-Source-Programs).

**Long live Open Source! 😊**