•
5 min read
Começando...

Por que focar em tecnologia código aberto?

  • Transparência e Confiança: Em vez de depender de sistemas “caixa-preta” onde você não sabe como seus dados são tratados ou o que o software realmente faz em segundo plano, o código aberto permite auditabilidade completa.
  • Inovação Aberta e Aprendizado: O Open Source é a maior sala de aula do mundo. Ele permite estudar como softwares reais e complexos foram construídos, aprender boas práticas com comunidades globais e evoluir olhando código de alto nível.
  • Longevidade e Controle de Ecossistema: Ferramentas proprietárias podem ser descontinuadas, mudar de licença ou aumentar preços da noite para o dia. O código aberto garante que a tecnologia continue existindo e evoluindo enquanto houver interesse da comunidade, sem dependência (vendor lock-in).
  • Colaboração sobre Competição: Permite que soluções genéricas (como sistemas operacionais, linguagens de programação e bancos de dados) sejam construídas em conjunto, liberando tempo para focar nos problemas específicos que você quer resolver.

Como alcançar a soberania digital?

  • Controle dos Dados: Soberania digital significa ter o poder de decisão sobre onde seus dados residem, como são processados e quem tem acesso a eles. Isso envolve trocar serviços totalmente centralizados de Big Techs por soluções que você possa auditar ou hospedar.
  • Auto-hospedagem (Self-hosting) e Descentralização: Utilizar servidores próprios ou infraestruturas flexíveis para rodar seus próprios serviços (como armazenamento de arquivos, gerenciamento de banco de dados e servidores de mídia), garantindo que suas ferramentas continuem operando independente das políticas de terceiros.
  • Adoção de Padrões Abertos: Preferir formatos de arquivos e protocolos de comunicação abertos (ex: Markdown, JSON, SQL, protocolos descentralizados) em vez de formatos proprietários fechados. Isso garante interoperabilidade e fácil migração no futuro.
  • Resiliência e Autonomia: Ter a capacidade de migrar seus projetos e infraestrutura de um provedor para outro com o mínimo de atrito possível, mantendo a posse do seu conhecimento, das suas ferramentas e do seu código.

Qual é o primeiro passo?

  • Adotar a Mentalidade de Consciência: Entender o ciclo de vida e a dependência das ferramentas que você usa diariamente, tanto no ecossistema de desenvolvimento quanto na vida pessoal.
  • Substituição Gradual (Baby Steps): Não tentar mudar todo o fluxo de trabalho de uma só vez. O primeiro passo prático é substituir uma única ferramenta proprietária no dia a dia por uma alternativa Open Source (por exemplo, trocar o sistema operacional principal por Linux, trocar um software de design proprietário por um equivalente aberto, ou usar soluções auto-hospedadas para dados simples).
  • Construir e Registrar em Público (Build in Public): Usar o estudo diário para testar soluções abertas e documentar o processo. Seu próprio post e seu portfólio já são esse primeiro passo: demonstrar o conhecimento adquirido, entender como a ferramenta funciona por baixo do pano e ter o controle sobre o seu próprio conteúdo.

como abordar os estudos:

  • Abordagens de Estudo: Top-Down vs. Bottom-Up

    • Top-Down (Do Uso para a Implementação)

    • Conceito: Você começa no nível da aplicação e do uso prático. Primeiro entende o que uma ferramenta, biblioteca ou framework faz e constrói algo funcional com ela. Depois que a solução está rodando, você vai descendo de nível para entender como ela funciona por baixo do pano (a arquitetura, os algoritmos ou o código-fonte).

    • Vantagens:

      • Gera gratificação rápida e mantém a motivação, pois você entrega projetos e vê resultados desde o dia um.
      • Dá contexto prático: fica mais fácil entender o motivo de aprender um conceito teórico quando você já sentiu a dor de precisar dele.
      • Ideal para aprender frameworks, criar protótipos rápidos ou integrar APIs antes de se aprofundar nos seus detalhes internos.
    • Bottom-Up (Da Implementação para o Uso)

    • Conceito: Você começa nos fundamentos mais baixos e nos blocos de construção essenciais (sintaxe básica, estruturas de dados, gerenciamento de memória, conceitos de sistemas operacionais). Primeiro entende como as coisas são construídas internamente para, depois, compor esses tijolos e criar aplicações complexas.

    • Vantagens:

      • Cria uma base técnica sólida e duradoura, tornando o aprendizado de novas linguagens e ferramentas muito mais fácil no futuro.
      • Desenvolve capacidade de depuração avançada e otimização, já que você sabe exatamente o que acontece em nível de sistema.
      • Ideal para entender como linguagens funcionam, recriar utilitários de linha de comando ou implementar estruturas do zero antes de usar bibliotecas prontas.
  • “O estudo não precisa ser rígido. Alternar entre Top-Down (construir projetos práticos primeiro e investigar o código depois) e Bottom-Up (estudar os fundamentos teóricos para criar ferramentas sólidas) permite evoluir sem perder o ritmo de entrega e sem criar lacunas no conhecimento fundamental.”

O que estudei até agora

  • Raciocínio lógico e lógica de programação
  • Desenvolvimento web básico (HTML, CSS, JS)
  • Web bundlers (Vite, Astro)
  • React
  • TypeScript
  • Introdução à Ciência da Computação (curso From Nand to Tetris)
  • Estrutura de dados e algoritmos
  • Node com Express e Fastify
  • SQL com SQLite e PostgreSQL
  • Design patterns
  • Iniciando Rust com Tauri v.2
  • Iniciando C++ com Qt6
  • Acompanhando o currículo da Open Source Society University (Sistemas Operacionais - Operating Systems: Three Easy Pieces)

“Este blog é o meu registro de estudos sobre o ecossistema aberto e soberania digital. Aqui compilo o ‘porquê’ e o ‘como’ do que estou aprendendo, enquanto meus projetos demonstram essa filosofia aplicada na prática.”