Dev para leigos
Há uns meses atrás, decidi largar minha carreira em oceanografia e virar backend em python como eu contei aqui. Pouco tempo depois de o texto circular pela internet, recebi um convite maravilhoso para palestrar no Caipyra, em Ribeirão Preto (obrigada @rougeth!).
Fiquei extremamente honrada e fui. Jamais esperaria que, ao final dos dois dias do evento, eu teria feito 3 entrevistas e recebido uma proposta pra ir para Ribeirão. E se alguém tivesse me contado que eu a teria aceitado, certamente duvidaria.
Pois bem, quase 4 meses após o Caipyra e quase 8 meses da minha mudança, escrevo pra contar como anda a vida de dev, numa espécie de “dev para leigos”.
A primeira coisa que eu gostaria de falar sobre a vida de dev é: git é confuso. Ainda sofro com ele e muitas vezes preciso chorar pra alguém me ajudar porque fiz algo errado em um rebase. Sofro pra entender os inúmeros comandos de amend, rebase, fetch, etc. É confuso demais, mas necessário.
Outra coisa que aprendi é que gastamos muito tempo aprendendo a escrever código, mas ninguém me alertou de que tão importante quanto escrever código é aprender a ler código dos outros. E mais do que isso: aprender como revisar um código. Muitas vezes, ao corrigir um pull request, me pego olhando pra ele, sem a menor ideia de como testá-lo. Lendo ele, parece lindo, mas como vou saber se aquilo funciona? Pra mim, isso continua sendo um exercício de paciência e força de vontade. E ai vem aquela incerteza: minhas dúvidas são comentários válidos para serem inseridos na correção, ou simplesmente ignorância de noob? Perdi as contas de quantas vezes eu pergunto num chat privado e, dependendo da resposta, ai sim insiro a pergunta no devido local de registro. Sim, temos que aprender a lidar com isso.
Em inúmeras conversas discutindo o sistema, ou mesmo uma ideia simples, tenho aprendido que ir devagar no fluxo de pensamentos geralmente é bom. Eu, particularmente, tenho a tendência de querer ir logo pra raiz do problema. É bastante recomendável olhar o “big picture” da coisa. Sempre desenhamos o fluxo inteiro de processos, geralmente começando com um boneco palito que representa o usuário :) Então o que eu tento interiorizar é: vai com calma. A princípio parece uma perda de tempo, mas o processo lento pode otimizar muito trabalho depois.
Aprender a programar em conjunto (o famoso pair programming) é essencial. Tive que perder o medo de digitar as coisas na frente das pessoas. Ainda erro praticamente todos os comandos do vim quando alguém está olhando, mas já consigo escrever as coisas enquanto outras pessoas lêem sem pensar que estou “fazendo papel de ridícula”.
No Caipyra, disse que não me sentia uma dev e me perguntaram o por que não. Uma das respostas que primeiro me veio na cabeça foi: “porque eu nunca fiz um deploy”. Ok, fiz um deploy. Não é um bicho de sete cabeças… mas ainda não estou preparada pra lidar com possíveis erros. O que fiquei pensando depois de fazer meu deploy (sem erros, claro) é que já não acho que saber fazer um deploy e se considerar uma dev sejam correlacionados. É legal, é emocionante, mas não é fundamental.
Esses são algumas das inúmeras reflexões e lições que eu tenho aprendido nesse momento de aprendizado intenso. Já passei por algumas refatorações, já construi uma app do zero, já melhorei testes, já brinquei com generic relations. Já quis quebrar o computador muitas vezes e já quis chorar na frente dele. É nessas horas que o cafézinho faz bem. Pare! Mesmo que você esteja com o prazo apertado. Pare! Hoje, consigo falar que me considero uma dev. Iniciante e inexperiente, mas ainda sim, uma dev.
Gostaria de finalizar o texto agradecendo de coração todos feedbacks sobre os meus textos. Recebi diversas mensagens de pessoas agradecendo por ter contado a minha história e por ter ajudado-as de certa forma. Um agradecimento especial para o querido @seocam, @rougeth, @joaojunior_jj e todos os meus queridos companheiros da Crave Food Services por todo carinho, aprendizados, paciência e companheirismo.
❤ Abraço! Letícia