Open source, learn in public e minha experiência
20 out. 2024
Tudo certo? Quero começar a semana fomentando as iniciativas de projetos públicos e trazer um pouco da minha experiência construindo projetos open source.
Vamos começar colocando os pingos nos is.
O que é open source
Open source significa “código aberto” e é uma corrente no mundo da tecnologia que busca a construção transparente e colaborativa de software. É possível ver o código fonte de um projeto open source, entendê-lo, sugerir alterações ou fazê-las por conta própria, entre outras possibilidades.
Alguns projetos open source:
- O conhecido kernel Linux
- O sistema de versionamento de código mais utilizado, git
- Zen browser, um recente navegador baseado no Firefox
- A rede social Bluesky
- O emulador de terminal que uso, WezTerm
E a lista segue. Quantas aplicações e ferramentas que você usa são open source?
O GitHub é uma plataforma de hospedagem de software (código e afins) que é bastante usada pela comunidade open source porque
- Usa Git
- Tem ótimas ferramentas
- Tem várias funcionalidades que facilitam o trabalho colaborativo
Outro ponto importante, um projeto open source deve ter uma licença que restrinja o acesso e as modificações do código para proteger os criadores, contribuidores e até mesmo os usuários.
O que é learn in public e build in public
Learn in public, aprenda em público ou aprendizado público é a prática de compartilhar a sua jornada de aprendizado. É ir na sua rede social favorita e postar isso
Estou aprendendo x! O conceito y é bem simples mas o z me pegou, alguém pode me ajudar?
Não tenha vergonha! Você vai ter diferentes respostas, como:
- “Que legal! Também estou aprendendo x, porém não entendi o conceito y ainda…”
- “Isso é fácil demais, como você não compreende?”
- “O artigo w me ajudou a entender z, dá uma olhada.”
O importante é você saber extrair o melhor disso.
Caso alguém se identifique e diga que não sabe algum tópico que você compreende (um pouco pelo menos), tente explicar da melhor forma que conseguir. Ensinar é uma das melhores formas de reforçar o conhecimento.
Se a pessoa te oferece ajuda ou mentoria, aproveite, agradeça e pergunte.
Se alguém for rude ou insensível, pergunte qual foi o erro ou simplesmente ignore/bloqueie.
Não tenha medo de errar. Se você errar, vão te corrigir e você vai aprender também.
Vale ressaltar que você não tem só sua rede social pra ser público. Mantenha um blog, comece uma newsletter, poste vídeos no YouTube, faça live na Twitch…
Build in public ou construa em público é uma especialização do aprendizado público, nele você expõe as dificuldades, erros e aprendizados que você teve na construção de um projeto pessoal ou profissional.
É uma maneira orgânica e funcional de converter leads, atrair investidores e criar marca. Um bom exemplo disso é a alertpix do Daniel e do Christopher que cresceu bastante por conta das publicações no Twitter/X, Instagram e TikTok.
Pra mim, dois benefícios absurdos de todo esse processo de compartilhar, ensinar, construir, errar e ser ensinado (além do aprendizado) são:
- Documentação do teu processo. Você cria um histórico, uma trajetória visível que pode ser acompanhada ou revivida no futuro.
- Visibilidade. As pessoas se identificam, querem acompanhar seu progresso e você pode acabar virando referência em determinado assunto.
A visibilidade não é o objetivo, você não deve esperar likes, mas é verdade que ela também aumenta sua “sorte”. Inclusive, uma vez li no blog do GitHub um artigo muito bom sobre como publicar o seu trabalho aumenta sua “sorte”, “Publishing your work increases your luck”, um trecho a seguir:
For every snarky comment, there are 10x as many people admiring your work.
Como o criador do movimento descreveu em “Learn In Public”, o aprendizado público é o jeito mais rápido de aprender.
Por que praticar o learn in public (tl;dr)
- Acelera seu aprendizado
- Ajuda a criar conexões, o famoso networking
- Contribui para o aprendizado alheio
- Novas oportunidades como consequência da visibilidade
Como praticar
- Construindo um projeto open source (e divulgando ele)
- Postando um vídeo no YouTube explicando um conceito
- Postando um vídeo ensinando como criar um projeto usando uma tecnologia específica
- Mantendo um blog e escrevendo sobre a construção dos seus projetos, seu dia a dia, suas filosofias sobre software
- Criando um canal na Twitch e fazendo stream construindo software e explicando (live coding)
- Postando vídeos curtos no YouTube ou TikTok dando dicas rápidas
A verdade é que existem muitas maneiras de praticar o learn in public, se você está aprendendo e tornando seu aprendizado público em alguma plataforma/rede social, você está praticando o learn in public.
Existem várias soluções de blogging como Substack, Medium, Hashnode, WordPress, etc.
Também existem diversos fóruns onde você pode publicar seus escritos, tipo o TabNews, dev.to e o Reddit.
Não esqueça das redes sociais: Twitter/X, Bluesky, Instagram, TikTok, YouTube, Twitch, LinkedIn…
Unindo learn in public e open source
Não tem segredo, começar um projeto open source por si só já é praticar o learn in public, a questão é maximizar o alcance dos seus projetos por meio das redes sociais que você usa.
Quando iniciei meus estudos de desenvolvimento web optei por estudar sozinho, sem falar publicamente sobre, isso em meados de 2021.
Eu fiquei quase 3 anos na “caverna” e em 2024, quando decidi criar minha conta no Twitter e interagir diretamente com a comunidade dev, minha carreira começou.
O “boom” da minha integração com a bolha dev foi durante a segunda edição da Rinha de Backend, uma competição de soluções back end. Nesse evento compartilhei o desenvolvimento da minha solução, meu aprendizado da linguagem Go e participei de várias discussões sobre o desafio.
Desde de então postei sobre meus projetos pessoais, estudos e códigos.
Depois disso fui contratado para fazer uma modificação em um blog sobre computarias e recebi um convite valioso para trabalhar em um projeto confidencial.
Eu concordo que as oportunidades vieram ao acaso, mas acredito que ser mais público influenciou minha “sorte”. Sou grato a isso, ao learn in public, as pessoas que me impulsionaram e as pessoas que interagi e agregaram de alguma forma.
Sobre os projetos que eu construí publicamente, gostaria de ressaltar
- Os repositórios aprendendo alguma tecnologia, onde eu documentei vários tópicos que aprendi sobre as tecnologias
- Esquilo Aniquilador - minha solução da segunda edição da Rinha de Backend
- ruke - uma ferramenta para executar comandos configurados em um projeto, inspirada no GNU Make e just
- themis - analisador de perfil do Bluesky, conta 7 contribuidores atualmente
Enfatizei esses porque foram os que eu mais divulguei e tive um feedback bacana. Eu normalmente crio meus projetos públicos e com licença MIT, porém esses escolhidos se sobressaem.
Resumindo, se você está começando na carreira e ainda não pratica, olha os benefícios, vale a pena tentar (faz essa poha)
Se você já pratica, qual sua experiência? positiva? recomenda???
Obrigado por ter lido! Espero que tenha te ajudado de alguma maneira.
Onde me encontrar:
- LinkedIn: kauefraga
- GitHub: kauefraga
- Bluesky: kauefraga.dev
- Twitter/X: rkauefraga
- Dev.to: kauefraga
- TabNews: kauefraga
Referências:
- RedHat - “O que é open source?”
- He4rt Developers - “Open Source e Software Livre”
- Shawn Wang (swyx) - “Learn In Public”
- Beatriz Oliveira - “Aplicando o Learn In Public na Vida Real”
- Giulia Bordignon - “Deploy na Sexta #010: O que é learn in public?”
- Aaron Francis - “Publishing your work increases your luck”