Dominando a Programação - As Três Virtudes Essenciais para Programadores

Escrito em 5 de Janeiro de 2024 por Ryan Souza -- Publicado também em: Dev.to

Resumo: Descubra como a preguiça, impaciência e arrogância podem levar à excelência na programação. Saiba como essas características são cruciais para a inovação, eficiência e confiança no desenvolvimento de software. Transforme sua abordagem à programação com essas virtudes essenciais.

Três programadores representando as três virtudes, preguiça, impaciência e arrogância.

Conteúdo

Você é um bom programador?

Você se considera um ótimo programador? No universo da programação, a autoavaliação é uma tarefa comum e, muitas vezes, intrincada. Ao nos depararmos com linhas de código, algoritmos complexos e desafios de desenvolvimento, é natural nos questionarmos: “Será que estou no caminho certo? Será que sou um bom programador?” Essas dúvidas, no entanto, são inerentes a todos que buscam a excelência nessa área.

Para responder a essas perguntas e nos aprofundarmos na definição de um programador de sucesso, exploraremos as três virtudes de um programador. Essas virtudes, identificadas por Larry Wall, o criador da linguagem de programação Perl, não são apenas qualidades abstratas, mas princípios práticos que podem levar a melhorias significativas no nosso trabalho. Neste artigo, vamos discutir cada uma delas e como elas se combinam para criar um programador mais eficiente e eficaz.

1. Preguiça

programador preguiçoso

Larry Wall descreve a preguiça como:

“A qualidade que te faz se esforçar muito para reduzir o gasto total de energia. Faz você escrever programas que economizam trabalho para outros e documentar o que escreveu para não ter que responder a tantas perguntas.”

Esta virtude nos encoraja a buscar soluções eficientes e reutilizáveis. A preguiça não é sobre evitar o trabalho, mas sobre maximizar a produtividade, criando ferramentas que automatizam tarefas e melhorando a documentação para facilitar o uso e a manutenção do software.

Por exemplo, um desenvolvedor que escreve um script para automatizar a implantação de atualizações de software. Em vez de realizar manualmente os mesmos passos várias vezes, o script executa todo o processo automaticamente, economizando tempo valioso. Esta abordagem não só reduz a carga de trabalho, mas também minimiza a margem de erro, garantindo maior consistência e confiabilidade no trabalho

2. Impaciência

programador impaciente

Wall descreve a impaciência assim:

“A raiva que você sente quando o computador está sendo lento. Isso te faz escrever programas que não só reagem às suas necessidades, mas as antecipam.”

A impaciência nos impulsiona a desenvolver soluções mais rápidas e eficientes. Ela está ligada à insatisfação com a lentidão e ineficiência, levando à otimização de algoritmos e à procura de respostas mais ágeis. Esta virtude complementa a preguiça, visando a eficiência não só em automação, mas também em tempo de execução.

Por exemplo, um programador pode desenvolver um sistema de testes automatizados que não apenas executa testes de forma mais rápida e eficiente, mas também identifica e se concentra em áreas críticas do software. Em vez de testar manualmente cada aspecto após cada alteração, o sistema realiza testes direcionados, reduzindo significativamente o tempo de espera e aumentando a produtividade. Isso reflete a impaciência construtiva de um desenvolvedor que deseja resultados imediatos e precisos, sem comprometer a qualidade.

3. Arrogância

programador arrogante

Wall define a arrogância da seguinte forma:

“A qualidade que faz você escrever (e manter) programas sobre os quais as outras pessoas não vão querer falar mal.”

A arrogância, longe de ser um traço negativo, reflete a confiança na qualidade do próprio trabalho. É o impulso para criar soluções elegantes e eficazes, que resistem ao escrutínio e ganham admiração. Esta virtude é um sinal de maturidade e experiência, incentivando a busca contínua por melhorias e inovações no código.

Essa virtude está intrinsecamente ligada à experiência. Com o tempo, desenvolvemos uma “arrogância construtiva” uma confiança profunda no valor do nosso trabalho. Isso não se trata de um sentimento de superioridade, mas sim de um reconhecimento da qualidade do que produzimos, ela se traduz em uma espécie de orgulho positivo pelo seu trabalho. É aquele sentimento de satisfação quando você olha para um código que escreveu e pensa: “Isso ficou realmente bom”.

Por exemplo, quando você enfrenta um código complicado e consegue simplificá-lo, isso é arrogância no melhor sentido. Você reconhece a eficácia do seu trabalho e sente uma justificada autoconfiança em suas habilidades.

Essa sensação começa até mesmo nos primeiros passos, como ao escrever seu primeiro “Hello World”. Pode parecer simples, mas é seu e representa um início promissor. Mesmo sendo um pequeno passo, você se sente o máximo, você se sente o melhor programador do mundo. Você se sente arrogante. E isso é bom.

Conclusão

Explorando as três virtudes de um programador, percebemos que são mais do que qualidades abstratas. Elas são princípios práticos para o aprimoramento contínuo. Um programador exemplar é aquele que alia preguiça (para automatizar), impaciência (para otimizar) e arrogância (para aperfeiçoar), enfrentando os desafios com habilidade e confiança.

Uma boa definição pessoal minha é:

Um bom programador é naturalmente preguiçoso, sempre buscando formas de automatizar o repetitivo; instintivamente impaciente, agilizando e aprimorando códigos com rapidez; e suficientemente arrogante para acreditar que sempre pode fazer o código melhor.”

Uma coisa importante de ressaltar é que essas virtudes são todas desenvolvidas com o tempo e a experiência, você não precisa se preocupar de que não é um bom programador por não se encaixar em todas elas, isso é normal. O importante é que você esteja sempre buscando melhorar e se aprimorar, e com o tempo você vai desenvolver essas virtudes e se tornar um programador melhor, pelo menos na visão de Larry Wall ;).

Referências


Espero que tenha gostado do artigo e que ele tenha feito você refletir ao menos um pouquinho. Se tiver alguma dúvida ou sugestão, deixe um comentário abaixo ou entre em contato comigo pelo LinkedIn ou pela aba de contato do meu site.

Voltar ao topo ⬆️

Encontrou algum erro? sinta-se a vontade para abrir um pull request no arquivo fonte deste post no Github.