Como posso testar as habilidades de PHP em uma entrevista? [fechadas]

57

Minha empresa precisa contratar um desenvolvedor PHP, mas ninguém tem conhecimento de PHP na minha empresa e achamos difícil testar as habilidades de PHP. Se fosse um desenvolvedor C / Java, pediria a ele que escrevesse uma implementação rápida do Game of Life, mas o PHP é uma linguagem completamente diferente.

Eu vi este teste com interesse:

link

Alguém mais tem mais sugestões?

    
por Mascarpone 10.11.2011 / 00:07
fonte

3 respostas

70

Código

  • Peça ao candidato para escrever o código
  • Peça ao candidato para ler o código

Se você pedir ao candidato para escrever um código, certifique-se de que:

  • O código não é trivial, mas é pequeno
  • Você permite o acesso ao manual e à internet

Se você pedir ao candidato para ler o código, certifique-se de que:

  • O código tem alguns erros triviais
  • O código tem alguns erros não triviais
  • O código funciona bem, mas pode ser facilmente otimizado

Você pode usar três ou mais códigos diferentes, começar do mais simples e só avançar para o próximo se perceber que o candidato lida com facilidade. Faça uma recursão para apimentar as coisas.

Recursos

Peça uma lista detalhada dos recursos do PHP que o candidato usa. Livros, blogs, fóruns, revistas, etc. Foi assim que meus atuais empregadores descobriram sobre o StackOverflow .

Se o candidato menciona StackOverflow ou programadores, você NÃO deve perguntar ou tentar descobrir seu nome de usuário. Se quisessem divulgar sua reputação, teriam incluído um link Carreiras 2.0 em seu currículo.

Frameworks

Todo desenvolvedor PHP deve conhecer os frameworks mais populares do PHP:

e seja fluente em pelo menos um deles. Você pode ter algumas amostras de código prontas para cada uma delas e pedir ao candidato que as leia e explique, depois de lhe dizerem qual delas estão mais familiarizadas.

Depuração e & Perfil

Eu sempre senti que os desenvolvedores PHP não têm habilidades de depuração e criação de perfil (talvez apenas os desenvolvedores PHP com quem trabalhei). Se durante a discussão você descobrir que o candidato usa ativamente o xdebug , não se preocupe com o restante da entrevista e apenas os contrate. ;)

Sanitização de entrada

Isso é importante. Você pode começar com uma discussão sobre por que é importante e, em seguida, pedir os métodos mais comuns para alcançá-lo. Esta discussão irá ajudá-lo sobre o que pergunte.

Algumas dicas:

PHP snafus

Você pode encontrar muitos problemas com PHP nesta excelente discussão . Se você está entrevistando para uma posição sênior, você deve definitivamente perguntar sobre alguns deles. Alguns exemplos:

Manipulação do PHP de valores numéricos em strings:

"01a4" != "001a4" // true
"01e4" == "001e4" // also true

Código PHP válido :

System.out.print("hello");

No PHP, uma string é tão boa quanto um ponteiro de função:

$x = "foo";
function foo(){ echo "wtf"; }
$x(); # "wtf"   

Teste de unidade

Precisa dizer mais?

Conclusão

Um bom desenvolvedor PHP deve combinar uma variedade de habilidades & talentos:

  • Uma boa compreensão do HTTP
  • Um bom entendimento da configuração do Apache (mesmo se você usar um servidor da Web diferente em sua empresa)
  • Pelo menos uma compreensão básica de JavaScript
  • Um ótimo entendimento de HTML / CSS

A lista continua e continua. Certifique-se de adaptar a entrevista para as necessidades específicas da vaga de emprego, você não quer contratar apenas um bom desenvolvedor, mas um bom desenvolvedor que é ótimo no que você precisa imediatamente dele / dela fazer.

    
por 10.11.2011 / 04:01
fonte
43

O teste que você vinculou é interessante, e a resposta de Yannis Rizos é ótima, mas acho que também importante é isso:

Se você precisa de um bom desenvolvedor, não procure por desenvolvedor PHP. Procure por um bom desenvolvedor que conheça o PHP. Isso significa que, pelo menos, metade da entrevista você deve estar fazendo perguntas que não têm muito a ver com a sintaxe PHP ou funções PHP.

Pergunte a ele o que é MVC, o que é AJAX, como o HTTP funciona, como o REST funciona, como o SQL entra em funcionamento, algumas estruturas de dados, algumas noções básicas de desempenho (como você mede, como você melhora), testes básicos , XSRF, injeções, como você se defende), conhecimentos básicos de programação baseados em domínios típicos do PHP - web, redes, transformações de dados, etc.

Se ele é bom nisso, pergunte a ele para escrever um código simples, escolha uma tarefa fácil que não demore - como encontrar palavras com a maioria das vogais seguidas no texto ou inverter cada palavra no texto, ou multiplicando duas matrizes. Você também pode pedir a ele para implementar o Game of Life em PHP, se você quiser:)

Se ele passar por isso, então você pode prosseguir para questões de PHP mais complicadas, mas não coloque muito peso nisto. Ele pode ler a maior parte do manual, e o que ele não consegue ler, ele aprende rapidamente se é bom. O PHP é construído para ser simples, então se ele for um bom programador e tiver algum conhecimento funcional de PHP, ele provavelmente conseguirá alcançá-lo. Se ele sabe como programar em geral, então aprender como programar em PHP é mais fácil do que o inverso - saber minúcias de sintaxe do PHP não é importante se você não entende o que são testes de unidade ou como se livrar de problemas de XSS.

    
por 08.08.2012 / 09:05
fonte
12

Embora a resposta de Yannis Rizos seja boa, eu sei que não passaria no teste e Use essa resposta como um recurso para determinar onde focar para melhorar minhas habilidades PHP, acho que valeria a pena encontrar um amigo de programação que conhece PHP para participar do processo de entrevista. Todas as perguntas da resposta anterior são boas, mas sem algum conhecimento de domínio, será difícil avaliar a qualidade das respostas.

Dito isso, dependendo do que você precisa, como os outros disseram, o recurso de programação geral e o ajuste da equipe provavelmente são mais importantes do que o conhecimento específico da linguagem.

    
por 10.11.2011 / 15:06
fonte

Tags