Qualquer um pode contribuir para um projeto de open source, seja qual for a sua disponibilidade ou nível de experiência!
É provável que já tenhas ouvido falar de código open source e já tenhas utilizado muitas ferramentas construídas com este tipo de estatuto de licenciamento de direitos de autor.
Do Visual Studio Code, ao Docker, ao React e a várias das mais famosas criptomoedas como Bitcoin, Ethereum e até mesmo o infame Dogecoin.
Mas o que significa exatamente um “projeto open source”?

O que é um projecto Open Source?
Os projectos open source são partilhados de forma livre para que todos possam ver e desenvolvidos por comunidades de indivíduos que contribuem para os mesmos. Não são propriedade de uma empresa em si, mas sim o produto do trabalho das comunidades.
São geralmente publicados em plataformas como o GitHub, que encorajam vivamente este tipo de colaboração transparente.
Qualquer um pode contribuir para um projeto se seguir as orientações de contribuição implementadas em cada caso. Alguns são mais rigorosos que outros, mas desde que um responsável de um determinado projeto aprove a tua contribuição, o teu código será utilizado na versão oficial e contribuirás orgulhosamente para o teu projeto preferido. Mesmo que se trate apenas de corrigir uma gralha que tenhas encontrado!
Nem todos podem ser programadores de open source a tempo inteiro, portanto a contribuição de alguém para uma base de código pode variar desde a correção de uma label numa página específica de um website até ao desenvolvimento completo de módulos de um projeto.
Vantagens da contribuição para um programador
1 – Liberdade
Tu és o teu próprio chefe. Escolhe o projeto ou funcionalidade em que pretendes trabalhar e fá-lo na altura e no dia mais adequados à tua agenda ocupada.
Apetece-te trabalhar em algumas funcionalidades Python para avaliares os teus conhecimentos? Encontra um projeto Python de que gostes e dedica-te a ele.
Hoje estás mais numa onda de programação low-level? Vai em busca de um bug em C para resolveres com um monte de ponteiros e tudo o resto que mereces.
Mas evidentemente, não te esqueças de desenvolver o que o projeto precisa e deixar o teu código limpo para que as tuas solução não representem problemas extra.
2 – Trabalha em algo que já utilizas
É possível que já utilizes bastantes aplicações e websites de open source. Tal como referi, o VS Code é um grande exemplo disso.
Caso tenhas uma ideia de funcionalidade, encontraste um bug ou simplesmente apetece-te melhorar o projeto porque gostas da ferramenta, então força! E o teu nome ficará para sempre ligado a algo utilizado por um grande número de pessoas.
Após o teu código ser merged e colocado em produção, podes ir e fazer uso da tua própria alteração!
3 – Aprende
Vais ganhar muita experiência em diferentes tipos de problemas de forma muito rápida depois de teres contribuído regularmente durante algum tempo, pois vais encontrar todo o tipo de problemas ao longo do caminho.
Também haverá pessoas mais experientes a rever o teu código antes de este ser merged no branch principal. Caso encontrem algo de errado com o teu código ou considerem que pode ser melhor escrito de alguma forma, serás notificado e ser-te-á pedido que faças essas alterações. Assim, da próxima vez, o teu trabalho sairá ainda melhor!
4 – Comunidade
Como programador de open source, poderás interagir com outras pessoas com as quais te irás identificar. Todos podem partilhar conhecimentos, aprender com os outros, discutir possíveis melhorias e explorar o lado geek de um projeto.
E quem sabe se não vais acabar por encontrar novos amigos?

Como podes encontrar projetos que se adequem a ti
Para tal, vou usar o GitHub como exemplo, porque é uma das plataformas mais populares para este tipo de trabalho.
Nela, é possível pesquisar palavras-chave em nomes de projetos, nomes de utilizador, o próprio código, mensagens de commit e outros campos através da barra de pesquisa no topo esquerdo da imagem abaixo.
Também é possível filtrar por linguagem de programação no canto inferior esquerdo.

Neste exemplo, pesquisei a palavra-chave “maps” e seleccionei Typescript como a língua desejada. O GitHub encontrou-me um total de 6.494 repositórios diferentes com essa palavra-chave no seu título ou descrição que posso explorar e ver se aceitam contribuições de outros programadores.
Por baixo da lista de línguas que escolhi, podes encontrar uma label “Advanced Search”. A partir daí, vais poder aceder a uma página diferente onde poderás construir a tua própria query específica para projetos que respondam totalmente às tuas necessidades.

Para te ajudar ainda mais, costumam haver problemas para resolver na label “good first issue” para que as pessoas que estão a começar o seu percurso de contribuição saibam quais as tarefas que podem assumir mais facilmente.
Podes filtrar através disto recorrendo ao url https://github.com/<owner>/<repository>/contribute. /contributo. Basta substituires o <owner> pelo nome da organização ou do utilizador e o <repository> pelo nome do próprio repositório.
Usando o VSCode novamente como exemplo, podes usar o link https://github.com/microsoft/vscode/contribute para pesquisar por estes problemas no seu próprio repositório.
Como podes dar uma contribuição?
Depois de teres encontrado o projeto de código aberto que queres, lê as suas orientações de contribuição para que saibas como podes ajudar.
Pode encontrá-las algures no ficheiro README.md do projeto, na página principal do repositório ou eventualmente num ficheiro separado especialmente escrito para o efeito.
Seguem-se as orientações da microsoft/vscode para fazer contribuições:

Podes contribuir simplesmente através da reportação de problemas, pedidos de funcionalidades ou revisão das alterações de outras pessoas, não te esqueças disso.
Se a tua contribuição está relacionada com o código, o que provavelmente acabarás por fazer é clonar o projeto no teu computador, fazer a tua magia no mesmo e depois fazer commit num branch separado.
Quando tudo parecer perfeito, podes criar um Pull Request do teu branch para o branch designado no projeto e esperar por uma revisão.
Após a aprovação do teu RP (Pull Request), podes intitular-te oficialmente como programar de open source e verás eventualmente o teu código a funcionar no produto principal!

HacktoberFest
E se eu te disser que podes receber freebies, como t-shirts e autocolantes fixes, para te exibires aos teus amigos e família, colaborando em projetos de open source?
Todos os anos em Outubro o GitHub (e na edição de 2021 também o GitLab) acolhe o HacktoberFest, um evento em que será entregue merchandising do evento a quem fizer pelo menos 5 contribuições para os repositórios envolvidos no mesmo.
Para participar, é necessário que te inscrevas no evento e que faças hacks nos teus projetos favoritos.
…devo acrescentar este ponto ao topo da secção de Vantagens?
Então, para que projeto vais contribuir agora?
A minha contribuição aqui está feita e agora depende de ti! Não hesites em utilizar a secção de comentários para me colocares quaisquer questões ou em adicionares-me no Linkedin!