"How do I get started contributing to open source? What are some good entry-level tasks to work on?"
These are questions I am often asked, so here's the answer for everyone to read:
Scratch your own itches. Find bugs that are causing you problems, conspicuously missing features you would find useful, and implement them - in literally any free/open-source software you're using. Don't worry about not being familiar with the codebase or programming language or whatever, just solve one problem at a time.
Try this: next time you go to report a bug, report it, and immediately start working on a patch which fixes the problem.
Scratching your own itches is the best source of motivation and maximizes your productivity.
Often that means not contributing to my projects at all, if you're asking how to get started with a specific project. Maybe you like it because it's flawless 😉 (hah!), in which case it wouldn't need your help anyway. Go fix something which is bugging you in another project. Spread the contributor wealth around and eventually it'll come back to my projects, too.
As soon as I encounter a problem with a FOSS library or program I'm working with, I grab the code and start looking for a solution, and often my first communication with the project will be the patch that fixes the bug.
It takes practice to be able to dive into a codebase quickly and solve problems right away, but so does anything else worth doing.
@sir how do you understand a codebqse that you've never seen before? Would you have any advice?
@rbd make liberal use of git grep
Asking the developers directly also has helped me a lot. Just popping on IRC or similar and asking something like "What does function XYZ do?" can yield good results since free software developers tend to be pretty friendly, especially to prospective contributors.
The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!