Pergunta

Em uma entrevista anterior eu fui a pergunta: 'De 0 a 10, como você classificaria a si mesmo como um programador?'

Eu achei uma pergunta muito difícil de responder porque eu não tenho conhecimento de uma métrica para medir o quão bom minhas habilidades são. Além disso, sabendo quão bem você executa seria útil para entender o que você precisa melhorar para ser um programador melhor.

Então, há uma maneira de saber o quão bem você faz o seu trabalho?

Foi útil?

Solução

Chamar seu empregador anterior e falar com quem herdou todo o seu código de idade. Eles vão dizer-lhe como bom de um programador que você é. ;)

Outras dicas

Essa é uma pergunta difícil. De um ponto de vista puramente introspectivo, eu acho que uma das melhores métricas de "boa programmership" é esta: Quanto você desfrutar de seu ofício? Eu conheci muitos desenvolvedores, alguns deles muito bom, mas eu nunca conheci qualquer , que era um desenvolvedor de 9-5 e nada conseguiu melhor do que resultados medíocres.

Claro que, olhando para dentro não é a melhor maneira de medir a competência. I deve pensar que seus colegas programadores seria capaz de lhe dar uma resposta bastante sólida. Não há etiqueta social envolvido no fraseado tal pergunta um, mas o potencial ainda está lá. Na minha experiência, aqueles que trabalham com vão ter a melhor compreensão de quão bem você está fazendo, mesmo porque eles são os únicos que têm que limpar a bagunça se você cometer um erro. : -)

petisco final: a programação é a resolução de problemas, puro e simples. Pense em como você se aproxima de problemas difíceis que surgem em seu caminho. Em primeiro lugar, como você reage emocionalmente a um desafio difícil? E segundo, o que é o seu código vai parecer? Você apenas cortar o seu caminho cegamente através da selva até chegar ao alguns tipo de resultado, ou é a sua abordagem metódica, bem medidos e (mais importante) muito pesquisado? Os realmente bons programadores não são os únicos que sabem tudo, ou que possam implementar o algoritmo de Dijkstra em oito idiomas frio, eles são os únicos que passam horas derramando sobre livros de texto e blogs obscuros para encontrar essa pequena pepita de uma idéia que só acontece a ser crucial para o assunto em questão. Se você tiver a paciência e paixão para trabalhar o seu caminho através de um desafio profundo, bem como a humildade de olhar para os outros para idéias, então você está bem em seu caminho para que "10".

10 -. Você não sabe o que você realmente não sabe nada

9 - Você está apenas se vangloriando, e você provavelmente não são tão bons quanto você pensa que é. Mesmo se você é realmente bom assim, você não tem as habilidades políticas para ver o que a escolha de um "9" diz sobre você. Isso, ou você está muito bem conhecido / adorado na indústria (ou seja, você escreveu um livro uma vez, e ele tem um apelido como "A ______ Book" ou uma sigla que a maioria dos desenvolvedores reconheceria instantaneamente), e não tem medo de jogar ao redor seu nome.

8 -. Você está muito bom e você sabe disso, mas você é inteligente o suficiente para perceber o estigma de escolher 9 ou 10. É melhor ser capaz de guardá-lo

7 - Você é muito bom, mas você sabe que tem muito a aprender

.

6 - Você é competente e tem muito a aprender, mas não são muito confiante em suas habilidades. Tem certeza de que não estão a 7?

5 - Decent dev júnior. Você é apenas fora da escola, e suficientemente inteligente para perceber que você realmente não sei nada sobre programação do mundo real, mas você sabe como cortar juntos código.

4 - Medíocre dev júnior. Você é apenas fora da escola, mas suas habilidades de codificação básicos deixar algo a desejar. Você teve um tempo difícil apenas passando a maior parte de suas aulas de programação, mas por alguma razão decidiu que você ainda quer seguir uma carreira no desenvolvimento de software. Também realmente não acreditar em si mesmo, então por que um entrevistador?

3 ou abaixo -? Se você tem tão pouca confiança na sua capacidade de programação, por que você está aplicando para trabalhos de programação

Portanto, a resposta "correta" é provavelmente 5-7, dependendo do tipo de trabalho que você está entrevistando para. Um 8 tem experiência suficiente para que ela não estaria fazendo esta pergunta.

Esta questão entrevista não é realmente sobre como você é bom como um desenvolvedor. É sobre o quanto a auto-consciência que você tem, e como você justifica (para o entrevistador), independentemente do valor que você colocar para frente.

O caminho certo para responder a esta pergunta durante uma entrevista (em oposição a uma resposta filosófica) é escolher suas áreas fortes e produzir algumas boas evidências para dizer que você está no topo X% dos desenvolvedores nessas áreas específicas.

Por exemplo, pode-se dizer que na criação de software confiável, você está no topo Y%, porque essa é uma das suas especialidades. Então você poderia dar alguns exemplos. Alternativamente, você pode dizer que uma forma razoável de julgar habilidades de desenvolvimento é quanto dinheiro se ganha.

O que você não deve fazer é levar a questão literalmente. Isso não é normalmente o que o entrevistador quer.

Como alguém que entrevistas potenciais desenvolvedores, eu diria que em qualquer lugar entre 6-8 seria a resposta mais segura para essa pergunta. Imagino que a resposta média é de cerca de 7. Eu acho que é muito mais para eliminar o incompetente (0-5) ou o ignorante (9-10). Se você decidir resposta 9+, estar preparado para provar isso.

Se você está procurando realmente a responder seriamente a questão para si mesmo, eu diria que o programador de Competências Matrix é um excelente ponto de partida para as áreas tal avaliação deveria abranger.

Eu sabia que alguém que usou essa pergunta entrevista durante anos. Ele disse que os melhores programadores tendem a avaliar-se em torno de um 7. Em determinadas pessoas que se avaliado a 10 era geralmente tão confiante de suas habilidades, porque eles nunca conheceu realmente um bom programador. Mas tendo nunca conheci um, quem seriam eles já aprendeu todas as habilidades reais de? Existem, é lógico, exceções. Mas se você está em sintonia com a comunidade, você provavelmente sabe que as exceções são.

Este fenômeno, aliás, não se limita a programação. Eu achei verdadeira em vários tipos de coisas. As pessoas que se auto-rate-se 10 de 10 geralmente não são muito bons. Pessoas que são muito bons em X são boas, porque eles têm encontrado outras pessoas que são bons em X e, portanto, vão comparar-se a um grupo de colegas mais difícil e não vai geralmente auto-rate no 10 eu encontrei este verdadeiro para valores de X lugares tão distantes como jogar ping-pong ou xadrez.

Parece haver três níveis de proficiência com qualquer linguagem de programação:

  1. Você corrigir erros de sintaxe imediatamente e sem qualquer esforço mental duro
  2. Você pode ler outro código povos e trabalhar para fora sua intenção, sem 'traduzir' o código em linguagem natural (ou alguma outra linguagem de programação)
  3. Uma vez que você entender um problema que você pode expressar-se naturalmente nas construções fornecidos pela linguagem (imperativo, OO, funcional ...)

Eu acho que isso leva você ao longo da escala de 1 -> 10

Vale a pena notar que o conhecimento profundo de uma língua pode ficar no caminho de aprender outra. Porque uma vez que você pensar em termos de linguagem 'A' você tem que reprogramar seu cérebro para aprender a língua 'B'. Obviamente, isto só se aplica quando se deslocam para um tipo completamente diferente, por exemplo, de programação C-> C ++, C # -.> F #, em Java> Scala etc ... Então eu não acho que é possível ser um 'programador perfeito' no resumo

Seu projeto classificação Euler pode dar uma ideia (não suas habilidades, mas sua paixão sobre não desistir até o fim):

http://projecteuler.net/index.php?section=problems

Uma abordagem inteiramente válida para o "como você classificaria a si mesmo a partir de 1 - 10" é apontar o href="http://www.apa.org/journals/features/psp7761121.pdf" rel="nofollow problema inerente com a auto-avaliação . Para resumir os resultados dos experimentos em que o papel fascinante:

  1. Quase todo mundo se classificaram como acima da média. Pelo menos 50% dessas pessoas eram ou desonesto ou iludido.
  2. As pessoas que são realmente no top 25% freqüentemente empurrar-se para a faixa de 50-75% (ou seja, eles classificam-se artificialmente baixo).
  3. As pessoas que estão na faixa de 50-75% tendem a avaliar-se de forma mais precisa.

Você poderia razoavelmente resumir isso como 50% das auto-avaliações são mentiras e outros 25% estão errados. Assim, você pode optar por pedir o drone entrevista, se eles são ou desperdiçar o seu tempo ou avaliar psicologicamente ....

Além disso, sabendo quão bem você executa seria útil para entender o que você precisa melhorar para ser um programador melhor.

Na verdade, saber o que você precisa para melhorar é importante entender o quão bem você executa. Basta olhar para as pessoas que trabalham com ou interagir e tentar descobrir quais são as coisas sobre eles que você gostaria de ver-se fazer melhor. Que lentamente vai ajudá-lo a se tornar um programador melhor. À medida que crescer olhada outras equipes e códigos fonte (outros projetos de código aberto) para ajudar a melhorar a si mesmo mais.

Eu acho que a melhor maneira de possivelmente responder à questão de classificar a si mesmo é dizer que eu me taxa em x percentil wrt todas as outras pessoas com quem trabalhei.

A resposta curta é, você medir-se contra seus pares. Ou seja, ter alguém que não sabe nada e atribuir um 0, tirar o melhor programador que você conhece pessoalmente e atribuir um 10 - Como você se considera em comparação com essas duas pessoas? Perto do melhor? Isso seria um Oriente 8.? que seria a 5.

Apenas não responder a 0 ou 10 e tentar ser objetivo. O ponto da questão não é você avalia como um programador, mas classificar suas habilidades em auto-avaliação. Sua visão, isso é.

Há apenas uma métrica para medir um bom programador: LOC / hr. Cada outra métrica é supérfluo: p

Se as pessoas queixam-se que você não tem nada no seu prato, enquanto vários de seus sistemas de software estão em produção, o que significa simplesmente seus sistemas foram bem projetados e bem codificadas, e, ao contrário de outros macacos de código corporativo, você não tem uma fila de 6 meses de bilhetes de problemas mantê-lo ocupado.

Se este for o caso, dar palmadinhas nas costas. Você fazer um bom trabalho.

Lembre-se, software não é feito até que ele está ganhando dinheiro.

Como entrevistador, eu faria essa pergunta para ver como elequent um candidato está em expressar-se.

Além disso, mostrar como auto crítica que são e que tipo de padrões que eles estabeleceram para si próprios e seus colegas companheiros.

não só dizer o quanto eles sabem sobre Deus / má programação que lhe diz o quão bem eles estariam interagindo com um cliente para requisitos extrato e quão bom um jogo que eles são para o resto da equipe.

O Rank real 0-10 é muito menos importante.

Eu acredito que é importante não superestimar a importância do conhecimento da língua.

As maiores habilidades que um programador pode ter são nas áreas de resolução de problemas e design. No momento em que você começa a realmente usando o idioma que você escolheu, é quase apenas digitando. (Aceitando que uma área que você espero que usou seus problemas e habilidades de design problema é no layout do seu código, para resolver o problema de legibilidade e manutenção)

Assim, a medida de um programador é o quão bem eles podem trazer uma gama díspar de ideias ou questões em conjunto para resolver um problema particular. Mais habilidade é potencialmente apenas adicionando áreas de conhecimento que podem ser desenhadas em cima.

Claro que nada disto ajuda como uma métrica para determinar a sua própria habilidade - mas outros já disseram que é muito bem uma pergunta un-metricable de qualquer maneira. : -)

Se você quiser um byte de som para uma resposta:

Quando comecei a trabalhar profissionalmente eu era provavelmente a 2, Agora eu diria que eu estava em torno de um 7, mas todos os dias eu estou trabalhando para chegar a 10.

As palavras por minuto.

Na minha opinião este é um disco (e no contexto de uma entrevista de um mesmo DESLEAL ) pergunta! Eu tenho trabalhado por três empresas diferentes até agora. Cada onde eu conheci muito poucos programadores excelentes (muito melhor do que eu), muitos bons programadores e alguns programadores que devem mudar para melhor. Mas é impossível colocá-los em categorias de 0 a 10!

Há muitos "dimensões da bondade" para ser um programador; o processo de avaliação iria variar dependendo do que você estiver interessado em Aqui estão algumas idéias:.

  1. proficiência técnica: Vai comprar um bom "livro de receitas" de referência de estilo sobre o / a linguagem que você usa principalmente; para cada tarefa discutido no livro, primeiro escrever a sua própria solução e, em seguida, compará-lo com o (s) oferecido no livro.
  2. velocidade
  3. Desenvolvimento: Inscreva-se em TopCoder e trabalho através de seus problemas armazenados ou participar em um tempo real concorrência.
  4. Participar de uma equipe de desenvolvimento: Compre o almoço para um de seus colegas de trabalho confiáveis ??e pedir a ele / ela para uma avaliação honesta de si mesmo como um membro da equipe (por exemplo, "O que você vê como os meus principais pontos fortes e fracos como um membro da nossa equipa? o que você sugere que eu faça para melhorar? ") [ Se não há ninguém em sua equipe que você poderia ir para uma tal discussão deles talvez que lhe diz algo sobre esta questão . ]
  5. As habilidades de comunicação: Sente-se com um colega de trabalho que é não um desenvolvedor e pedir para ela / suas opiniões sobre seu projeto atual. Preste atenção; considerar o quão bem ela / suas percepções corresponder ao seu próprio.
  6. Estimativa: Todas as manhãs, fazer uma nota ( somente para seus olhos ) sobre o que você espera para realizar esse dia e quanto tempo você esperar que ele tome. No final do dia, comparar a nota com o que realmente aconteceu para ver quão longe você estava. Para melhorar nesta área, pensar em razões para as diferenças eo que você poderia considerar que teria feito seus palpites mais preciso.

Você sempre pode competir com colegas programadores e ver o quão bem suas habilidades de pensamento são. Você pode tentar os sites como www.topcoder.com ou www.spoj.pl ou wwww.codechef.com eles lhe fornecer fileiras e você pode ver o quão bem você faz. No entanto, estes puramente testar seus cérebros algorítmica e não do jeito que você código. Se eu foi feito esta pergunta eu diria que eu sou um aprendiz constante e acreditamos em fazer e corrigir erros, eu não tenho medo de auto criticar meu código, nem eu sou hesistant em pedir aos outros para apontar meu erro, você pode decidir qual escala é que isso se sentar.

Definir uma escala de 100%.

Identifique-se como ficar na marca de 100,0.

Identificar posições de outros desenvolvedores e personalidades famosas de TI.

Calcular com o quanto você é melhor.

Eu tenho feito essa pergunta um par de vezes. Quando eu acabei de sair do time do colégio eu disse 7/8. Agora que tenho vindo a trabalhar há alguns anos eu digo 4 mesmo que eu acho que eu sou agora infinitamente melhor.

Não vejo o 0-10 como um gráfico de linha reta. Eu vejo isso mais como gráfico exponencial. Tão certo eu continuo a dizer em 4 de dez, mas eu acredito que eu sou melhor do que 90% dos codificadores lá fora. Tenho visto alguns dos seus trabalhos e isso me assusta. Eu tenho trabalhado na banca software SSL software e é assustador que ele realmente funciona. Então, há aqueles 10% de codificadores lá fora, que são melhores do que me muito melhor do que eu. Não tenho a certeza se eu nunca vai alcançá-los. Para chegar a 4 na minha opinião é fácil. Maneira mais difícil de obter a 5. De 5 a 6 é incrivelmente assustador.

Grandes codificadores que são dignos de um 8, 9 ou 10.

Experience. A ampla gama de experiência que você tem "o melhor" você é. Você só sabe o que você já experimentou.

O tamanho ea complexidade do sistema que você desenvolveu (ou trabalhado com sucesso dentro sem corromper).

valiosa discussão bonita aqui. Amei. I como um entrevistado, gostaria de dar resposta a esta como a seguir.

Eu gostaria de analisar a questão em primeiro lugar.

A análise é dependente de algumas coisas como a linguagem, estrutura, natureza do problema, (Eu sou PHP e Wordpress cara assim resposta é neste contexto) 1. plug-in trabalho do remendo, 2. construir a partir do zero, uso 3. API

A minha abordagem comum seria (na maioria dos casos) 1. compreender o alcance dado (ou já construído) da funcionalidade (em relação à declaração do problema atual) 2. imputando um dos melhor maneira de resolver (há definitivamente mais de uma maneira cada vez ...) 3. codificação 4. testando em cenários de tempo real (para ajuste de desempenho) 5. nos estágios iniciais de qualquer programador, todos os quatro passos são recursiva até obter uma solução final, mas como a experiência cresce, 1 2 etapas torna-se recursiva.

Aptidão da filosofia fundamental compreensão de qualquer língua é imp. O descanso é atitude resolução de problemas.

E, em PHP, eu acho que estou 6.5.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top