Como contribuir com open source

...e um pouco sobre filosofia, o Github, o universo e tudo mais.

Versão em vídeo

Essa é uma versão em vídeo do conteúdo apresentado nesse artigo que publiquei no meu canal no Youtube.

Vale a pena assistir! 😁


Estou no mundo de desenvolvimento web desde 2009.

De lá pra cá tive acesso a milhares e milhares de libs gratuitas, desenvolvidas por pessoas que não se limitaram a criar algo só pra elas usarem, elas pensaram na profissão como um todo e compartilharam para que outras pessoas também pudessem usar.

Mas esse é só um ponto. E é só código.

Tem todos os outros pontos

Você já fez qualquer uma dessas coisas?

  • Gerou conteúdo?
  • Palestrou?
  • Respondeu dúvidas?
  • Compartilhou conhecimento?
  • Ajudou em projetos ou libs?
  • Organizou eventos?

Pra mim é tudo open source, e muito open source.

E essa é uma questão que acho fundamental e um ponto de vista muito pessoal. Fazer open source é uma filosofia, e vai muito além das issues ou pull-requests do GitHub, é também: ajudar, aprender e ensinar.

É muito sobre gerar valor real para um grupo de pessoas, seja online, seja offline…e os impactos disso podem ser enormes.

Me apresentando de novo

Sou Felipe, e no decorrer da minha carreira criei e participei de milhares de iniciativas de desenvolvimento.

Em 2012 criei esse Eric Cartman para estudar CSS e não parei mais.

https://codepen.io/felipefialho/pen/qzDCJ

Só para citar algumas coisas:

São coisas das mais variadas: eventos, organizações, idéias, projetos, ideais, geração de conteúdo.

E pra mim, em todas elas, fiz open source.

esse dia foi loko esse dia foi loko

Como funciona um projeto open source?

Open source é resumidamente um projeto criado e mantido pelas pessoas que o utilizam. Digamos que você tenha um campo de futebol open source perto de sua casa, uma pessoa vai ajudar a cortar a grama, outra ajuda a pintar as marcações, outro ajuda a regar, mais alguém trás a bola e todos podem jogar! É um sistema colaborativo de crescimento.

Contribuir para o open source pode ser uma maneira gratificante de aprender, ensinar e construir experiência em praticamente qualquer habilidade que você possa imaginar.

Além de tudo isso você pode interagir com profissionais reais do mercado e consultá-los para tirar suas dúvidas, fazer análise de código e darem dicas para você melhorar.

Recomendo dar uma lida no site Open Source Guides para ter um conhecimento mais aprofundado da iniciativa open source.

Contribuição @iaurg

E por que contribuir

Contribuição é o que faz o mundo de desenvolvimento ter evoluído tanto nos últimos anos.

Através dessas contribuições, ideias são geradas, projetos são desenvolvidos, libs são construídas, tecnologias se desenvolvem e o mais importante:

Pessoas são impactadas, compartilhando conhecimento e dando continuidade nesse ciclo.

O reflexo disso é sentido até mesmo no mercado de trabalho, com mais gente capacitada e se conectando, a profissão tende a se tornar mais madura, importante e valorizada. Causando assim, melhorias nas condições, benefícios e salários.

E não é só isso…

bruxobruxo

Open source também pode ajudar a mostrar suas habilidades para o mercado.

É possível ver suas habilidades técnicas em:

  • Códigos
  • Layout
  • Lógica
  • Algoritmos
  • Metodologias
  • Padrões

E também dá pra analisar suas soft skills como:

  • Comprometimento
  • Responsabilidade
  • Organização
  • Liderança
  • Trabalho em equipe
  • Etc…

Exemplo disso?

Para organizar eventos, a pessoa precisa de TODAS as soft skills listadas acima.

E ela está mostrando na prática que tem essas qualidades

E sim, empresas também se beneficiam

Mas não são só devs que tiram proveito de iniciativas open source, como disse antes o impacto pode ser enorme e empresas que trabalham com produtos e outras frentes digitais também acabam sendo beneficiadas com isso.

Isso porque elas não precisam reinventar a roda todas as vezes que vão começar um novo projeto ou adicionar alguma funcionalidade nos produtos, elas se beneficiam de libs e conhecimentos gerados anteriormente para ganhar muito tempo de desenvolvimento.

Além disso elas também se beneficiam porque passam a utilizar projetos mais robustos, já que tendem a possuir menos bugs e contam com suporte de uma comunidade imensa pelo mundo inteiro.

Por isso penso que toda empresa que utiliza iniciativas open source no dia a dia (e talvez dê pra dizer que sejam quase todas) não só podem como devem pensar em formas de contribuir com a comunidade de desenvolvimento sempre que possível.

Interessado em contribuir? Aqui vão dicas

Como disse, existem muitas maneiras de ajudar.

Gerar conteúdo

  • Escrever artigos
  • Criar experimentos no Codepen
  • Criar conteúdo em vídeo
  • Criar cursos
  • Palestrar
  • Etc…

Responder dúvidas

  • Participar de fóruns de desenvolvimento
  • Stack Overflow
  • Grupos de Telegram
  • Grupos do Slack
  • Twitter
  • LinkedIn
  • No trabalho

Organizar eventos

Você pode ajudar:

  • Com patrocínios
  • Com o coffee
  • Com os equipamentos
  • Oferecendo o local
  • Com a organização
  • Recolhendo os lixos
  • Organizando as cadeiras

Ajudar em projetos ou libs

Basta dar uma rápida passada no Github e vai encontrar diversos projetos em que você pode ajudar:

  • Criando documentação
  • Abrindo issues
  • Respondendo issues
  • Abrindo pull requests
  • Revisando pull requests

Falando em Github

0 RspmpLKEQLa Uy9X

Não é exagero dizer que o Github está para projetos open source como o Google está para a internet.

E o Github é uma rede social

Isso significa que você pode seguir as pessoas e ver suas rotinas como developer:

  • Codando
  • Dando star em projetos
  • Abrindo issues
  • Etc…

Isso é muito valioso.

Que tal trocar aquelas horinhas que você passa rolando a timeline do Facebook e começar a rolar a timeline do Github? 😜

Algumas dicas no Github

As dicas a seguir podem ser utilizadas em qualquer rede similar.

1. Pesquise antes de começar um projeto

Existem grandes chances de existir uma ou mais iniciativas com a mesma ideia que você teve.

Portando avalie se não vale a pena contribuir em um desses projetos já existentes.

Ter menos projetos, mas robustos e testados é melhor do que existir milhares de projetos repetidos que não gerem tanto valor.

2. Não tenha medo de ajudar com documentação

Documentação é uma das coisas mais importantes do projeto, é ela que guia o usuário, no caso, o próprio developer que vai utilizar o projeto.

Apesar dessa importância, muitas vezes são subvalorizadas e você ajudaria qualquer projeto com tarefas de revisão, correção ou mesmo tradução do texto.

E o melhor, você pode fazer isso diretamente do Github, sem precisar abrir uma linha de código.

3. Abra issues

Caso encontre bugs ou tenha sugestões, abra uma issue (pesquise antes para não duplicar).

Isso vai ajudar os responsáveis a mapear as melhorias e correções que precisam fazer.

4. Abra pull-requests

Abrir issues é importante, mas vá além. Tente resolver.

Isso vai ajudar não só no projeto, como vai servir como grande fonte de estudo.

Até hoje não esqueço desse meu pull-request mergeado no Boostrap, num inglês bizarríssimo 😍

1 ukSvk4hGI4nw4sEhte7kyQ

5. Siga os padrões do projeto

Seja para issues, pull requests, códigos ou documentação.

Se tem um padrão, ele deve ser respeitado. Apesar de parecer chato, isso é de extrema importância na organização e manutenção do projeto.

De quebra você vai ter contato com novas formas de estruturar e desenvolver.

6. Não tenha medo de feedbacks

Sempre que estiver participando de qualquer projetos com terceiros ou desenvolver códigos abertos, você pode receber críticas.

Caso receba um feedback construtivo, encare de forma positiva. Tente absorver as informações e melhorar nos pontos citados.

Isso vai te fazer evoluir profissionalmente e pessoalmente.

7. Tenha responsabilidade

Infelizmente é comum ver pessoas empolgadas com um projeto, se comprometendo com tasks, mas sumindo na hora de desenvolver.

E isso acontece em todas as áreas do open source, desde pessoas que se oferecem para ajudar em eventos, até pessoas que se comprometem com pull-requests.

O resultado disso, é que as pessoas que de fato estão fazendo, precisam trabalhar em dobro para conseguir fazer a entrega.

Não seja essa pessoa. Se você se comprometeu com uma tarefa, faça.

O nome disso é responsabilidade.

8. Faça para aprender

Fazer projetos simplesmente para aprender, recriar libs para estudar, criar coisas para se desafiar é importantíssimo no decorrer da carreira.

Não deixe sua curiosidade e interesse ficar esquecido no decorrer do tempo.

É isso que torna as coisas tão legais na nossa profissão e faz com que pessoas e projetos incríveis surjam o tempo todo.

Outro ponto, é que linguagens de programação são como qualquer outra habilidade, então a melhor forma de aprender e melhorar é: praticando.

Projetos open source podem ajudar muito a colocar em prática as coisas que você está estudando no dia a dia.

Mas primeiro cuide de você!

Apesar de tudo que falei aqui e de todos os impactos positivos que contribuir com open source pode ter na evolução de uma carreira e no mercado como um todo, você nunca deve deixar de cuidar de você.

Nunca abra mão de cuidar muito bem da sua saúde, da sua carreira e da sua própria vida porque o custo de não cuidar dessas coisas pode ser irreversível e nenhum projeto ou comunidade de desenvolvimento vai conseguir te ajudar com isso.

Considerações finais

O open source: foi, é, e vai continuar sendo fundamental na evolução da profissão e porque não… do mundo e da sociedade como um todo.

Participar disso, talvez seja… colocar o seu nome na história.

Nóis 🖤💙