ref: master
content/blog/autonomia-e-programadores.md
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
--- title: "Autonomia e Programadores" date: 2021-01-10 tags: ["reflexao"] --- Um dos valores que eu sinto que é muito importante para qualquer programador - mas para outras áreas similares - é o de construir e fazer uso de sua própria autonomia. Possuir autonomia é uma ferramenta valiosa, especialmente considerando que enquanto programadores, um dos nossos trabalhos é essencialmente um trabalho de detetive. Não é raro nos depararmos com problemas que necessitam uma trabalho de investigação, nos levando a revisitar projetos legados, tickets de problemas, ler blogs, documentações, etc. Esse trabalho é muito mais simples e até de certa forma, automático quando temos acesso a duas coisas importantes: (1) documentação de um determinado projeto, suas decisões e soluções propostas, ou seja quando é um projeto construído de forma pública e você pode falar com um ser-humano e perguntar o porque de tal comportamento, ler e entender o porque das coisas serem assim (2) código-fonte do projeto e seu entorno. Essa é uma das maiores vantagens que advém das regras fundamentais do software-livre, proposto pelo Richard Stallman: (1) direito a usar um programa livremente (2) direito a acessar o código fonte de um programa e estuda-lo (3) direito a distribuir uma cópia do programa (4) direito a distribuir uma versão modificada do projeto. O acesso ao código fonte (direito 2) nos permite com facilidade compreender o que acontece dentro daquele programa, porque ele se comporta da forma que se comporta e entender se aquele comportamento é erratico ou pré-definido. Percebi que já virou um hábito meu de quando deparado com alguma situação ou comportamento inesperado de alguma biblioteca ou projeto no meu dia-a-dia de parar, clonar o projeto em `~/sources` e abrir o código-fonte e buscar a origem daquele comportamento. Aliado a ferramentas como o `git`, essa busca se torna ainda mais simples e eficiente, considerando que eu posso digitar `git grep` e buscar por uma palavra chave, usar `git blame` ou `git log` naquele arquivo e catar o _commit_ que introduziu aquele item. A partir daí compreender o que e quem fez aquela mudança. Nessa levada muitas vezes acaba que eu nem preciso buscar o site do projeto, ou ler a documentação ou outro tipo de informação. Toda informação que eu preciso está ali, na minha frente. O processo de construção da autonomia, ao meu ver, entra nesse quesito, de não sentir que eu dependo de ler um StackOverflow, ou as _issues_ do projeto, ou ir na lista de email como um primeiro recurso quando me deparo com alguma coisa. Com um pouco de conhecimento _e desejo de coçar aquela coceira_ [^1] esse processo começa a se construir e se tornar uma das ferramentas mais valiosas, te obrigando a sair da zona de conforto e a estudar o interior das ferramentas que você utiliza diariamente. [^1]: [scratch one's own itch - Wiktionary (em inglês)](https://en.wiktionary.org/wiki/scratch_one%27s_own_itch) |