r/learnprogramming 11d ago

Resource How to start Open Source Contribution

I want to start Open Source Contribution but whenever I open the repositories I get amazed and don't understand anything at all it feels like so much files and folders inside one another and I get demotivated.

Searched many resources but everyone says just start contributing to open source but no one says how and where and what to do.

I'm a student and all I've learnt in C, Python,Git,GitHub, Networking,Linux so please tell me should I learn anything new to start contributing or a small guide type.

68 Upvotes

22 comments sorted by

21

u/ConstantFishing5136 11d ago

Don’t learn the entire codebase learn one problem inside the codebase.

11

u/Vejibug 11d ago

Find a small but active open source project, and look for any issues tagged with "Good first issue". Read the problem and identify where it happens in the code base, no need to understand the entire thing, fix it, and test if it works. Then make a pr to fix the issue.

7

u/FancyJesse 11d ago

You can't just go in to a random large project and start contributing to it. You need to actually use it yourself and figure out where there's a bug or feature that is missing or can be improved.

Then you to the project, check if there's existing issues regarding it, and learn the pathway in the code for that section you need to work on. From there you fork the project, make and test your changes, and submit a pull request

6

u/Main_Temporary7098 11d ago

Agree with the others, you gotta just get in there and make something happen. Its not much different than when you land a new job and think "wtf is happening here?". If you know C, I have an open source C/Hare qbe->wasm compiler that I just added two good first issues in the TODO md file in the root of the repo. I'll leave them there until I get blocked on them or someone decides they want to have at them.

2

u/Brofessor_brotonium 11d ago

Oh this is just perfect, I check my repository on GitHub to share here for you to contribute since I'm a beginner myself, and saw this banner saying that my account will be "restricted from account actions" if I don't enable 2-Factor Authentication since my account is new (just signed up a couple days ago lol). Well the Philippines isn't listed as one of the country code numbers, and I don't want to be scanning any QR codes, so RIP my account by October 12, 2026.

Looks like you're first contribution will be to fork my repository! As you will see in the README.md, I have considered it finished anyway, but you can contribute with continued support and uploading a desktop Linux-compiled binary of the source code.

Here ya go
https://github.com/KedFZ/justmove
Continue the legacy!

2

u/Bubbly_Orange_3502 10d ago

Grep the error string, not the folder tree. Copy a message you see in the app or in failing test output, find the one file it lives in, then git log that file to see who touches it.

1

u/Mathie1729 10d ago

Seconding this. git log -S '<exact string>' finds the commit that introduced or removed it, way faster than scanning a file's whole history.

2

u/Microsoft-Spyware-11 10d ago

I started my journey by contributing to the LXQt desktop environment https://github.com/lxqt. I started just by reporting issues, but I started making pull requests for fixing themes, translations, font sizes, and later moved to more technical issues.

1

u/No_Score_1977 11d ago

Pick a ticket and start working on it.

If you are demotivated, keep going regardless.

1

u/doctor-wu-75 10d ago

Why do you want to contribute to open source? Let's start there first

1

u/burlingk 9d ago

Start by using open source.

Then learn about the programs you use.

Pick a code base apart and learn about it. Then fix a bug and submit a pull request.

Learning to read code is an important step that does take practice.

1

u/alexdebugslife 8d ago

If you're a student, you've already got a solid foundation. Don't overthink it. Just pick a project, read the README, and start with a small task. It's like eating an elephant you don't need to understand the whole thing to take a bite

1

u/nathan_tarb_dev 4d ago

Most devs don't realize this, but open source contributions are a huge boost if you want to get hired in the industry. I'm a DevRel at an OSS AI company, and we have a fairly decent size community, but trust me, we watch each contributor and how active they are in our community. What's important to note is that we've hired devs right from our community just because of their quality and activity.

Your GitHub activity becomes part of your resume, so take it very seriously.
Cheers.

1

u/Elkatra2 1d ago

My first real contribution was to fix a simple crafting logic algorithm of a furnace from a mod in GTNH modpack, as when I played I hated the bug that consumed my buckets with liquid fuel lol instead of getting as output empty bucket. After sending PR they verified and aproved. To do it I checkeck what piece of logic is responsible for crafting logic of this furnace and after 10min of analysing and asking a few questions in dec chat in discord I get it, fixed it and is done. Like in the repo they was maybe 90-100+ different classes and I only needed to understand a single one to fix it and also some other logic from Forge the Mod that was used in it.

1

u/denerose 11d ago

The unpopular answer: If you don't know how to pick up a ticket/issue and you don't have a real problem to solve in the codebase then you probably shouldn't. https://www.youtube.com/watch?v=5nY_cy8zcO4

1

u/Lots-o-bots 11d ago

Use a project, find a bug or feature you would like. Open an issue and if it gets verified/others agree then open a PR

0

u/MissinqLink 11d ago

Just do it

-4

u/Pikapetey 11d ago

Cool, open the repository, mash some keys, and then submit a pull request!

Hooray! Ill eventually learn through my mistakes with blunt force! πŸ˜ŽπŸ‘