I founded and managed an open source project (OSSEC) for many years. Every release we had hundreds of developers and contributors participating and helping us get better. We had a very open culture that was friendly to new ideas, developers and new users.
But that wasn't the case with every open source project. And speaking with other developers, they were unsure on how to get started with open source and how to get involved.
They mentioned that they wanted to help, but the specific project they were interested was not very open or was very hard to get started. Others said they contacted the developers, but never heard back.
First, not all open source projects have an open culture or an open development model (go figure), but most of the time, the person trying to get involved is not following proper netiquette of the project. as well.
If you are interested on OSSEC, I wrote an article specific to it here: How to contribute to OSSEC
That being said, the following are some recommedations I have to help you navigate and get involved in an open source project.
1- Actually use the project you want to be involved. Don’t blind shoot everywhere to see if a project will be open to your ideas. Find a project you actually use and need and focus on it. And the odds are that if you use a software long enough, you will find things you want to improve, bugs and features to add.
2- Respect the project, the developers and its culture. Join their mailing lists, or IRC channels and listen for a bit. Watch how they interact, how they respond and see if you can be a fit. Some projects are unfortunately run by not-nice-people. Might be better not to be involved there. If it is run by good people, we will quickly be able to see that and learn from them.
3- Start small. As any project, it takes some time to get used to how it works and how the code is organized. Start with simple things. Even if you detect a typo or a simple bug, try to fix that first and send the patch to the developers.
4- Small pull requests. Same as the previous point, it allows the developers to get to know you and trust your code. Do one pull request per bug fix or feature you are suggesting.
5- Look for their bug tracker (bugzilla, trac, etc) and try to solve some of the problems there. You will get a lot of love when you solve someone’s else needs.
And that’s about it. Most of those are common sense, but not everyone has that (specially some young developers). If you need help navigating or have questions, I am always open to help (with ossec or any other project).