Geralmente durante o meu desenvolvimento do dia-a-dia, é comum encontrar bugs ou deficiencias em bibliotecas que uso.
O primeiro passo que faço é ir ao GitHub da biblioteca e buscar nas Issues
alguém com um problema similar (pular essa etapa te torna o "cara chato" do repositorio que cria issues duplicadas), se existir, leio os comentarios e até eventuais pull requests associados para ver se alguém já está trabalhando nisso.
Se não houver uma issue, eu crio uma, seguindo as regras do repositorio, e mesmo que não houver, tento ser o mais específico o possível. Sempre que você postar uma issue, dê todo o contexto da situação de forma que outra pessoa consiga entender sem mais perguntas.
Esse passo de criar uma issue já uma contribuição.
Feito isso, se você conseguir, corrija o problema ou implemente a feature e envie um pull request...
É importante entender o fluxo de trabalho do git, ler as regras do repositorio (readme.md, contributing.md)