Como posso saber se sou um bom programador?

301

Como a maioria das pessoas, penso em mim como um pouco acima da média em meu campo. Sou bem pago, recebi promoções e nunca tive um problema real de obter boas referências ou conseguir um emprego.

Mas já estive por perto o suficiente para perceber que muitos dos piores programadores com quem trabalhei pensaram que eram alguns dos melhores. Programadores ruins, cercados por outros programadores ruins, parecem ser os mais iludidos.

Eu certamente não sou perfeita. Eu cometo erros. Eu sinto falta de prazos. Mas acho que faço o mesmo número de movimentos que os "outros bons programadores" fazem. O problema é que eu defino "outros bons programadores" como "pessoas que são como eu".

Então, eu me pergunto, existe alguma maneira de um programador fazer algum tipo de auto-avaliação razoável? Como sabemos se somos bons ou maus em nossos trabalhos?

Ou, se termos como bom e ruim são muito mal definidos, como os programadores podem identificar honestamente seus próprios pontos fortes e fracos, para que possam tirar proveito do primeiro e trabalhar para melhorá-lo?

Kristopher Johnson
fonte
Por que você quer saber? Ninguém pode definir o que é "bom". Se você realizar o trabalho conforme o esperado e for bem pago, isso é bom o suficiente.
Mert Akcakaya

Respostas:

325

Um bom programador entende que eles precisam continuar aprendendo e crescendo. Eles se esforçam para fazer o melhor possível, admitir falhas e aprender com elas.

Eles são extraordinariamente comunicativos. Eles não apenas são capazes de explicar termos técnicos complexos a um leigo, mas também se esforçam para atuar como defensores do diabo em suas próprias idéias, para garantir que estão dando as melhores opções para seus clientes.

Os melhores programadores sabem e aceitam que há mais de uma maneira de fazer as coisas, que nem todo problema é uma unha e que, porque sempre há uma maneira melhor de fazer algo do que o que eles estavam planejando, eles constantemente procuram aprender novas técnicas. , tecnologias e compreensão.

Um bom programador adora programar e o faria em seu tempo livre, mesmo que já gaste mais de 80 horas por semana em programação.

Um bom programador sabe que não é um grande programador. Verdadeiros programadores não existem; existem apenas aqueles que afirmam ser ótimos e aqueles que sabem que não são ótimos.

Adam Davis
fonte
5
Você acertou na cabeça! IMO!
13
E acho que um corolário mais geral é que você é bom no que faz quando se importa com o que faz.
7
Bem dito. Em relação ao ego / humildade, eu vim pelo MIT AI Lab nos anos 70. Os melhores codificadores tinham uma certa confiança humilde. Se você pensa que está fazendo algo importante, pode estar errado, mas, se não, provavelmente está certo.
Mike Dunlavey
4
Concordo parcialmente com o parágrafo 2, "Eles não são capazes de explicar termos técnicos complexos a um leigo ..." Conheço bons programadores. Mas eles não conseguiram explicar nada a ninguém fora do círculo. Nem eles podiam entender o que o leigo estava tentando dizer. Os dois se entreolham com os olhos de "veado nos faróis". Eu direi que eles são extraordinariamente comunicativos. Quanto ao restante dos seus pontos, resumirei dizendo que um bom programador é humilde e disposto a compartilhar seu conhecimento da melhor maneira que conhece.
IABstract
101
"e o fariam em seu tempo livre, mesmo se já gastassem mais de 80 horas por semana programando". Livre-se dessa afirmação tola e eu concordo completamente com o resto. Um verdadeiramente 'bom programador', percebe que, ao trabalhar com mais de 80 horas por semana, fazer algo diferente da programação (no tempo livre) é essencial para a saúde física e mental e a produtividade no trabalho.
91

Como Paul Graham aponta eloquentemente neste podcast , você não pode. Somente seus colegas de trabalho podem lhe contar.

Malach
fonte
4
Esta resposta é muito melhor do que o aceito ...
125
Seus colegas de trabalho não sabem se você é competente se eles são incompetentes. Eles vão pensar que você tem opiniões estranhas e argumentam apaixonadamente sobre assuntos irrelevantes.
2
Concordo, aguarde. Então ninguém pode lhe contar e você nunca saberá, a menos que consiga novos colegas de trabalho. Eu acho que não é gratificante, a longo prazo, trabalhar com ninguém que seja competente.
1
@keysersoze, mas se eu sou realmente incompetente meus colegas de trabalho pode ser competente e eu sou muito estúpido para realizá-lo;)
1
Paul Graham também escreveu um ensaio sobre grandes programadores, apontando que ele não consegue nomear grandes, já que nunca trabalhou com as escolhas óbvias (como Richard Stallman, Linus Torvalds, et al.).
David Thornley
59

Sempre achei que é mais fácil julgar seu desempenho fazendo duas coisas.

  1. Cerque-se de outros bons programadores
  2. Veja o quanto eles reclamam do código que você escreve.

A questão, é claro, é encontrar bons programadores e, em seguida, ser um bom programador também não se trata apenas de codificação. Você precisa ser capaz de trabalhar bem em grupos, mas também trabalhar sozinho.

Agora, para sair do tópico, citarei Robert A. Heinlein e sua opinião sobre o assunto:

"[Um programador de pontapé] deve ser capaz de trocar uma fralda, planejar uma invasão, massacrar um porco, conectar um navio, projetar um prédio, escrever um soneto, equilibrar contas, construir um muro, fixar um osso, confortar os moribundos , receba ordens, dê ordens, coopere, aja sozinho, resolva equações, analise um novo problema, adube estrume, programe um computador, prepare uma refeição saborosa, lute com eficiência e morra galantemente. A especialização é para insetos. "
- do Caderno de Lázaro Longo.

icco
fonte
12
meio que me lembra a citação: "Pessoas estúpidas se cercam de pessoas inteligentes. Pessoas inteligentes se cercam de pessoas inteligentes que não concordam com elas".
Sam Hasler
Atrevo-me a dizer que esta é a melhor citação de Heinlein no SO.
1
O problema é que outros programadores podem ou não estar no seu nível ou acima dele, mas podem não querer insultá-lo. Eu não tenham obtido muito na forma de feedback de três programadores que eu trabalhei com, e muito mínimas de 2 outras pessoas, uma que eu consideraria "bom" ...
4
... embora sejamos estereotipados como anti-sociais, outros programadores podem antecipar a defesa do código simplesmente não fornecendo feedback dos problemas com ele. O que pode realmente ignorar os problemas reais do código para não criar problemas sociais.
55

Esta é a Matriz de Competências para Programadores apenas para você: http://www.indiangeek.net/wp-content/uploads/Programmer%20competency%20matrix.htm

Ómega
fonte
Tenho 3-4 em 90% desses itens e não consigo codificar nada. Não é muito rápido, pelo menos.
-1 para a lista de compras.
6
-1 - o conhecimento de algoritmos é bom, mas não há como armazenar todas essas coisas na sua cabeça quando alguém o entrevista. É para isso que servem a wikipedia, o google e o stackoverflow.
1
Concordando que essa lista é principalmente inútil; é uma boa fonte de idéias se você estiver procurando por exercícios, mas não é muito útil na medida em que determina que você é um "bom programador". "Bom programador" é mais atitude do que lista arbitrária.
2
+1. Embora eu não concorde com o que foi dito acima, ainda acho que essa é uma lista muito boa. Obrigado por publicá-lo. Definitivamente, esses são os tipos de critérios nos quais eu avaliaria um programador se candidatando a um emprego. E @macnnicken, ele só vai para o nível 3. :)
EMP
38

Jeff tem um dos meus posts favoritos sobre este tópico ... Por que eu sou o melhor programador do mundo

"... não é nosso trabalho ser melhor do que qualquer outra pessoa; só precisamos ser melhores do que éramos um ano atrás."

codeConcussion
fonte
3
Eu gosto dessa citação, muito boa. E é disso que se trata a programação. "Seja melhor no que faz e conhece dia após dia."
1
Todos os anos, nos últimos 12 anos, lembro o código que havia escrito um ano antes e pensei que era uma merda. Talvez eu esteja fazendo algo certo! Não há nada pior do que um programador estagnado.
28

Eu acho que o fato de você estar fazendo a pergunta prova que você não é um programador ruim, portanto, na minha opinião, você está no meio do caminho. :)

Programadores ruins sempre pensam que são ótimos programadores, na minha experiência.

Nick Berardi
fonte
Quanta experiência você tem?
1
Minha experiência concorda com a sua, e é por isso que fico preocupado sempre que começo a pensar que sou bom.
precisa
21

A afirmação de Nick "Os programadores ruins sempre pensam que são ótimos programadores ..." é explicada pelo Efeito Dunning Kruger , que generaliza que as pessoas que sabem um pouco sobre um assunto geralmente superestimam o quanto elas realmente sabem.

Sendo um pouco ridículo ... quanto menos você pensa que sabe, mais provavelmente sabe ... a menos que seja um idiota realmente consciente.

Respondendo à pergunta original, embora eu costumo pensar que quanto mais influência (não controle) você tiver, geralmente é um bom indicador. Se você vir outros seguindo sua liderança ou adotando suas práticas, estará no caminho certo.

Mark Nold
fonte
O efeito Dunning-Kruger é terrivelmente humilhante. Eu gosto de tentar manter isso em mente sempre que me sinto bem com algo que fiz!
Bons programadores não fazem perguntas e votam nas respostas porque não gostam delas. Eles não agem como se soubessem tudo sobre um novo assunto e, quando um especialista responde a uma pergunta para ele, não o rejeitam porque não é o que eles queriam.
Eu gostaria de ter uma idéia sobre DK na faculdade, quando eu era um bom exemplo de uma extremidade do espectro!
darenw
18

A resposta que obteve mais votos positivos é realmente angustiante. Basicamente, ele diz que você não tem vida fora da programação. E a família? Comunidade? Hobbies? Em que tipo de profissão estamos onde você precisa se preocupar até o ponto de obsessão para ser considerado "bom"? Eu realmente acho que precisamos ter alguma perspectiva aqui.

Jack BeNimble
fonte
2
Concordo. Deveríamos nos esforçar para ser uma ótima pessoa antes de nos tornarmos um grande programador.
Bom lugar para se referir ao termo programador 501: hanselman.com/blog/…
ChrisFletcher 17/04/12
9

Eu não sou perfeito. Eu cometo erros. Eu sinto falta de prazos. Mas acho que faço o mesmo número de movimentos que os "outros bons programadores" fazem.

Só essa percepção faz de você um programador melhor do que a maioria dos programadores ruins por aí.

Muitos dos piores programadores tendem a pensar que já sabem tudo o que há para saber e não estão cientes de suas limitações. Como resultado, eles nunca melhoram suas habilidades.

17 de 26
fonte
9

Se você olhar para o seu código de, digamos, um ano atrás, e pensar: caramba, eu poderia ter feito isso muito melhor, você provavelmente é bom :).

Morph
fonte
Eu apenas olhei para o meu programa olá mundo e pensei que, agora é muito mais eficiente, estou bem? jks jks
9

Aqui estão alguns exemplos reais de má programação. Obviamente, código semelhante estava em todo o lugar, copiando / colando em 100 locais. O cara foi demitido, mas ouvi dizer que ele conseguiu um bom emprego novamente. Desfrutar:

a)

if (! TableObject.loadList("sql condition").isEmpty()) {  
    List<TableObject> myList = TableObject.loadList("sql condition");  
    ...  
}

b)

public static Type getInstance() {  
    if (instance == null) {  
        return new Type();  
    }  
    return instance;  
}

c)

getForeignKeyObjectProperty1() {  
    return ForeignKeyObject.loadByPrimaryKey(foreignId).getProperty1();  
}  

getForeignKeyObjectProperty2() {  
    return ForeignKeyObject.loadByPrimaryKey(foreignId).getProperty2();  
}  

...

getForeignKeyObjectPropertyN() {
    return ForeignKeyObject.loadByPrimaryKey(foreignId).getPropertyN();
}

d)

public boolean isHasImage() throws SQLException {
    StringBuilder query = new StringBuilder();
    query.append("select user_name");
    query.append(" from user");
    query.append(" where has_image = 1");
    query.append(" and user_name ='"+getUserName()+"' and user_image is not null");
    Connection c = Database.getInstance().getConnection();
    Statement st = c.createStatement();

    try {
        ResultSet rs = st.executeQuery(query.toString());
        if (rs.hasNext()) {
            return true;
        } else {
            return false;
        }
    } finally {
        st.close();
    }
}

Se você criar esse tipo de código, pare a programação. Se você não vir nada estranho nesse código, pare a programação. Caso contrário, você não é ruim, então você pode até ser bom :)

Edição: Para responder aos comentários: Eu consegui emprego antes de me formar, e esse cara já tinha alguns anos de experiência em programação. Ele foi demitido alguns meses depois de eu ter trabalhado, então não estava em posição de orientar ninguém. Os exemplos acima foram do topo da minha cabeça - toda a paz de código que ele tocava era falha de várias maneiras imaginativas. A maioria das coisas começou a surgir depois que ele saiu da empresa, porque só então outras pessoas viram algumas partes do código. Ele geralmente é um cara legal, agradável de conversar, etc. Mas NUNCA será um bom programador, assim como nunca serei um bom pintor, escritor ou qualquer outra coisa.

Para contrastar isso com outro exemplo, o cara que veio substituí-lo também estava na graduação. Ele estudou faculdade mais famosa por administração do que por programação. Ele não é muito nerd no sentido de que programou qualquer coisa por diversão ou se sentava em casa e lia sobre java ou programação, mas está indo muito bem. Ele se ajustou rapidamente e começou a produzir código útil e de manutenção. Algumas pessoas podem fazer isso, outras não - basta perguntar diariamente.

Slartibartfast
fonte
11
Qualquer pessoa pode postar código arbitrário e alegar que aqueles que não o entendem são estúpidos. Eu vou ficar na fila idiota.
20
Um bom programador levaria algum tempo (talvez 2 minutos?) Para explicar ao colega o que havia de errado com um código como esse.
4
Concordado, um bom programador teria apontado por que esse código era 'ruim' e teria ajudado seu colega a melhorar, em vez de zombar dele.
7
Espero que esse cara tenha encontrado um emprego em que seus colegas de trabalho o ajudaram a crescer, em vez de repreendê-lo.
Robert S.
8
@Morph: instancecampo nunca é atribuído um Typeexemplo e assim permanece sempre null=)
missingfaktor
8

Existem algumas coisas que você pode tentar, para obter uma melhor avaliação de como você se empilha.

  • Compare revisões de código. Veja cuja análise revelou mais problemas.
  • Pergunte quando foi a última vez que eles leram livros que eram periféricos ao curso normal de seus estudos. Então pergunte a si mesmo a mesma coisa.
  • Pergunte a si mesmo quem traz novas idéias para a empresa (e quão bem elas funcionam).
  • Por último (e menos), existe alguma forma de reconhecimento da empresa?

(Coloquei esse último porque, na minha última empresa, um programador recebeu "desenvolvedor do ano" duas vezes em três anos. Depois que ele saiu, encontramos pelo menos 20 trechos de código dignos de TDWTF. Ele desenvolveu o código rapidamente , mas não necessariamente bem A gerência simplesmente não sabia a diferença.)

Adam V
fonte
1
+1 em "comparar revisões de código". Parece uma coisa nova e muito prática de se fazer.
j_random_hacker
6

Permita que outros desenvolvedores com quem você trabalhe ou vejam seu código.

As pessoas realmente usam o que você gosta e vêem o que pensam.

- Kevin Fairchild

Kevin Fairchild
fonte
6

Você consegue entender isso?

if(rp->p_flag&SSWAP) {
	rp->p_flag =& ~SSWAP;
	aretu(u.u_ssav);
}

:-)

Iain Holder
fonte
Modded down ??!?!?!?! Alguém não conhece sua história. :-)
Iain Holder
5
Você não está preparado para entender isso
Isso é uma referência a alguma coisa? De qualquer forma, se for código C / C ++, você provavelmente quis dizer "& =" em vez de "= &" na segunda linha. (Eu digo "provavelmente" porque pela sobrecarga operador ~ () em C ++ você poderia fazer a compilação acima ... Mas eu tenho certeza que não é o que você pretende.)
j_random_hacker
1
@j_random_hacker Eu suspeito que = & esteja certo, pois esse código foi escrito por Dennis Ritchie. Veja cm.bell-labs.com/who/dmr/odd.html
Iain Holder
1
@IainMH, o dmr também admite que foi um buggy.
4

Apenas o simples pensamento de que você precisa se auto-avaliar faz de você um corte acima do resto.

Uma maneira de eu sempre me julgar é ouvir o que meus colegas de trabalho têm a dizer sobre mim. O truque é encontrar as pessoas certas.

Gulzar
fonte
4

É sempre subjetivo quem é um bom programador. Concordo com Nick que simplesmente fazer a pergunta é um passo na direção certa. Eu acho que o desejo constante de aprender mais e melhorar é o que faz um bom programador.

Ryan Lanciaux
fonte
4

Para mim, os melhores programadores nunca estão procurando trabalho. Eles têm ofertas permanentes para novos cargos apenas com base em sua reputação. Portanto, um bom programador pode receber ofertas de empregadores anteriores, se assim o desejarem. Ou um bom programador teria perguntado a ex-colegas de trabalho sobre vir trabalhar para eles em uma nova empresa.

Em termos de pontos fortes / fracos, você provavelmente já os conhece. Caso contrário, pergunte a uma pessoa mais experiente de sua equipe. Nem precisa ser um desenvolvedor. Um bom gerente de projetos conhece os pontos fortes / fracos dos programadores. Além disso, as características que definem um bom programador não se limitam apenas ao código. Noções básicas sobre negócios, habilidades de comunicação, discernimento etc. são realizadas fora do seu IDE.

MattH
fonte
2
Você pode ser um ótimo programador e uma pessoa horrível. Você prefere trabalhar com uma pessoa legal que talvez não saiba tanto, mas esteja disposta a aprender ou com um idiota total que seja um programador fantástico em todos os sentidos? Então, o que você descreve faz um bom funcionário, não um bom programador. ;)
2
Não entendo de onde vem esse comentário. As duas principais perguntas que estou abordando são 'Como sei se sou um bom programador?' e 'Como eu sei meus pontos fortes / fracos?' O que é toda essa conversa sobre idiotas e pessoas horríveis. Tenho opiniões sobre essas coisas, mas acho que elas não se relacionam com a minha resposta.
2
Obter uma reputação geralmente é mais uma questão de relações públicas e confiança do que a capacidade real.
David Thornley
Assumir "habilidade" é habilidade técnica; ser um bom programador é mais do que "habilidade real". Aptidão técnica é apenas uma peça do quebra-cabeça.
3

Eu acho que isso é como perguntar como você pode saber se você é uma pessoa legal.

Infelizmente, acho que a resposta é que apenas outras pessoas credíveis podem lhe dizer isso. Não acho que seja algo que você possa determinar com precisão (pelo menos é muito difícil - mas acho que pode ser impossível).

Ben Collins
fonte
3

eu diria simplesmente: se você é apaixonado (quero dizer, REALMENTE apaixonado) pelo que faz, se é flexível (outro idioma, nova tecnologia, remake completo de um projeto antigo - vamos fazê-lo!), se continuar aprendendo e melhorando suas habilidades e nunca, nunca pense que você é bom o suficiente para parar - então você é um bom programador!

agnieszka
fonte
3

95% de todos os programadores acham que estão entre os 5% melhores programadores, os outros 5% são gerentes. Portanto, se você é um gerente, provavelmente não é um bom programador; caso contrário, provavelmente é.

Hallgrim
fonte
... e 25% sabem que estão no topo 1%;)
3

Eu acho que é mais uma questão do que você faz com suas habilidades de programação. Ser um bom programador é bom, mas o que importa se você estiver codificando software bancário o dia todo (sem ofensas). Simplesmente não se soma.

Para realmente provar a si mesmo que você é um bom programador, assuma um projeto paralelo interessante e difícil. Isso mostra algumas coisas: você está interessado em programar em seu próprio tempo livre e realmente gosta do assunto - isso é essencial para ser um bom programador. Isso mostra versatilidade, pois você pode ampliar suas habilidades além do que faz no ambiente de trabalho. Também mostra motivação e criatividade: você definiu um problema por conta própria e está tomando medidas para resolvê-lo.

Todos esses aspectos definem um bom programador para mim.

Joey Robert
fonte
3

Minha resposta será politicamente incorreta. No entanto, sou realmente o fundador de uma startup e meu trabalho é contratar os melhores programadores.

Como sei quais pessoas serão bons programadores ou podem ser bons programadores?

1 palavra: QI.

O QI é para programação, assim como a altura é para jogadores de basquete.

Eu colocaria as habilidades de matemática como outros indicadores mais politicamente corretos. Meus professores de ciência da computação me disseram que há um critério que prediz corretamente quem terá sucesso nos cursos de programação. Pontuações de matemática do ensino médio. Esses são efetivamente QI de qualquer maneira.

Isso pode ser uma surpresa. Dizem-nos que a programação é um trabalho de graduação. Adivinha, eu não me importo com o diploma. Eu me importo apenas com 3 coisas.

  1. Habilidades de programação (que podem ser testadas).
  2. Aptidão.
  3. O senso comum (não muito baixo) as habilidades das pessoas.

Infelizmente, o QI mede apenas uma coisa. Então eu faço alguns testes.

Eu faço perguntas às pessoas. Pergunta simples, espero que o garoto do ensino fundamental seja capaz de responder.

Eu faço perguntas como:

  1. Qual é a distância entre o ponteiro curto e o longo do relógio às 7:35
  2. Se eu for de Jacarta a Semarang e quiser manter a velocidade de 60 km / hora. Então nas primeiras 2 horas eu dirijo 100 km / hora. Qual a velocidade que devo percorrer no resto da viagem para que minha velocidade MÉDIA seja de 60 km / hora?

Se você olhar com cuidado, essas perguntas não requerem criatividade. Apenas senso comum. Qualquer criança do ensino fundamental com QI pode responder a isso.

A maioria dos graduados da faculdade não pode. Agora imagine se alguém não puder responder a isso? Ele pode programar? Pense nisso. Quantas vezes você terá que especificar o que ele deve fazer?

Você também pode fazer perguntas como a Microsoft que exigem criatividade. Você pode fazer perguntas sobre como pesar 8 bolas em uma balança para saber qual é a mais pesada. O problema com essas perguntas é que isso envolve sorte. No entanto, alguns são bastante fáceis, deve ser um requisito mínimo.

Conseguir um programador incrível pode melhorar a moral de outros programadores. Conseguir um programador legal pode diminuir o moral de todos os outros.

Depois que as pessoas podem responder perguntas como essa, o que é muito fácil, eu as faria escrever algum código do Google Jam.

Bons programadores podem resolver o código do Google Jam e prever quais problemas são mais fáceis.

user4951
fonte
2

imho você é um bom programador se

-você tem uma sólida formação teórica. reinventar a roda, assim como um algoritmo ou estrutura, é uma perda de tempo, na maioria das vezes.

-Você pode ver coisas e problemas de uma perspectiva distorcida às vezes. isso pode levar você a encontrar soluções inovadoras.

- você gasta tempo e dinheiro com esforços para atualizar as melhores ferramentas e as melhores habilidades.

-se seu código é fácil de modificar. se você criar um código limpo, elegante e compreensível, modificá-lo não será doloroso.

-se sua taxa de código / bugs for razoavelmente alta. Sei que isso pode parecer trivial, mas conheço muitos desenvolvedores criativos e qualificados que, no entanto, são muito propensos a fazer bugs triviais. isso prejudica enormemente sua eficácia e utilidade.

as pessoas ao seu redor sabem que você pode ajudar a decidir quais escolhas fazer

-Você pode resolver problemas usando ferramentas diferentes. programadores ruins continuam usando a mesma ferramenta (seja uma linguagem, uma tecnologia, uma arquitetura etc.) para qualquer problema que possam ter

- você continua aprendendo, é curioso.

- você se diverte programando, depois de todos esses anos

pomarc
fonte
2

"Senhor, passei por isso de Alpha a Omaha, e digo que, quanto menos um homem souber, maior o barulho que ele faz e maior o salário que ele exige". Mark Twain

... minha conclusão é que bons programadores exigem um salário baixo e fazem pouco barulho ... :)

Ori
fonte
2

Melhor programador: conclua a tarefa com o menor número de instruções de código dentro do prazo.

Naveed
fonte
1

Quantos bugs seu código possui por alguma métrica? (ou seja, bugs por linha) Quanto do seu código precisa ser recodificado quando novos recursos precisam ser adicionados? Seus colegas de trabalho têm problemas para modificar seu código?

Em última análise, é quase impossível responder à questão, uma vez que a questão do "o que é código de qualidade" ainda é um assunto muito debatido depois de todos esses anos.

Torlack
fonte
1

Eu realmente gosto do que Adam V disse acima.

Além do que os outros disseram, observe o histórico de manutenção e suporte do seu trabalho. Se o seu código possui muitos requisitos de manutenção e está sendo constantemente corrigido ou é difícil de alterar, esses podem ser indicadores de sua qualidade. Mas esses também podem ser indicadores de requisitos insuficientes.

Bernard Dy
fonte
1
"Mas esses também podem ser indicadores de requisitos insuficientes". provavelmente nosso caso aqui. requisitos ruins nos fizeram reescrever um módulo inteiro.
1

É muito difícil auto-avaliar. Pessoas incompetentes tendem a ter avaliações inflacionadas de suas próprias habilidades.

Uma boa métrica é se outras pessoas que você respeita como programadores desejam trabalhar / com o código que você escreveu. Dada a chance de trabalhar diretamente com você ou de herdar o código que você escreveu, será recusado? Concorda de má vontade? Ou aproveite a chance de aprender com seu trabalho? Essa técnica funciona ainda melhor se for um colega, não um subordinado ou alguém que acha que pode haver algum benefício em fazer você se sentir bem.

Larry Gritz
fonte
1

Se você realmente deseja descobrir, envie algum código para seus colegas e peça uma revisão (construtiva) do código. Na pior das hipóteses, você aprende algo. O simples fato de você estar aqui neste site buscando a iluminação já o diferencia das massas não lavadas. (a menos que você esteja aqui apenas para afagar o ego. :-)

Sistema límbico
fonte