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:
Definição de Thorbjørn : uma pessoa que faz o equivalente a uma boa equipe de forma consistente por um longo tempo.
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.
fonte
Respostas:
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
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.
fonte
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.
fonte
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.
fonte
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.
fonte
Dos programas / projetos que criaram , o código fonte, o estudo realizado.
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.
fonte