Como hipótese, se eu fosse entrevistar alguém para uma nova posição de desenvolvedor PHP quando minha experiência estiver no .NET, como posso determinar se o exemplo de código que eles me forneceram é eficiente e de boa qualidade?
Em outras palavras, qual é a melhor maneira de avaliar o código de um programador se você não estiver familiarizado com o idioma?
code-quality
interview
code-reviews
Jason Towne
fonte
fonte
Respostas:
O que você não poderá avaliar é o uso correto dos idiomas e o uso da biblioteca. Portanto, essas não são coisas que você deve tentar examinar.
O que você pode avaliar é:
Os pontos acima (embora não exaustivos) indicarão se o código cheira ou não e deve ser algo que um programador experiente possa identificar como bom ou ruim.
Em resumo - procure por coisas que devem indicar um bom código, independentemente do idioma.
fonte
Faça com que eles o apresentem como parte da entrevista. Você tem a desculpa perfeita para perguntar e isso mostra um pouco de como eles pensam para ver como eles explicam.
Se eles vão pular para o seu idioma preferido, você sabe que tem muitas mentorias por vir, portanto, deve procurar, acima de tudo, boas habilidades de lógica / raciocínio.
Se eles continuarem trabalhando no idioma preferido, você terá que aceitar que eles me autogerirão nos detalhes específicos do idioma até que alguém acelere de qualquer maneira, para que tudo o que você precise interagir com o lado do design também.
fonte
À parte, código óbvio / obviamente errado, eficiente dependerá em grande parte do compilador / intérprete do idioma em questão, e você realmente não será capaz de observar isso de um exemplo de código. Um exemplo de código pode ser lindamente escrito e elegante como porcelana fina em toalhas de mesa, mas fica lento se compilado / mal interpretado.
Você não poderá avaliar o uso idiomático dos recursos de idiomas / açúcar sintático / convenções sem alguma familiaridade.
Você deve saber se está bem escrito em geral com base em considerações universais, como limpeza, fluxo de controle, nomeação de variáveis, ordem das operações e assim por diante.
No entanto, mais praticamente, se você souber o que o idioma vai seguir no processo, tente encontrar um ou mais guias de estilo para esse idioma, vá até a livraria e folheie alguns livros para esse idioma e passe os exemplos de código à procura de análogos para algo que você conhece com o (s) idioma (s) de sua escolha, verifique um ou mais projetos de código aberto que usam esse idioma e assim por diante.
Se você tiver tempo e se não houver uma barreira de custos, poderá chegar a configurar um ambiente de desenvolvimento para esse idioma e ativar um aplicativo Hello World, criar um kata de código ou escrever um aplicativo simples iniciar. Você desenvolverá um quadro de referência rudimentar com muita rapidez e isso não apenas fornecerá uma vantagem para o objetivo específico de revisar o código em questão, como você poderá ser compelido pelo idioma e se ramificar um pouco.
fonte
Independentemente do idioma:
Não estou dizendo que qualquer código que não possua tudo isso é automaticamente ruim, mas eu consideraria esses indicadores de alguém que refletiu e considerou sua prática.
No entanto, para todos esses indicadores, você deve perguntar qual é a lógica do código. Pode haver uma boa razão específica de idioma para suas escolhas ... e depois disso, o google é seu amigo quando eles e os outros candidatos vão embora, pois você pode verificar se o que eles disseram parece plausível ...!
Boa sorte, pois contratar pessoas boas é um dos papéis mais importantes em sua organização;)
fonte
Você deve perguntar a alguém que conhece o idioma em questão para vir à entrevista ou dar uma olhada na amostra. É provável que essa pessoa encontre os pontos negativos, se houver.
O candidato vai trabalhar em equipe? Deixe os membros da equipe encontrá-lo e fazer perguntas sobre suas habilidades.
fonte
Pergunte-lhes sobre as limitações que eles encontraram ao usar o idioma. Peça a eles para mostrar uma consulta SQL simples. Qualquer desenvolvedor Php digno de uma piada deve ser capaz de realizar uma consulta básica de seleção / atualização / exclusão sem muito esforço.
doug
fonte