Existe um super programador? [fechadas]

14

Você já se deparou com um super programador? O que o identifica como tal, comparado a programadores experientes / ótimos "normais"?

Além disso. como você lida com uma pessoa em sua equipe que acredita ser um super programador? Tanto no caso de ele realmente ser ou não?

Edit : Entradas interessantes em todos os aspectos, obrigado. Algumas coisas podem ser recolhidas:

Algumas definições surgiram. Desconsiderando definições muito localizadas (que identificaram os autores ou seus conhecidos como super programadores), gostei de algumas definições:

  1. Definição de Thorbjørn : uma pessoa que faz o equivalente a uma boa equipe de forma consistente por um longo tempo.

  2. Elétron livre, ligado a partir da resposta de Henry . Uma pessoa muito produtiva, de habilidades excepcionais. A explicação é uma boa leitura.

    Um elétron livre pode fazer qualquer coisa quando se trata de código. Eles podem escrever um aplicativo completo a partir do zero, aprender um idioma em um fim de semana e, o mais importante, podem mergulhar em uma pilha enorme de código espaguete, entender o sentido e realmente fazê-lo funcionar. Você pode construir um negócio inteiro em torno de um elétron livre. Eles são tão bons.

    Contrastando com a última definição, é o ponto vinculado por James sobre o mito do programador genial ( vídeo ). A mesma idéia é expressa como programação sem ego no comentário de rwong. Eles apresentam opiniões opostas sobre como otimizar para um programador único ou para uma equipe.

Essas definições são definitivamente diferentes, então eu agradeceria se você tivesse uma opinião sobre qual é a melhor. Ou adicione seu próprio, se quiser, é claro, mas ajudaria a dizer por que é diferente deles.

Muhammad Alkarouri
fonte
3
Sim, e seu nome é John Carmack .
Gary Willoughby
1
Eu tenho uma lista de 4 elétrons livres em um pequeno pedaço de papel trancado na minha mesa.
Henry
Se 'super programador' == 'programador genial' clicar em google.com/events/io/2009/sessions/MythGeniusProgrammer.html
James
Veja a resposta de Jeff sobre programação sem ego .
Rwong 27/10/10
Gostaria de acrescentar uma idéia do livro The Mythical Man-Month, en.wikipedia.org/wiki/The_Mythical_Man-Month , foi citado um trabalho de pesquisa que indica um ótimo programador várias vezes melhor do que um bom. Não me lembro de todos os detalhes, mas obviamente há muito valor em alguém que pode produzir em uma equipe, ordens de magnitude mais do que outras.
Travis

Respostas:

17

Eu consideraria o termo "super programador" apenas para aqueles que podem fazer um trabalho que geralmente requer uma equipe de bons programadores e fazê-lo de forma consistente por um longo tempo.

Isso vale tanto para escrever código de alta qualidade (documentação, testes etc.) quanto para resolver problemas muito difíceis que exigem muito conhecimento e talento para serem resolvidos.

Mas isso requer um alto desempenho em todas as contas por um longo tempo. Para quem escreve toneladas de código que ninguém pode entender e manter, o termo não é aplicável.

Como lidar com? Se você realmente tem uma pessoa assim, faça tudo o que puder para fornecer os andaimes necessários para a pessoa se destacar. Isso significa afastar coisas irrelevantes e fornecer os recursos de que a pessoa precisa. Observe que eu descobri que artistas com desempenho muito alto tendem a ser humildes.

Infelizmente, é muito mais provável que você tenha uma pessoa que pensa que é um super programador e não é. A maneira de lidar com isso está na minha experiência para tornar seu desempenho mensurável. "FindBugs pode não encontrar problemas", "Todo o código deve ter testes correspondentes aos casos de uso", "Revisão por pares".

Se o código for realmente difícil de entender, considere as reuniões semanais em que o não-super programador explica qualquer código que ele escreveu desde a última reunião que alguém pode solicitar anonimamente que tenha explicado e qualquer pessoa pode rejeitar anonimamente por ter aceitado no base de código para que seja impossível de manter. Então, pelo menos, você compartilhou a mentalidade e permitiu que futuros mantenedores vetassem um pedaço de código. Isso também indicará fortemente ao programador que tipo de código o levará a fazer um trabalho extra.

(EDIT: A razão para o bit anônimo, é evitar que o programador não seja tão super retaliar aqueles que se opõem a ele).


fonte
2
Excelentes pontos, exceto pela entrada anônima. Se a equipe realmente se unificar, e o "superprogramador" entender se ele realmente está à altura da definição, eles precisarão aprender os pontos fortes e fracos de cada um para trabalhar juntos para o sucesso da equipe e do software. e para criar confiança. É uma questão de se abrir para as críticas dos outros (como é feito até certo ponto aqui) para alguém encontrar e corrigir seus defeitos como superprogramador.
Huperniketes
@Super, o anonimato é evitar que isso se torne pessoal no começo. Se você acredita que é sobre-humano, pode não aceitar muito bem as críticas (ou essa pergunta não teria sido feita em primeiro lugar).
2
@ Thor, já é pessoal quando você lida com o que alguém acredita sobre si mesmo. O anonimato torna a confiança muito mais difícil de desenvolver. Os membros da equipe precisam confiar que podem ser honestos, que críticas são bem-vindas e que opiniões importantes estão sendo divulgadas.
Huperniketes 23/10/10
Um super programador acharia mais fácil ou mais difícil explicar o código a um programador júnior? Se a diferença for grande, a explicação pode ser difícil. Não seria?
Muhammad Alkarouri 23/10/10
1
@ Muhammad, considerando que minha definição é que um super programador grava código limpo e de manutenção com boa documentação, que até um programador júnior pode entender (exceto algoritmos muito complexos que são menos necessários em Java devido às coisas disponíveis no tempo de execução, então eu não os considero). Eu pensaria que seria tão fácil, mas talvez demore mais, explicar a um programador júnior.
5

Um superprogramador é qualquer pessoa que possa gerar código mais rapidamente que um compilador em alta velocidade, mais poderoso que uma função recursiva e capaz de saltar sobre pilhas FIFO em um único limite.

O modo como você lida com uma pessoa em sua equipe que acredita que ele é um superprogramador é expondo-o à sua única fraqueza - a luz do sol.

Chetan
fonte
5
@Chetan: O que é uma pilha FIFO?
rwong
3
@Chetan: esta é uma resposta inútil. Talvez você não tenha trabalhado com programadores que são tão incríveis, você começa a se perguntar se é digno.
JBRWilkinson
Um superprogramador deve viver na nuvem e fornecer uma API pública para o seu Mind Query Language .
rwong
@rwong pilha que entra e sai, também conhecida como fila.
alternativa
1
@mathepic: se você pode chamar uma fila de pilha, isso significa que LIFO e FIFO são a mesma coisa? (parafraseando Lincoln)
rwong 25/10/10
3

Peça à pessoa para escrever um capítulo de si mesma no estilo Coders at Work . Envie para um editor. Se for rejeitado, a pessoa não é um super programador.

rwong
fonte
O inverso da sua afirmação é verdadeiro? (Se for aceito, você pode assumir que ele é um super programador?) Acho que isso poderia ser útil.
alternativa
Perdi qualquer respeito pelo autor desse livro, assim que li que ele já foi o "arquiteto de um sistema de mensagens transacionais baseado em Java". Bem, pelo menos ele teve o bom senso de deixar o emprego.
Dan Molding
1
@ Dan Molding: Contanto que ele desligue e permita que os programadores que ele está entrevistando naquele livro falem, eu não me importo com o que ele afirma. (Acabei de comprar esse livro e estou ansioso para lê-lo. Espero que seja tão bom quanto eu acho que é). =)
gablin
A idéia é boa, mas os editores tendem a aceitar programadores famosos em vez de super programadores. Corrigir?
Muhammad Alkarouri 23/10/10
@ Alkarouri: se super tem o mesmo significado que em superstar , então sim, ser um super programador significa ser famoso também.
rwong
2

Há quem possa produzir mais resultado que outros.

Existem aqueles que podem produzir produtos com uma taxa de defeitos mais baixa do que outros.

Aqueles que conseguem CONSISTENTEMENTE produzir mais, com taxas de defeitos inferiores ao normal, podem ser chamados de Superprogramadores.

Ser conhecido ou pensado como tal geralmente é apenas aparente para um gerente esclarecido com o benefício da visão posterior.

Alguém que considera um superprogramador provavelmente tem um grande ego e pensa que é bom. Isso não os torna bons.

Atitude <> Habilidade.

rapid_now
fonte
1

Super programador: uma pessoa com inteligência acima da média, com uma forte dedicação à programação. Estou falando de uma pessoa que passa muito tempo programando, não sai facilmente e está determinada a resolver um problema específico. Essa pessoa raramente dorme se houver um problema / bug pendente. Super programador escreve código eficaz, rápido e confiável. O super programador possui um conhecimento extenso e aprofundado de pelo menos uma linguagem de programação (e tecnologia), é hábil em algumas outras e pode aprender rapidamente tudo o que for necessário.

Maggie
fonte
0

Você já se deparou com um super programador? O que o identifica como tal

Dos programas / projetos que criaram , o código fonte, o estudo realizado.

acredita que ele é um super programador

Como você diz que ele acredita nisso, é muito difícil fazê-lo não acreditar. O pior é que essa pessoa parou de ser um programador melhor, porque acha que tudo está pronto é super e interrompe a evolução dele. O que é pior do que isso na programação. De qualquer forma, você sempre pode pedir provas ... e perguntar a ele com quem ele / ela se compara para assumir que ele / ela é super.

Aristos
fonte