A few often overlooked ways to contribute:
- artistic contributions: logos, banners
- user interface design (I wish more UX folks participated in OSS, many projects could use the love)
- improving documentation: as a new and/or novice user, you're probably more sensitive to jargon that developers overlook and can help make documentation more useful to others like you
- accessibility testing: testing software using accessibility settings like high contrast color schemes and screen readers. these use cases are often overlooked
- project management: participate in the issues, see if the team wants help triaging or managing a discussion/chat platform
Even if not code, some of these are quite specialized. Just be realistic about where you can add something useful.
For all of these, it is critical that you first contact the maintainers and ask what they would find useful. Be mindful that it's also work for the maintainers to manage your help. The only "wrong" way to participate in open source is to drop a bunch of work on someone unprompted.
Generally, if a project already has a clear call for contributions or a contribution guide, that is a good indicator that the maintainers are willing to do a bit of community management to bring in help. I would only suggest investing energy in those projects if you have the choice.