- Ao entrar em uma nova empresa, a primeira coisa que fez foi comprar um caderno novo, e isso vinha não só de uma alegria simples, mas da percepção de que ele é uma ferramenta central para um desenvolvedor
- Programar é apenas a etapa final; mais importante é o processo de pensar no que e em como construir, e isso muitas vezes começa no caderno, não no computador
- Ao visualizar o pensamento com texto e desenhos no caderno, ideias abstratas se tornam concretas e lacunas de conhecimento também aparecem, ajudando a criar um design melhor
- O hábito de explicar por escrito e revisar novamente o código que você escreveu funciona como uma ferramenta eficaz de refatoração para encontrar inconsistências ou projetos mal elaborados
- Esses registros também são úteis para o eu do futuro como material para reconstruir o contexto das decisões, tornando-se uma espécie de documento de retrospectiva automatizado
Por que caneta e caderno são os mais importantes
- Uma das coisas mais esperadas antes do primeiro dia de trabalho era escolher um caderno novo
- Para um desenvolvedor, o caderno não é apenas uma ferramenta de registro, mas uma ferramenta de pensamento
- Programar é a execução no fim do processo de pensamento, e o processo de refletir sobre o que construir é mais importante
- Em muitos casos, o pensamento criativo não flui bem na frente do computador
- Ao abrir o editor, a pessoa entra em um “modo funcional” em que se concentra apenas em código que funciona
Pensar longe do computador
- Fazer uma caminhada ou levar o caderno para o sofá ou para um ambiente ao ar livre e pensar no problema
- Organizar no caderno o desenho da abordagem para novos problemas, esboços de UI, fluxogramas, além da análise do fluxo de dados do código existente e ideias para expandir funcionalidades
- A visualização do pensamento por meio de texto e desenhos é extremamente eficaz para transformar ideias vagas em algo concreto
- Lacunas lógicas que são rapidamente ignoradas quando ficam só na cabeça aparecem com clareza na escrita
Escrever é a melhor ferramenta de refatoração
- Depois de escrever o código, criar o hábito de explicar por escrito como se estivesse explicando para outra pessoa
- Sempre que possível, publicar isso em um blog, mas mesmo em formato de documentação interna, o processo de explicação ajuda a descobrir inconsistências, design ruim e erros
- Post relacionado: Escrever é minha nova ferramenta favorita de refatoração
Subproduto do pensamento e patrimônio de registro
- Outra vantagem dessa forma de pensar escrevendo é que os rastros do pensamento ficam naturalmente registrados
- Mesmo sem documentar separadamente, o subproduto de organizar as ideias se torna um excelente material de retrospectiva
- Mais tarde, quando alguém (especialmente você no futuro) perguntar “por que isso foi feito assim?”, basta abrir o caderno e explicar exatamente a partir dele
Sobre como escrever notas de desenvolvimento mais profundas
1 comentários
Comentários do Hacker News
Estou achando esta uma discussão excelente. O ponto principal, para mim, não é o caderno ou a ferramenta digital em si, mas o fato de ela mudar as engrenagens do meu cérebro. Cada vez que mudo de modo, meu cérebro presta atenção de um jeito diferente, então um novo contexto aumenta o foco, a criatividade e a memória. Por exemplo, depois de passar muito tempo só programando, comecei à noite um novo hobby de escrita e senti como se meu cérebro tivesse sido reiniciado, e minha produtividade durante o dia realmente aumentou. Quando vou planejar algo, trocar por um momento do digital para caneta e papel também quebra a rotina e faz meu cérebro funcionar de outra forma. No fim, o importante não é a ferramenta, mas despertar por meio da mudança
Fico curioso para saber quantos desenvolvedores hoje já fizeram uma aula básica obrigatória de desenho técnico. Muita gente provavelmente brincou com Lego. Quando você precisa explicar um objeto 3D em uma folha 2D, normalmente desenha projeções de três lados, e, se for algo mais complexo que isso, é preciso mostrar mais ângulos para conseguir explicar
Fiquei impressionado com o conceito de "disfluência" (
disfluency) que encontrei no livro Smarter Faster Better. Uma fonte desconfortável, um ambiente novo, ferramentas diferentes — tudo isso ajuda a sair do piloto automático e pensar de novo. Nunca vi esse conceito em outro lugar, mas nos últimos 9 anos ele mudou completamente minha forma de abordar resolução de problemas e aprendizado. Para mim também, mudar para o caderno é um ótimo gatilho para provocar esse efeitoNo meu caso, faço anotações de fato em três meios: caderno de papel, gravador antigo e arquivo de texto. Cada meio tem vantagens e desvantagens próprias, então as ideias também acabam sendo expressas de formas diferentes. Tenho usado cada vez menos o gravador, mas ele é o melhor quando estou sem tempo e preciso seguir em frente rápido. Quando ouço a gravação depois e torno a escrever, cada repetição transforma a ideia de um jeito diferente. Esse processo me permite olhar para a mesma ideia por vários ângulos
Ouvi falar de uma pesquisa há um tempo dizendo que troca de contexto custa em média uns 15 minutos. Não sei o quão exato isso é, mas meus chefes também levavam isso bem a sério e respeitavam bastante
Eu vivi isso ao acompanhar uma série de webinars ao vivo, fazendo anotações na hora com caneta e papel. No começo era muito difícil acompanhar, mas depois de alguns dias fui ficando cada vez mais habilidoso em alternar entre ouvir e escrever, e tive a sensação de que comecei a reter melhor a informação auditiva
Algumas das pessoas mais inteligentes que conheci em matemática, física e ciência da computação nem usam caderno. Em vez disso, escrevem com caneta em papel de impressora e depois simplesmente jogam fora. Quase nunca encontrei utilidade em anotações pessoais muito antigas. O que é realmente importante eu documento para que outras pessoas também possam encontrar, e o que precisa mesmo ser memorizado eu estudo com flashcards usando repetição espaçada. Claro, esse é o meu jeito e pode não servir para os outros. O título deste texto está apenas compartilhando a filosofia de um desenvolvedor, não dizendo que todo mundo deve seguir isso. Se caneta e caderno não funcionam para você, não precisa usar
Do ponto de vista científico, escrever algo melhora memória, memorização e aprendizado. Isso funciona até se você jogar o que escreveu fora logo em seguida. Há até um artigo sobre isso. Escrever à mão ativa mais sentidos e mais áreas do cérebro — especialmente o córtex motor — do que digitar. Eu mesmo vivo usando isso como desculpa para querer comprar um Moleskine, mas escrita à mão não combina com o meu fluxo de trabalho. Eu prefiro digitar grandes quantidades em um buffer de texto simples e depois processar isso com um LLM como o GPT. Quando minha cabeça trava, começo a digitar qualquer coisa, até palavras que não entendo, e aos poucos vou voltando ao normal; dali surgem listas de tarefas, rascunhos de e-mail, rascunhos de código e assim por diante. Nesse processo, a maior parte dos rabiscos iniciais desaparece. Ainda assim, escrever à mão ajuda mais na memória
Concordo com a ideia (sua) de que anotações antigas não servem para muita coisa. Mesmo assim, ainda guardo esses cadernos e papéis. Olhar para eles muitos anos depois é como ver fotos antigas de família — uma espécie de retrato de como eu pensava no passado
Meu cérebro também funciona assim. Eu até tenho cadernos, mas um dia inteiro de pensamentos cabe em uma única página. No dia seguinte escrevo na próxima. Quase nunca volto para reler o que escrevi antes. Pode haver algum valor em olhar para o passado, mas na prática não consigo fazer isso
Para mim, o método de registro em caderno só funciona se for totalmente livre e sem estrutura. No teclado é difícil capturar o fluxo. Eu uso para registrar dados não lineares, não verbais, relacionais, espaciais ou informações de memória de curto prazo. Periodicamente reviso as anotações e transfiro o que for significativo para sistemas de registro como calendário, tickets, wiki ou repetição espaçada. No fim, é raríssimo haver algo que realmente valha a pena guardar, mas tudo bem. O caderno de papel não é meu sistema oficial de registro; é uma extensão da minha memória de trabalho
Eu costumava perder anotações com frequência. Hoje uso ferramentas tecnológicas para converter as notas em texto e organizá-las em um vault do Obsidian. No futuro, quero facilitar a busca de ideias explorando conexões entre notas automaticamente ou adicionando tags
Chamar o caderno de "a ferramenta mais importante" é romantizar demais. Pode ser útil para algumas pessoas, mas dizer que ele é mais importante que um depurador, controle de versão ou CI é exagero. Engenharia de software não é cosplay de artesanato
Sou o OP. Toda vez que meu blog vai parar no HN, aparece gente dizendo que eu "vivo em fantasia" ou que isso é "romantismo puro". As ferramentas que você listou são obviamente importantes. Eu também evitaria desenvolver sem controle de versão ou depurador, porque seria ineficiente. Mas, para mim, o caderno é realmente mais importante. As ferramentas para escrever e executar código só fazem o trabalho acontecer; o que de fato importa em desenvolvimento de software é criar algo valioso e resolver problemas. Nisso, o código em si é apenas uma etapa menor de implementação. Pensar no que construir e em como construir é muito mais importante. Algumas pessoas talvez pensem melhor no editor de código e em ferramentas digitais. Eu, se fico só no editor, mergulho demais nos detalhes de implementação e tenho dificuldade de visualizar a estrutura como um todo. Por isso, para mim, usar o caderno junto, antes e depois de programar, é uma parte extremamente central do trabalho. Se eu não tivesse essa ferramenta, minha capacidade de pensar, resolver problemas e criar seria muito reduzida, e eu acabaria fazendo software pior
O que você está descrevendo não é engenharia de software, e sim processamento de software. A diferença entre o trabalhador braçal e o engenheiro está justamente nessa atitude em relação às "ferramentas". Para um engenheiro, seja régua de cálculo, calculadora ou supercomputador, tudo isso é apenas "ferramenta". Ninguém faz engenharia por causa da ferramenta. A essência é o pensamento, e a ferramenta só acelera esse processo. Para quem apenas processa, a máquina em si é tudo. Sem a máquina, não há widget produzido. A essência não é a "produção", é o "pensamento"
É como dizer: "Ao construir uma casa, obviamente o martelo é mais importante que a planta. Isto não é aula de arte, é obra"
Obrigado por destacar isso. Há muitos casos de pessoas que gastam um tempo enorme com sistemas de produtividade, enchendo notas de GTD com abas e listas, mas sem conseguir fazer trabalho realmente produtivo. Tem gente escrevendo sobre workflow no Obsidian, mas sem deixar nenhuma anotação significativa. Também há quem gaste todo o tempo construindo o próprio blog e nunca escreva de fato. (Eu já fui essa pessoa.) Adorei a frase "isso não é cosplay de artesanato, é engenharia de software"; vou anotar no meu caderno
Gostei da expressão "craftsmanship cosplay". Eu queria ver dados sobre cargo ou carreira, idade, renda e formação de cada comentarista. As opiniões parecem revelar mais sobre quem fala do que sobre desenvolvimento de software bem-sucedido em si. O OP só está usando um método que funciona para o próprio foco e criatividade. Tratar o texto ou a crítica como se fossem padrão é um erro. Imitar o padrão no fim não seria muito diferente de comportamento de cargo cult
Parece que a maioria dos comentários está focando na parte física de "caneta e papel", mas perdendo o princípio central. O autor usa caneta e papel porque, ao sentar diante do computador, entra automaticamente em "modo de implementação" e passa a privilegiar a execução em vez do design. Ou seja, o ponto importante é: quando for necessário projetar, não mergulhe apenas na implementação; escolha por conta própria como manter esse equilíbrio
Isso tudo está, no fim, no campo da produtividade pessoal. É preciso experimentar várias abordagens e descobrir qual ambiente e processo funcionam para você. Caneta e papel ajudam a conduzir pensamento e design sem cair em detalhes excessivos nem se distrair. Eu também alterno com frequência entre ideias pensadas no papel e ideias escritas direto no Sublime Text, e os dois jeitos funcionam bem
Aquele meme da curva de sino popular no Reddit — em que os dois extremos chegam à mesma solução e o "meio" reclama — se encaixa perfeitamente aqui. O OP acertou em cheio no ponto central: pense antes de programar. Agora que minha carreira está quase no fim (comecei em 88, então já são muitas décadas), uma das coisas mais interessantes para mim é a mudança nas ferramentas. Sou arquiteto de software senior principal em uma grande empresa e não escrevo uma linha de código. Todos os meus resultados são feitos em Visio, Word, PowerPoint e, às vezes, PlantUML. Quanto maior o nível de abstração, mais simples ficam as ferramentas. As arquiteturas que eu desenho precisam rodar por mais de 10 anos em sistemas militares, médicos e de fornecedores automotivos de primeira linha. O código que de fato será implementado (na maioria das vezes em C, C++, antigamente Ada e talvez Rust no futuro) ou a linguagem em si não têm qualquer impacto na arquitetura. O que realmente importa são os blocos, as APIs e a encapsulação, porque isso afeta silício, segurança, produção e testes. O essencial é o que pode ser explicado em alguns slides, não o código em si. (Claro, meus diagramas também precisam sobreviver quando aparecerem falhas de projeto. Essa também é a parte divertida)
Caderno Leuchturm 1917 A4 Master (recomendo muito a grade pontilhada). A qualidade é excelente e, com uma caneta-tinteiro, é uma alegria de usar. O tamanho A4 é grande, então também é ótimo para colocar folhas soltas dentro, e especialmente para design de UI o A4 é o tamanho ideal
Faço software há mais de 20 anos e antes disso fiz doutorado e pesquisa em química orgânica. Ganho bem o suficiente como "senior" na Austrália. Tenho afantasia (
aphantasia), então uso muito caneta e papel ou quadro branco. ERD, mapas mentais, diagramas de sequência e outras visualizações. Passei a usar um ReMarkable, o que facilitou mover conteúdo e também aumentou minha eficiência. Para algumas pessoas isso pode parecer "romantismo puro", mas, no meu caso, caneta e papel foram essenciais para o meu sucessoDepois de tentar criar o hábito de organização com várias ferramentas e apps de anotações, neste ano resolvi, como meta de Ano-Novo, comprar um bloco de notas To-Do em que dá para escrever a data e simplesmente usar livremente durante reuniões ou trabalho. O resultado foi uma produtividade muito maior. Para quem tiver curiosidade, compartilho o item que usei
Uma das coisas de que mais sinto falta quando trabalhava no escritório era passar um tempo em frente a um quadro branco grande projetando coisas com colegas. Quando a gente ficava pensando na arquitetura com marcadores na mão, muitas vezes saíam designs de classes realmente elegantes
Eu uso o excalidraw para isso e acho melhor que quadro branco. 1) Fica mais bonito e menos bagunçado, 2) marcadores digitais não secam, 3) editar e mudar é fácil. Sempre começo o design técnico no excalidraw
Eu uso uma tela com caneta de 24 polegadas. Quando eu era CTO, fornecia uma para cada membro do time. É muito prático, porque com um quadro branco digital compartilhado dá para continuar editando sem precisar redesenhar tudo várias vezes. Também não precisa tirar foto antes de apagar o quadro branco
Quadro branco (inclusive lousa) é vida