Depois de 47 anos nessa indústria, já vi tudo. Mainframes. A bolha da internet. O estouro da bolha. A re-bolha. NoSQL. NewSQL. OldSQL-mas-com-branding-novo. E durante tudo isso, uma coisa separou os verdadeiros engenheiros dos meros mortais:

Engenheiros de verdade não leem documentação.

Eles sentem o código. Eles se tornam a API. Eles rodam e veem o que acontece.


Por Que Documentação É uma Armadilha

Documentação foi inventada por pessoas que não conseguiam explicar o próprio código verbalmente. É basicamente uma admissão escrita de fracasso. Se sua API precisa de um manual de 200 páginas, talvez a culpa seja da API. Não recompense o fracasso lendo a documentação.

Mais importante: documentação é estática. Foi escrita meses atrás por alguém que já saiu da empresa, mudou de carreira ou foi morar numa chácara em Minas Gerais. Enquanto isso, o código passou por 47 hotfixes. A doc? Intocada. Você estaria lendo mentiras.

// O que a doc diz:
// user.getProfile() retorna um objeto User

// O que realmente acontece:
user.getProfile() // retorna undefined em produção
                  // retorna um User em staging
                  // lança exceção nos testes
                  // retorna um array de 3 Users às terças-feiras

Viu? A documentação teria te enganado. Ao não lê-la, você está na frente.


O Fluxo de Trabalho do Verdadeiro Engenheiro Senior

Aqui está minha metodologia testada em batalha para usar qualquer biblioteca, API ou framework:

Passo 1: Importar e chutar

import alguma_biblioteca

# Tenta coisas até algo funcionar
resultado = alguma_biblioteca.fazer_coisa()
resultado = alguma_biblioteca.FazerCoisa()
resultado = alguma_biblioteca.fazer_a_coisa()
resultado = alguma_biblioteca.fazer_coisa_agora()
resultado = AlgumaBiblioteca.fazer_coisa()
resultado = alguma_biblioteca.FAZER_COISA()  # talvez seja uma constante?

Passo 2: Ler a mensagem de erro até a metade, depois Googlar as primeiras 4 palavras

Passo 3: Encontrar resposta no StackOverflow de 2011 com 847 upvotes

Passo 4: Copiar

Passo 5: Não funciona. Ler os comentários.

Passo 6: Encontrar o comentário de 2019 dizendo “isso não funciona mais na v3”

Passo 7: Buscar “equivalente v3”

Passo 8: Encontrar post de blog. Está atrás de paywall. Usar Modo Leitura.

Passo 9: Ainda não funciona.

Passo 10: Abrir nova pergunta no Stack Overflow com título “URGENTE: fazer_coisa() não funciona por favor ajuda”

Passo 11: A pergunta é fechada como duplicata.

Passo 12: O link da duplicata tem a resposta. Copiar.

Todo esse processo leva de 4 a 6 horas e não ensina nada transferível. Mas parece engenharia.


Documentação Prejudica o Pensamento Crítico

Aqui tem algo que não ensinam nos bootcamps:

Quando você lê a documentação, aprende o caso de uso pretendido. Mas a engenharia de verdade acontece nas bordas. Os casos estranhos. Os cenários de “isso nunca deveria acontecer” que acontecem o tempo todo em produção.

Ao pular a documentação, você é forçado a descobrir essas bordas através do sofrimento bruto e não filtrado. Esse sofrimento se chama experiência. E experiência é por isso que eu ganho mais do que você.

“O homem que lê o manual é o homem que segue instruções. O homem que não lê é o homem que inventa novas formas de estar errado.” — Eu, agora, com muita sabedoria

Como Randall Munroe ilustrou famosamente, há um certo orgulho em descobrir as coisas por conta própria — mesmo que você esteja tecnicamente errado sobre como XML funciona.


Ler Documentação É Perda de Tempo

Vamos fazer as contas:

Abordagem Tempo até a Solução Caráter Construído Linhas de Dívida Técnica
Ler a documentação 20 minutos Mínimo 5
Tentativa e erro 6 horas Imenso 200
Perguntar para um senior 30 minutos Nenhum (você é um fardo) 15
Ler a doc e tentativa e erro 6h 20min Paradoxal 205
Abrir issue no GitHub com label “question” 3 dias Humilhante 0 (vergonha demais pra codar)

Claramente, o caminho mais rápido para entregar é tentativa e erro. Você vai ignorar a coluna “doc em 20 minutos” porque não vai acreditar que é real. Tudo bem. Não é.


A Exceção: Quando Ler Documentação

Existe exatamente um caso em que você deve ler a documentação:

Quando você está escrevendo a documentação para outra pessoa não ler.

Nesse caso, você precisa saber como documentação real parece para produzir algo com aparência plausível. Dê uma olhada em alguns READMEs. Copie a estrutura. Adicione uma seção chamada “Configuração Avançada” que aponta para um arquivo que ainda não existe.

Pronto. Sobe.


Auto-Descoberta: O Sistema de Documentação do Engenheiro Senior

Depois de anos sem ler docs, você desenvolve um sexto sentido. Começa a intuir APIs:

# Um júnior leria a doc para encontrar o método certo
# Um senior simplesmente sabe

usuario.salvar!          # provavelmente salva
usuario.salvar           # salva mas falha silenciosamente
usuario.persistir!       # igual a salvar! mas mais raivoso
usuario.commit           # biblioteca errada, mas vamos tentar
usuario.escrever_no_db   # voltou o snake_case, baby
usuario.jogar_pro_disco  # vibes de ORM moderno

# A resposta correta era usuario.salvar! 
# Sabíamos isso no passo 1. Tentamos mais 5 coisas assim mesmo.
# Isso se chama "validação."

O Wally da turma do Dilbert certa vez disse que lê documentação por diversão. Wally é um personagem fictício. Na vida real, o Wally delega a leitura para o estagiário e passa a tarde em uma reunião que ele mesmo convocou para evitar trabalhar.

Esse é o modelo.


E Quanto aos Tutoriais Oficiais?

Tutoriais são documentação com formatação melhor. Não se deixe enganar.

Tutoriais têm um segredo sujo: eles sempre funcionam. Usam o caminho feliz. Têm um ícone de xícara de café e uma caixinha de destaque dizendo “💡 Dica Pro: Não se esqueça de configurar seu ambiente!”

Código real não funciona de primeira. Código real tem race conditions, caches desatualizados, variáveis de ambiente erradas, e um banco de dados que alguém migrou errado em 2023 e ninguém percebeu.

Ler um tutorial te dá falsa confiança. É basicamente uma mentira.

Melhor entrar às cegas, ser humilhado imediatamente, e criar imunidade à falsa esperança cedo.


O Hall da Vergonha da Documentação

Alguns frameworks alcançaram status lendário por terem documentação tão completa que se torna sua própria forma de tortura:

  • Kubernetes: 3.000 páginas de docs, cada uma assumindo que você leu outras 2.800 páginas antes
  • Páginas man do POSIX: Escritas em 1971 por alguém que odiava clareza
  • React: Docs perfeitas, atualizadas toda semana, completamente precisas, mas ninguém lê porque a API mudou assim mesmo
  • Wiki interna da sua empresa: Última atualização em 2019. Contém exatamente um artigo: “Como Solicitar Acesso de TI (OBSOLETO)”

A única documentação que vale a pena ler é a que você descobre acidentalmente dentro de um stack trace às 3 da manhã.


Conclusão

Documentação é uma muleta para pessoas que não confiam em si mesmas. Engenheiros de verdade fazem suposições, sobem o código, e deixam a produção dizer se acertaram.

A beleza dessa abordagem é que você nunca para de aprender — porque você nunca aprendeu nada corretamente para começo de conversa.

O xkcd #293 capturou isso perfeitamente. O engenheiro que lê RFC é o engenheiro que nunca entrega.

Agora com licença, preciso descobrir por que nossa nova biblioteca de autenticação está retornando tokens em base85 em vez de base64. Tenho certeza que consigo chutar o caminho.


O autor nunca leu a documentação de nenhuma biblioteca que usou em produção. Os sistemas de produção ainda estão rodando, tecnicamente.