An open API service indexing awesome lists of open source software.

https://github.com/avidrucker/how-to-contribute-to-open-source


https://github.com/avidrucker/how-to-contribute-to-open-source

Last synced: over 1 year ago
JSON representation

Awesome Lists containing this project

README

          

# How to contribute to Open Source

Contributing to open source can be fun and easy, or boring and difficult. Let's make the path to contribute clearer, together.

## Suggestions on how to start

I recommend looking up Open Source projects that interest you, or start by creating your own. It can be helpful to collaborate with friends or mentors. Ask questions, and hopefully you will get good responses. Each Open Source project has its own personality, and you may find that some are friendlier than others. Here are some tiny "How To" projects where you can read more about Open Source contribution, and even try making your own contributions:

> Note: I've marked some items as "Intro", this means there are no prerequisites to start. "Intermediate" items assume you understand the "intro" material, and "Advanced" means you understand "Intermediate". My recommendation is that you learn in the numbered order.

1. Intro: (Pre-req to learn Git) [How to Command Line](https://github.com/avidrucker/how-to-command-line)
2. Intermediate: [How to Use Git](https://github.com/avidrucker/how-to-git)
3. Intro: [How to Use GitHub](https://github.com/avidrucker/how-to-github)
- GitHub skill: [How to Make an Issue](https://github.com/avidrucker/how-to-make-an-issue)
- GitHub skill: [How to Open a Pull Request](https://github.com/avidrucker/how-to-make-a-pull-request)
4. Advanced: [How to Use Git and GitHub Together](https://github.com/avidrucker/how-to-git-and-github-together)

- How to Learn to Code (coming soon...)

## What contributing to Open Source looks like

- Making issues: Reporting bugs or suggesting enhancements to projects. It's like giving feedback to improve the project.
- Participating in discussions: Engaging in forums (such as in GitHub Discussions) or chat platforms to discuss project-related topics, helping others, and sharing ideas.
- Submitting pull requests: Providing your code or content contributions to the project for review and inclusion.
- Working with Git version control: Using Git to manage changes to the project's code or content, this ensures effective collaboration and workflows.
- Being part of a broader Open Source community: Beyond doing the above, we can share our skills, learn from others, and help improve tools and technology for all.

## What Open Source even is

Open Source refers to software or content that is freely available for anyone to use, modify, and distribute. It's built on the principle of collaboration, transparency, and community-driven development. It could be code (websites, games, apps, etc.), but also, it could simply be text and images like this document you are reading right now.

## Why people contribute to Open Source

People contribute to open source for various reasons: to learn new skills, collaborate with others, build a portfolio, support projects they care about, or simply to give back to the community.

## What challenges make Open Source difficult

There are lots of valid reasons for why Open Source contribution can be challenging.

- Lack of clarity on how to contribute to a given project: Some projects are clear about how to contribute, others not so
- Misalignment on how to proceed: Not everyone wants projects to go in the exact same direction, meaning there will be disagreements, and some contributions will be ignored/rejected
- Technical hurdles: Some projects require significant technical expertise to contribute
- Difficulties of project maintenance: Projects are maintained by collaborators, usually for free, in their spare time. This means that some projects have limited bandwidth to accept contributions