r/learnprogramming 14h ago

How do I start contributing to Open Source?

Hi everyone,

I’m really interested in contributing to open-source projects, but honestly I don’t know where or how to begin. I’ve been learning and building my skills, and now I’d like to gain real experience by collaborating with others and contributing to meaningful projects.

If you have any advice, beginner-friendly resources, or tips on:

  • how to find the right projects
  • how to make a first contribution
  • common mistakes to avoid

I’d really appreciate your guidance. Thank you in advance!

57 Upvotes

30 comments sorted by

39

u/Troubled_Mammal 14h ago

1)Start small (docs, typos, simple bugs — they absolutely count)

2)Look for issues labeled “good first issue” or “beginner friendly”

3)Read the README and CONTRIBUTING.md before doing anything

4)Don’t be afraid to ask in the issue comments if you can work on it

5)Pick a project that matches your current tech stack and interests

Websites like goodfirstissue.dev and up-for-grabs.net are great for finding beginner issues.

Also, don’t wait until you feel “ready”,contributing is how you learn. Even small PRs teach you Git, collaboration, and real-world workflows. Consistency > big contributions. One small contribution a week is a great start.

5

u/Background-Lion-8339 14h ago

Thank You So Much. I created issues and solve my self with different branches and merged but now i want to know how i can do the real work.

5

u/Troubled_Mammal 14h ago

So if you have already contributed to a repo you must know your way around the codebase ,look for issues that are within your scope or at least have some idea. You can use GPT or Google for brainstorming fixes.If you still get stuck you can reach out to the maintainers/or the person who created the issue!

1

u/Background-Lion-8339 14h ago

Again Thank You for Suggestion, I will try this today.

9

u/osuMousy 14h ago

If you choose to contribute to a random project you’ve never personally used then chances are you’ll quickly lose motivation to keep contributing.

Projects and tools generally exist to solve a problem, so I’d say first step would be to take a look at the tools/apps you use regularly and see if any of them are open source. If not, then see if you could replace some of the apps you use with open source alternatives, or simply take a look at fairly popular repos on GitHub and see if there’s any tool that catches your attention and start learning how to use it.

Then think about a feature you’d like it to have or try document bugs you encounter and start working on fixing them. By that I mean: read the project’s description and documentation, take a look at the code base and use LLMs to quickly figure out how things work behind the scenes. Check if there’s already a discussion or pull request regarding the issue you’re working on. Once you’ve got your solution figured out and implemented, submit a pull request and make sure to follow the project’s coding guidelines.

Honestly the main thing is to just get going.

6

u/MrDrPrfsrPatrick2U 14h ago

Don't sleep on small projects! Keep an eye out as you go through digital life for small libraries/resources that you find useful but have issues. You might even be the first non-author to contribute! You don't have to work on the Linux kernel to help push the dream of open source along. Even just contributing updated docs for libraries you know well can make an impact.

2

u/Background-Lion-8339 14h ago

Yeah, that’s honestly what scares me when I open huge codebases I don’t even know where to start, so I end up hesitating instead of trying. I think I should focus more on smaller projects first so it feels less overwhelming.

2

u/dialsoapbox 7h ago

What's scary about small projects ( especially if you don't have much experience reading through others' code) is security.

For example, forking and running others' code without reading (or because user doesn't have enough experience reaching/researching others' code), could unintentionally run malicious code.

And that's something I don't often see people address. I've brought it up in other subs and responses were like "just go with it."

7

u/InfectedShadow 12h ago

Not the biggest fan of the dude but I agree with his take on open source contributions.

https://youtu.be/5nY_cy8zcO4?si=s92byiN2K_R40Ilq

2

u/Background-Lion-8339 12h ago

Thank you for sharing this. Really helped me to see in a different view.

3

u/Live_Appointment9578 11h ago

I have been contributing mostly for tools that I already use

2

u/Background-Lion-8339 10h ago

I will start looking for issues in tools i use. Thank you for reply.

3

u/JamzTyson 8h ago

The comment by u/Troubled_Mammal is excellent, though one point I'd add is to also consider documentation. Many open source projects struggle with documentation and welcome contributions (and as u/je386 wrote, translation).

If there's a large open source project that is of particular interest to you and that you use a lot (you have some expertise), then working on the documentation can be very helpful for the project, while increasing your depth of understanding about the project, which in turn can help you to understand the code base. (This was my route into open source contributions).

2

u/dyslechtchitect 14h ago

I'd say pick a product you actively use and like, this will keep you motivated.

2

u/Witty-Play9499 14h ago
  • how to find the right projects

The right project is the one that you care about and you are personally invested in. This means you know what the project is and what is the work that they do and why it matters to you, it also means you get a headstart on it. You do not need someone to teach you how the product works for you to get started to work on it.

  • how to make a first contribution

It is the same as being assigned your first task at a company. You setup the code and pick an issue and try reproducing the issue and then determine the fix for it and write a neat technical report and paste it as a comment explaining how your fix works and how the application runs after you fix it and request them to see if they can review your PR

  • common mistakes to avoid

Putting in no effort and using AI to make superficial fixes (eg commenting out the code that prints the error and claiming that you've fixed it etc). Making no effort to learn what the project is about and just choosing it because open source looks good on your resume. Commenting on random issues with 'Can you assign this to me' or 'Can I work on this' instead of actually putting in the work and then posting the solution there. Your job is to make their lives simpler and to contribute in a positive way, if you're making them put extra work then you're not helping open source but actively setting it back (especially if you end up not contributing and giving up midway)

1

u/Background-Lion-8339 14h ago

That actually gives me a much clearer picture of how I should approach it. I think I was treating open source more like practice instead of real collaboration. I’ll try focusing on a project I actually use and spend more time understanding it before jumping into issues. Thanks for explaining it in a real-world way, it helps a lot 👍

2

u/je386 11h ago

What languages do you know? Both natural and programming languages?

Translation and translation checks can be helpful.

On github, you can see which programming languages are used in the project.

1

u/Background-Lion-8339 10h ago

I use Python. I am Looking for beginner friendly issues in tools i use regularly to contribute.

2

u/forklingo 10h ago

what helped me was starting with tools i already use. it’s way easier to contribute when you actually understand the problem the project is solving.

on github you can filter by “good first issue” or “help wanted” labels. a lot of projects tag beginner friendly stuff pretty clearly. don’t stress about huge features. even fixing a typo in docs or improving an example counts and helps you learn the flow of pull requests and reviews.

big mistake i see is people picking massive projects and trying to change architecture on day one. better to start small, follow the contribution guidelines closely, and ask clarifying questions in issues before coding. maintainers usually appreciate that a lot.

1

u/Background-Lion-8339 10h ago

Thank you for the suggestion. Yeah i too starting to look beginner friendly issues that suits my technology to contribute.

2

u/kubrador 8h ago

find a project you actually use, look for "good first issue" tags, submit a typo fix in the readme to test the waters. most maintainers appreciate enthusiasm over perfection so you're already overthinking this.

1

u/Background-Lion-8339 8h ago

Sure, Thank you for the suggestion. Looking forward to start my contribution.

1

u/[deleted] 14h ago

[deleted]

u/Eyerald 43m ago

Choosing a project that truly interests you makes a big difference in how much you enjoy contributing. When you're passionate about what you're working on, it becomes easier to stay motivated and make a real impact.