How to Start Contributing to Open Source
Tags: opensource, beginners, webdev
Published: 2022-01-16 00:39:44

This has been my first year as a developer and I've learned a lot by contributing to multiple open source projects. I've heard from other Dev's that they've had trouble finding open source projects and just generally knowing where to start in the open-source community so I decided to write about resources & tips that helped me. 

### What is Open Source?

Open Source is a term that refers to software bases or platforms with source code *(GitHub, Gitlab, Bitbucket, etc.)* that is accessible and can be modified or enhanced by anyone. 

Open source projects are a great way to collaborate with other Developers and build a network. Contributing to open source projects can help you develop & learn and make an impact to important projects in Tech. *Some popular examples of open source include- Mozilla Firefox, Linux, WordPress, Bitcoin, and Android.*  ☞ ***Learn more at [opensource.com](https://opensource.com/resources/what-open-source), [digitalocean.com](https://www.digitalocean.com/community/tutorial_series/an-introduction-to-open-source), and [github.com](https://docs.github.com/en/get-started/exploring-projects-on-github/finding-ways-to-contribute-to-open-source-on-github).***

### Where to Start?

I first started learning and contributing to open source during a Hackathon event. I was able to start my own open source project and found other developers to help grow the project. It was a great opportunity to connect and collaborate on some code. 

It's important to have an understanding of your skills level and to know the basics of GitHub and git _(git clone, git pull, git push, git status, git status, etc.)_ *☛ [git cheatsheet](https://training.github.com/)* 

**1. Find Open Source Projects:**

-     **[firsttimersonly.com](https://www.firsttimersonly.com/)** has links to everything you need to get started on open source.
-     **[goodfirstisssues.com](https://goodfirstissues.com/)** & [goodfirstissue.dev](https://goodfirstissue.dev/) are the sites where I found open source repos that needed help and let me filter by the programming language *(HTML, CSS, JavaScript, etc.).* *Anyone regardless of skill level can use these sites*. 
-     **[Devpost](https://devpost.com/hackathons)** has a list of multiple hackathons that you can participate in. *You DON'T need to do a Hackathon to contribute to open source it is just a good resource for new dev's.*

![demo gif](https://github.com/kwing25/assets/blob/main/posts/opensourcepostgraphics/Good%20First%20Issues%20Gif.gif?raw=true)

**2. Once you've found a project your interested in...**

-     Go to the repo's README.md 
-     Look at the **Contributing** section to find out the project's requirements and instructions on how to contribute. ***⚠️ Make sure to find a project that clearly states the instructions for contributors. This is especially important if you are new to open source.***
    _*Be sure to read the Code of Conduct before getting started on any project you contribute to!_

![demo gif](https://github.com/kwing25/assets/blob/main/posts/opensourcepostgraphics/repodemogif.gif?raw=true)

**3. Look at the project's open issues:**

-     Most open source projects will have open **Issues** that describe errors, updates, enhancements, and other things that are needed for the project. 
It is good to look through all the open issues and see if you can contribute & complete that issue. If there are no open issues and you would like to make your own contribution be sure to look at the README.md _(mentioned in Step 2)_ for instructions.

![demo gif](https://github.com/kwing25/assets/blob/main/posts/opensourcepostgraphics/issuedemogif.gif?raw=true)

**4. Fork & Clone the project down to your machine and start coding!**
![demo pic](https://github.com/kwing25/assets/blob/main/posts/opensourcepostgraphics/forkclonepicdemo.png?raw=true)

**5. Make a Pull Request**
An open source project pull request template should include the following:

-     PR Title/Subject
-     Description of code changes, enhancements, etc.
-     Reason for submitting PR *(fixes bugs, enhancement, etc.)*
-     Tests or Checks performed on code
-     *Any other documentation...*

🚨 The most important things for any Pull Request is to write a clear and concise message of the changes you made. **Proofread and correct any types in your code before you make a PR!** * *Be sure to do a git pull so you have the up to date code.* 

 ![demo gif](https://github.com/kwing25/assets/blob/main/posts/opensourcepostgraphics/prdemogif.gif?raw=true)  

---

#### I hope you find this brief guide helpful. Contributing to Open Source is a great way to connect, contribute, learn, and develop some awesome code! I highly recommend any new Dev's to find an Open Source project and show off some of your skills! Best of luck to you in your coding journey! 💻💪💫
---

**_👋 Connect with me on [LinkedIn](linkedin.com/in/kendrawing)_**

{% user kwing25 %}
*I plan on writing additional posts on how to Create a PR, Write a good README.md, Repo Basics (Maintainer, Labels, Issues, Deployment, Code of Conduct, License, etc.), and good Collaboration with other Dev's tips. Being a Junior Dev I hope to pass on some tips to other Dev's who are starting out. [Stay tuned for more updates!](dev.to/kwing25)*