Everything will be learned by contributing or by reading other’s code.
When I was wondering « What do I need to contribute to OSS? », I didn’t believe the answer was so easy, maybe because of the lack of self confidence or just the fear of being over-commented, I buried it in my mind.
Now I understand that this is not how you are coding that matters, but how you find solutions.
Contributors and maintainers will help you to write the solution and they will guide you on what to do, what patterns, code style, what could be optimized and so on.
You will learn, trust me you will really learn and that will be fast and the maintainers may gain something out of this too.
If you think you don’t have the skills to do that, you should be trying anyway.
Find a bug, find a new feature that you would like to be implemented, and try, get comments, fix them, and so on. Don’t be afraid of critics, take them and be better.
Let me tell you my OSS story, with the implementation of swagger in Api-Platform, I really wanted swagger to be part of the framework, so it took some time but Kévin Dunglas helped me doing that and now we got it merged and it’s in production.
My first pull request on symfony was adding some deprecation, since I was starting to contribute on this project, it took some time to get it merged, same as the PR on Api-Platform a lot of comments have been published, but does it really matters?
Knowing that the features and bug fixes I have implemented is used by thousands of projects, that’s quite rewarding!
There are a lot of examples, in symfony, in Api-Platform. Working with people in OSS will help you to know more things, and be a better developer, and maybe a better human :).