- O ato de aprender mexendo e modificando coisas (tinkering) não é apenas aquisição de habilidades técnicas, mas um processo central de aprendizado e formação de gosto
- No processo de tentar sem um objetivo definido e repetir fracassos, a curiosidade investigativa e a sensibilidade crescem
- Bom gosto é formado ao usar diretamente diversas ferramentas e ambientes, por meio de experimentos repetidos em que se descarta o que é ruim e se mantém o que é bom
- O ato de mexer, quebrar e refazer toda vez é uma forma de desenvolver a sensibilidade para distinguir o comum do excepcional
- Perguntar, experimentar e se chocar com problemas todos os dias é justamente a atitude que os desenvolvedores de hoje devem ter
O que é tinkering
Tinkersignifica o ato de fazer pequenos ajustes repetidos para consertar ou melhorar alguma coisa- Ajustar a sensibilidade do mouse em jogos FPS, configurar um window manager do Linux ou desmontar e lubrificar um teclado mecânico são exemplos disso
- Essas ações não são estritamente necessárias, mas proporcionam a alegria de construir um ambiente próprio e levam ao aprendizado
A atitude do tinkering
- Existem dois tipos de pessoas: as que agem apenas para alcançar um objetivo e as que tentam coisas sem motivo específico
- A postura ideal está no meio disso: encontrar um equilíbrio entre experimento e praticidade
- Mexer em novas linguagens, ferramentas e editores, tolerando algum desconforto, torna-se um processo de expansão da sensibilidade criativa
- Não se afirma que seja errado que alguns desenvolvedores usem apenas o terminal do VSCode, não conheçam bindings do vim ou usem GitHub Desktop em vez de CLI, mas isso deve ser visto como o nível básico (minimum)
- Como diz a frase “a prática é algo que você pode jogar fora”, a exploração do processo e sua frequência importam mais do que o resultado
A relação entre aprendizado e gosto
- Bom gosto é discernimento que surge do acúmulo de experiências, e não pode ser obtido sem diversas tentativas
- O processo de usar várias ferramentas e linguagens para distinguir o que é “bom” do que é “mais ou menos” é, por si só, aprendizado
- Tentativas que antes pareciam desnecessárias acabam aprofundando a compreensão e o apreço pela programação
- Sem seguir os critérios dos outros, a repetição de escolher e descartar com base nos próprios critérios é o processo que cria o verdadeiro gosto pessoal
- Recentemente, ao tentar coisas como escrever shaders em GLSL, macros procedurais em Rust, C++ com templates, desenvolvimento de apps em Swift e uso do editor Helix, foi possível obter novos conhecimentos e experiências pelo puro prazer de explorar
“O tempo gasto aprendendo nunca é desperdício”
Por que gosto é importante agora
- Em meio ao ato de tentar sem parar, consertar, quebrar e refazer, não crescem apenas as habilidades técnicas, mas também a sensibilidade e os critérios estéticos
- Bom gosto (good taste) se forma no processo de experimentar coisas diversas, descartar o que não agrada e manter o que funciona e agrada
- O “gosto” aqui significa a capacidade de distinguir o comum do excepcional, variando de pessoa para pessoa e sem necessidade de ser igual ao dos outros
Questione o status quo, experimente, quebre e repita esse processo
1 comentários
Comentários no Hacker News
Há muito tempo, um amigo me disse que, depois de aprender tudo sobre café, acabou só conseguindo aproveitar café feito com grãos e máquinas caros, mas a satisfação era a mesma de quando bebia café de supermercado antigamente
Por isso, eu tento viver de um jeito que reduza o máximo possível o “gosto refinado”. Fico plenamente satisfeito com fones de 20 dólares e uma TV de 200 dólares, e mesmo que meus amigos usem TVs de 3 mil dólares, o tamanho da diversão não parece diferente
Hoje assino grãos de torrefações independentes e sinto prazer em explorar novos sabores toda vez. Conhecer um bom café foi uma experiência que enriqueceu minha vida
Para mim, o “gosto” não estraga a experiência; pelo contrário, ele a torna mais rica
Mesmo assim, no dia a dia continuo usando o de 20 dólares. Acho que o importante é “aproveitar sem pose”
É como um grande engenheiro que, no fim de semana, faz Doom rodar numa batata: gosto é também a capacidade de abraçar a variedade
Gosto de verdade é a capacidade de entender a beleza de vários estilos. Eu também fui testando vários equipamentos de café e, no fim, acabei desenvolvendo um gosto “menos julgador”
Concordo com a ideia de que existe gente que “faz só pelo objetivo” e gente que “faz simplesmente porque faz”
Hoje em dia, qualquer um pode fazer ‘vibe coding’, então acho que a diferença entre desenvolvedores está no ‘bom gosto (good taste)’
Isso não é só sensibilidade, mas discernimento acumulado por meio de várias tentativas. Em design de sistemas é a mesma coisa: não basta construir rápido, também é importante saber criar uma “estrutura que não desmorona”
Por isso, eu criei uma pasta
sandboxpara experimentar ideias novas e bibliotecas e, assim, cultivar meu gosto~/Codehá vários projetos de experimento. Esses pequenos experimentos me tornam um programador melhorPor exemplo, já vi um PR que complicava tudo com AWS Lambda e Terraform para algo que poderia ser resolvido simplesmente adicionando uma rota em um app Flask
Entendo o ponto principal do texto, mas achei os exemplos fracos. Sensibilidade do mouse, switches de teclado e configurações do VSCode são “coisas que já foram feitas para serem ajustadas”
O aprendizado real vem de “usar do jeito errado”, mas hoje em dia até esse tipo de tentativa virou produto. É uma pena que o mundo tenha ficado tão conveniente a ponto de “até o tweak virar uma experiência empacotada”
Antes eu achava que “gosto” era um critério para distinguir boa qualidade, mas hoje vejo mais como “grau de alinhamento de valores”
Quando alguém diz que outra pessoa tem bom gosto, no fim das contas isso quer dizer que elas compartilham valores parecidos
Acho que essa “intencionalidade” é justamente o núcleo do verdadeiro gosto
Os piores engenheiros que já vi eram pessoas “presas ao próprio gosto”. Num ambiente que exige colaboração, essa atitude destrói a equipe
Programar não é arte, e sim “trabalho para os outros”. Usuários se importam mais com o valor do resultado do que com a linguagem ou o padrão usado
Um desenvolvedor realmente competente é alguém capaz de colaborar de qualquer jeito
O importante é ter sensibilidade para saber quando manter os princípios
A distinção entre “agir por um objetivo” e “agir simplesmente por agir” lembra as ideias de 『Zen and the Art of Motorcycle Maintenance』
Robert Pirsig chama isso de “compreensão romântica” e “compreensão clássica”, mas no fim diz que ambas são ilusões, e que o ideal é uma visão integrada
Tenho a impressão de que o conceito de ‘tinkering’ do autor se parece, na verdade, com comportamentos de foco repetitivo vistos na neurodivergência (neurodivergence)
Bom gosto não nasce de repetição simples, mas da combinação entre conhecimento e técnica. O essencial é o quanto você entende o mundo de forma ampla e o quanto reconhece os campos que ainda não conhece
Antes eu também era um “tweaker infinito”, mas com família, trabalho e a vida corrida, acabei desistindo por razões práticas
Hoje uso um Synology NAS e voltei para o Windows em vez de Linux. Mesmo assim, o espírito de tinkering ainda continua em mim
“Um sistema de notas que exige manutenção” não combina comigo
Não sei se a palavra certa é “gosto”, mas concordo com a ideia de “aprender por meio de experimentação prazerosa”
Só que esse tipo de aprendizado tem duas limitações
O autor definiu ‘tinkering’ usando IDE como exemplo, mas IDE não é o único alvo possível de experimentação
Há várias outras áreas, como sensibilidade do mouse, teclado e window manager
Não mexer no IDE não faz de alguém um “não-tweaker”. No fim, o importante é a “postura investigativa”, não uma ferramenta específica