porcellis.com

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)