Qual o verdadeiro caminho para se tornar um bom programador?
Tags: programming, codenewbie, career, codequality
Published: 2020-12-25 04:43:07

  Muito tenho me perguntado desde o início de minha jornada sobre o que realmente devo aprender. Além da linguagem com a qual codificarei ideias, estruturas e algoritmos, o que mais devo aprender? Sei que os requisitos técnicos são imensos, sei que soft skills são de suma importância. Trabalhar em equipe, sprints, ritos, descobrir os pormenores de um desenvolvimento que entrará (ou não) em produção, aplicar os diferentes níveis de testabilidade, qual o design pattern de melhor aplicabilidade para cada situação, saber quando e qual tecnologia usar... tomar conhecimento do que o mercado precisa, tudo parece importante e ao mesmo tempo, não. Olhe para o lado e veja os assuntos do momento, infraestruturas em nuvens, machine learning, inteligência artificial, quantum computing e etc, etc e etc... não são assuntos novos, mas galgaram momentum devido a outras tecnologias que tornaram possível um melhor desenvolvimento das mesmas. Sem o advento da big data, você nem estaria lendo sobre machine learning e deep learning agora. Sem tecnologias como o 4g, e agora o 5g, o desenvolvimento mobile teria tomado outros rumos, e assim por diante. Há uma corrente invisível que conecta todas as coisas. Um passo leva a outro e alguns passos levam a saltos. Mas e eu? Com meu tempo escasso, com minha vida curta e meus dias de apenas 24 horas? Que caminho devo prosseguir, que tecnologias utilizar, que áreas explorar? O conhecimento tem crescido exponencialmente e eu assim como meus colegas estamos apenas adquirindo um conhecimento superficial das coisas, somos pequenas wikipédias, tudo muito ralo, tudo muito raso, aprendemos o suficiente para pôr em práticas apenas os pequenos trechos que precisamos. Fica bem óbvio o resultado disso né? Jacks for all trades? Profissionais aleijados? Amadores remunerados? Há caminhos de generalidades e especialidades: posso ser especialista em determinada área, mas se eu não aprender sobre as coisas que a cercam e se conectam, eu nunca enxergarei a floresta, e pior, chegará o dia em que eu me tornarei apenas um tronco podre de uma árvore caída há muito tempo.



  Outra questão que me corrói, ao mesmo tempo que reestrutura minhas linhas de pensamento, e normalmente isto leva à um fator positivo, é a dinâmica de diferentes tecnologias que muitas vezes parecem se contradizer, digo, posso criar uma tecnologia para as pessoas sem ao mesmo tempo, de alguma forma, explorá-las? A vida é cheia de contrastes, e isso é ótimo. Quando as coisas vão bem demais por um tempo prolongado, o mundo fica estagnado. Superar os desafios e ir em busca, sempre, de novas soluções, é essencial para que o ser humano evolua, e assim também é o mundo do desenvolvedor. Sem problemas não há soluções a serem encontradas, logo, não há emprego. As vezes olho as longas listas de exigências de algumas vagas de emprego e penso: "Nossa, isso é descomunal... como alguém conhecerá profundamente todos estes tópicos, todas estas tecnologias, e ainda ter a prática adequada para um desempenho profissional?", então me lembro de algumas verdades: o patrão não quer saber como você fez, ele quer saber é se já está pronto, se é seguro, se é escalável e se tem qualidade. O resto é detalhe, não interessa o framework da moda, se você usou conceitos funcionais, se está tudo clean, se ficou algum débito técnico para ser resolvido nos próximos meses, o tempo é agora e cada minuto gasto deve ter uma contrapartida: o resultado do trabalho e neste a geração de valor. Discussões morais e filosóficas podem ser cool, mas só quando acontece na hora do cafezinho. O time ágil clama por agilidade, é bem autoexplicativo. "Ah, mas contribuir para projetos open source de graça é comunismo...", ninguém liga. "Vim é muito melhor outros editores...", sério? Ninguém está preocupado com qual muleta você anda, desde que chegue no destino. As pessoas gostam de encher o próprio vazio com frivolidades, tanto o vazio da alma quanto do intelecto, e isto tem tornado o mundo caótico. Lamento se você olha torto para seus colegas que não são veganos, estamos comendo carne a mais de cem mil anos, respeite seus ancestrais. Lamento se o concorrente lançou um produto igual ao seus uma semana antes de você, mas o que você estava fazendo? Discutindo política e religião? Jogando vídeo game e ping-pong? Não pense que você vai mudar o mundo desenvolvendo um aplicativo de entrega de comida, ou mais um framework para javascript. As verdadeiras mudanças no mundo acontecem primeiramente na alma do homem, quando seu espírito é tocado por uma revelação que faz com que ele mude suas atitudes e seu caminho.



  Falando em mudanças, tenho adotado uma atitude minimalista em meus trabalhos, gosto da ideia de clean code, reusabilidade, gosto de codar intencionalmente, gosto de codar objetivando o valor gerado, gosto de usar somente as dependências necessárias e odeio redundâncias, adoro a ideia de que uma linha bem escrita de código gera menos comentários a serem escritos. Desmantelamento arquétipo de multivariâncias e multivalências, clareza poética de estéticas tangíveis. Obfuscação e desmaterialidade. Eu sou um homem de contradições e adoro complexidades. Você também sabe disso: simplicidade não é ser simplista, e para saber como tornar algo simples, temos que ter um profundo conhecimento do que estamos fazendo. Creio que parte de minha fascinação pelo mundo da tecnologia se deve ao fato de eu gostar de estar sempre aprendendo, de estar me deslumbrando com as novidades e engendrando novas possibilidades de criar, de gerar, de fazer algo novo. E assim me entrego ao meu destino: aprender, desapegado de tudo que possa me deixar pra trás; leve, pronto para ser levado pelo caminho mais fluído. Sem medo, sem preconceitos, respeitando aqueles que sabem mais e me integrando à um time como se fosse minha família. Programar é mais do que escrever códigos em seja qual for a linguagem, programar é acima de tudo se comunicar com seus semelhantes para gerar valor à empresa e aos clientes. Programar é uma ciência e uma arte que parte do âmago. Tornar-se programador é uma empreitada vitalícia, que sem amor e paixão, não resultará na plenitude almejada, não haverá graça alcançada, e sim apenas mais uma pessoa estressada. Não se esqueça, empenhe-se com o melhor de si, seja qual for o desafio imposto, seja lá qual for a tarefa dada, faça com dedicação, faça com sabedoria e saiba que sempre pode contar com outras pessoas para superar os obstáculos.

Este artigo foi publicado originalmente na Digital Innovation One.