r/learnprogramming 2d 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.

66 Upvotes

18 comments sorted by

21

u/ConstantFishing5136 2d ago

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

8

u/Vejibug 2d 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.

6

u/FancyJesse 2d 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

2

u/Main_Temporary7098 2d 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 2d 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 1d 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 1d 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.

1

u/No_Score_1977 1d ago

Pick a ticket and start working on it.

If you are demotivated, keep going regardless.

1

u/doctor-wu-75 1d ago

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

1

u/Microsoft-Spyware-11 1d 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/burlingk 14h 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/denerose 2d 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 2d 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 2d ago

Just do it

-3

u/Pikapetey 2d ago

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

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

0

u/Ok-Listen-2162 2d ago

bro I would give u straight answer , all ans to ur question relies in a blog . now from a blog I dont mean any random . gpt it or find it on medium etc. ,that would add real value to ur question than asking for diff povs , I have been there And Ik how thinsg move somehow