[DUVIDA] Qual a verdadeira diferença entre um programador bom e um ruim?

E aí, pessoal! Estou refletindo sobre algo meio filosófico que me pegou de surpresa esses dias...

Afinal, o que realmente diferencia um programador bom de um ruim?

Será que é:

Saber mil frameworks de cor?

Ter um GitHub lotado de repositórios (a maioria com commit “update final final v2”)?

Decorar algoritmos de entrevista técnica tipo Dijkstra e árvore AVL?

Ser rápido no teclado e usar atalho até pra pensar?

Ou será que vai além?

Já vi programadores que codam super rápido... mas deixam um rastro de código que ninguém entende nem quer manter. E já vi devs que escrevem pouco código, mas criam soluções claras, previsíveis e testáveis — quase poesia em forma de if.

Será que o “bom” programador é aquele que resolve o problema da forma mais simples possível, sem reinventar a roda?

Ou talvez o ruim seja aquele que:

Não pensa no colega que vai dar manutenção depois;

Cria funções com 300 linhas e nomes como coisa2Final 😅;

Se recusa a aprender com feedback;

Ou pior: aquele que "funciona na minha máquina" e acha que isso é argumento final.

Enfim, deixo aqui a dúvida pra vocês:

💬 Na prática, o que você acha que separa um programador bom de um ruim? Vale experiência real, exemplos, opiniões, tretas e histórias de guerra com código legado.

Quero muito ouvir de vocês!

Pra mim o q define um bom desenvolvedor de software são 2 coisas. Uma é saber programar a ponto q seja fácil manutenção/alteração. Outra é saber resolver problemas com as ferramentas certas.

O primeiro tem relação o quão bom ele consegue criar algo q daqui 1, 2, 10 anos, seja possível alterar aquele pedaço de código sem danificar o restante. E tbm precisa ser legível, pq a pior coisa é vc ler seu próprio código e não saber o q fez no dia seguinte. Só com isso já percebe q ele não tem domínio do q está fazendo. Por isso ser um código fácil de ler demonstra a habilidade de escrever códigos bons para todos q tentarem entender aquilo. Uma analogia q gosto bte de usar é com escritores. Um escritor bom é aquele q consegue transmitir suas ideias em palavras. O mesmo vale pra nós. Nós somos um tipo de escritor, só q nós transformamos em código. Se nosso código é mal feito, além do software ter um monte de bugs, quem pegar para ler vai odiar corrigir aquilo, pois nós escrevemos o código para nós mesmos, seja vc, eu, aquele outro dev, ou qqr outro q for ler nosso código, e não os usuários do software.

O segundo tem relação mais em relação a regras de negócio em si. Esse acontece quando ele consegue transformar o problema (q normalmente não sabe exatamente como quer) do cliente em um software que seja útil e fácil utilização para o cliente. E eu tbm incluo que ele tbm precisa saber fazer isso utilizando as ferramentas certas. Por exemplo, não adianta querer fazer um gerenciador de estoque utilizando tabelas para funcionar em celulares. Acho q vcs sabem como é horrível editar uma tabela em um celular. O q seria mais aceitável é, ou ele adaptar o gerenciador para ser voltado para celular, com base em um CRUD mais simplificado, ou usa tablet/desktop se é necessário o uso de tabelas. Ele precisa entender disso e saber fazer essas escolhas e ajudar o cliente entender os problemas q normalmente usuários não conseguem enxergar.

Claro q cada um terá parâmetros diferentes, pois cada um tem uma vivencia diferente, conhecimentos diferentes, contatos diferentes, e nem todos precisam concordar com o q acho, pois é um assunto não determinístico. Se fosse, todos já usariam aquilo como base.

Um bom programador resolve problema sem criar outro. Ninguém liga pro código até dar ruim. Aí um erro e já tão te xingando.

"Se é software xinga, se é hardware chuta"

Cliente, suporte, chefe, comercial... não quer saber sobre qualidade, quer saber sobre resultado e lucro. Em resumo um bom programador é aquele que entrega resultado.

Concordo com você até certo ponto, pois se o dev entregar o resultado, mas não com um código que tenha qualidade, mesmo que 1 mês, 1 ano depois alguém for dar manutenção nesse tipo de resultado, o dev ficará "lembrado" como um código mal feito, mesmo após de ter tido o recohecimento de entrega no resultado

Programação é uma área que evolui muito rapidamente, e em poucos anos se transforma completamente. Um bom programador, além de tudo que já foi dito aqui, é aquele que se adapta rapidamente, que está sempre disposto a aprender novas tecnologias e não se apega ao passado. Que não tem receios de lidar com novas tecnologias, linguagens, frameworks, etc.

Uma vez ouvi de um cara uma frase que me fez repensar até meu modo de trabalhar, de absorver conhecimento. Óbvio que não é só isso que define se um programador é bom ou ruim, mas guia para uma separação mais clara nesse ponto. "Se um programador não souber refatorar um código próprio de 3, 4, 5 anos atrás, ele não evoluiu em nada."

O que difere um programador ruim de um bom... iria até alem O que difere um profissional ruim de um bom? Em todos os ofícios e ocupações mesmo... Já percorri uma gama de diferentes funções na minha vida... vendedor, abastecimento, limpeza, programador agora. Já trabalhei com muitas pessoas boas e ruins em todas as funções. O que difere um profissional bom de um ruim, na minha opinião, é simplesmente o fato de querer ser bom. Uma pessoa não faz um trabalho que prejudicará outra simplesmente porque quer, e sim por que não tem conhecimento de suas ações naquele momento.

Agora uma observação, é 1000 vezes melhor trabalhar com um junior que não tem noção do que está fazendo, mas quer fazer melhor, do que trabalhar com um senior que simplesmente não quer fazer o melhor, porque não.

Um livro que gosto muito sobre esse tema é o Drive, recomendo a leitura.

O que difere um programador bom de um programador ruim é simples.

Um programador bom ele vai alem do código, constrói uma solução que consiga vencer o tempo, para isso ele precisa conseguir fazer algo dificil que poucos dominam transformar coisas complexas em coisas simples, para que o sistema ou solução possa ser mantido por diversas pessoas.

Existem dois tipos de sistemas aqueles que dificultam processos e o tornam pior ou sistemas que são tão bons que ninguém consegue viver sem eles.

Um bom programador vai além de escrever um código limpo, conseguir usar os melhores paradigmas, um bom programador entende que o código é so um meio para uma solução.

Eu acho que o que define um bom programador é a lógica de programação.

Mais um post inutil

Você que é foda, cade seus posts úteis a humanidade ?