3 Características de Programadores Ineficientes
August 09, 2021
Se arrisca com a pele dos outros
Todos nós gostamos de tecnologias novas que prometem resolver algum problema ou deixar o desenvolvimento de algo mais fluído. Aceitar as consequências de quando isso dá errado, demostra responsabilidade individual e que o indivíduo merece confiança (independente do nível profissional). Um programador ineficiente, ao botar uma tecnologia nova e ver que teve pouco resultado ou resultado negativo, se exclui da culpa. Ele culpa os seus membros da equipe por “não saberem usar a ferramenta”, de ninguém entender o real motivo da ferramenta ser aplicada, ou algo mais abstrato ainda. Apenas o sucesso da nova ferramenta ou ideia vai fazer esse indivíduo aceitar a autoria e as consequências, evitando essas a qualquer custo caso a ideia não tenha sucesso.
Revisões de código rasas
E deixar claro que leu Clean Code
Revisões de código são parte importante para qualquer desenvolvedor que trabalha em equipe. Porém, são comuns comentários como: “O nome dessa variável não ficou tão bom”; “O que acha de extrair isso para uma função menor”™. Esses dois e comentários raramente agregam algum valor ao código, e servem para mostrar que o indivíduo se importa com qualidade do código em um nível muito raso (apenas qualidade estética). Você quase nunca vai ver um programador ineficiente fazendo comentários sobre algo realmente importante, como: Modelagem (estruturas no banco); Consultas ineficientes no banco e como melhorar; Possíveis casos de falha dado um trecho de código; Rastreabilidade de possíveis problemas; Facilidade de Rollback de uma alteração em caso de falha. Ele só vai se preocupar com o que não agrada os olhos imediatamente e vai ignorar tudo que realmente importa.
Foco em conhecimento de ferramentas
Especialização, na minha opinião, só faz sentido quando é em relação a domínios inteiros: Ciência de dados, desenvolvimento de aplicações (incluindo backend e frontend), banco de dados, SRE, etc.
Um programador ineficiente se especializa em tecnologias, exemplo: Não sabe muito de como o browser funciona, mas é especializado em React; Ou não sabe muito de modelagem ou sistemas complexos/distribuídos, mas é especializado em .Net Framework.
Muito do conhecimento que um programador ineficiente aprender é completamente descartável ao trocar de tecnologia.
Ao aprender algo novo, me parece melhor investir em coisas que são aplicáveis a um grande número de situações e tecnologias. Isso não só economiza tempo (tempo que você pode gastar com família ou sua saúde), como também te torna um desenvolvedor mais valioso.