I started long time ago (before Sourceforge became a big thing) by using 'free' software; free is an in free speech. Note: Sourceforge was the king before Github.
I reported errors such as installation issues, translation issues, app crashes or other abnormal or unexpected results and behaviors. Then I started to provide translations or fix typos (even though my English is bad) because the next guy may update/fix my stuff too - still better than nothing. Or simply asked for new features or changing features; giving feedback.
The whole process was terrible back at that time. Mailing changed files, trying to ensure the repository owner has still the same file version which my work based on - so he may replace his file by mine easily. Carefully trying not to put too many guys on CC but still have enough devs addressed to get my changes 'merged'.
Sourceforge was a paradise when it became popular but since Github, it's even easier. Now you can contribute to virtually any project by doing almost 'anything'. Asking question to a particular project, writing a short blog post about a newly gem you've found or tweeting about a problem you can't figure out by yourself. All of this is already relevant to open source projects.
Contributing to projects by adding, changing, or deleting code is maybe the next step. Look for existing and yet still unresolved issues. Try to fix them and provide some evidence about the fixes like adding test cases. Or implement new features.
If Github is a myth ATM, well they have good documentations help.github.com/desktop/guides/contributing If Git is a myth ATM, well they have good documents too https://git-scm.com/book/en/v2
Be involved :-)