Todos de nós já vimos desenvolvedores (inclusive os mais experientes) desenvolvendo com tecnologias novas baseadas no ctrl+c, ctrl+v de projetos já existentes sem ao menos se questionar o motivo de ser feito daquela forma, certo?
Quem nunca pegou um Dockerfile ou um .YML qualquer e simplesmente colou mudando algumas propriedades? Ou quis utilizar um framework novo, fez o básico e disse "Funcionou!" e já botou pra produção sem avaliar os prós/contras do mesmo?
O que irei falar hoje vai bem nessa linha, muitas vezes caimos nessas situações por causa correria do dia-a-dia e acabamos "programando por coincidência".
Ai você fala "nãaaaao, nunca fiz isso!", mas a verdade é que todos já fizemos! Não é uma prática "ruim", na verdade, isso da um pouco de velocidade pra desenvolvermos sem ter que se preocupar como determinado framework ou ferramenta funciona. O problema dessa abordagem é que, sem o conhecimento pleno do que estamos trabalhando / desenvolvendo, podemos cair em um cenário de caos em produção, pois podemos esquecer de mudar o número de instancias que a aplicação irá subir, algumas configurações de rede ou até mesmo o próprio nome da aplicação em um arquivo de properties!
Nisso caimos no "Se todo mundo faz assim, deve ser o certo", ou "Se alguem já fez, não tem motivo pra eu perder tempo pra entender isso". Isso faz com que percamos a capacidade de compreender / melhorar o que está no nosso dia-a-dia. Perdemos casos como:
- Por que essa aplicação está configurada pra usar 20 instancias!?
- Por que colocaram essa lib reativa em um projeto imprimir etiqueta!?
- Por que esse teste unitário testa 4 classes diferentes!?
- Por que essa chamada HTTP faz 10 retries seguidos!?
Esses "por que"s são fundamentais no processo de crescimento de qualquer desenvolvedor. Se ficarmos parados no que já sabemos ou esperar alguma oportunidade no trabalho pra aprender algo novo, iremos facilmente passar meses / anos sem aprender!
David Thomas cita em seu livro "The Pragmatic Programmer" a prática de estudar / compreender coisas como um "investimento no seu portfólio de conhecimento".
A palavra investimento aqui não foi colocada por acaso. Esse portfólio é como se fosse uma caixa de ferramentas. Quanto maior o número de ferramentas diferentes você tem, maior a quantidade de problemas que você consegue solucionar, pois você já terá o conhecimento de "qual ferramenta vou tirar da caixa pra resolver esse problema?" Ou "nossa, poderiam ter usado a ferramenta xpto para resolver isso!"
Investir no seu portfólio de conhecimento exige uma certa dedicação (não é todo mundo que gosta de estudar né?), mas existem canais na interwebs que facilitam bastante, como:
- Udemy, Udacity, Coursera
- Documentação de libs / frameworks
- Vídeos de conferencia no YouTube (QCon, GoTo, TDC, etc)
- Vídeos independentes no Youtube
- E-books
- Grupos de usuários / fóruns
As informações que precisamos estão disponíveis! Só precisamos correr atrás das que mais relevantes para nossa carreira, a fim de conseguir resolver nossos problemas do dia-a-dia com maior facilidade e qualidade!
Top comments (0)