As other said, just dive in.
And if you're lucky to have your patch criticized and ripped to pieces, you'll learn a lot more from that than you would have if you just work alone. And next time, you'll know to think better about how your code interacts with the rest of the project before submitting another patch. This will give you a lot of insight on how to work nicely with others, without stepping on each others' toes.
I think there is only one way to know, try :) And then just keep trying until you succeed.
But I think it is good idea to first talk with the maintainers. At least if you plan on making a 'major' refactoring to the existing code. Start small and continue from there.
Just take a deep breath and dive into the code. You'll be surprised at how skilled you are. :-)