O que é uma boa pergunta para medir a capacidade de abstração do candidato? [fechadas]

5

Faz parte do meu trabalho entrevistar novos candidatos e eu fiz um teste que praticamente mede as habilidades de codificação dos candidatos. No entanto, não pude (ainda) apresentar uma boa pergunta para medir a capacidade do candidato de lidar com a abstração.

Anteriormente, tive a seguinte pergunta no meu teste:

Suppose a tree structure where each node stores an integer value. Draw the simplest Class Diagram using UML that represents the domain model described.

Então eu perguntaria:

Now change the model on question above to represent a leaf (i.e. a node that has no children).

Eventualmente, depois de várias entrevistas, percebi que essas duas perguntas não me davam nenhuma pista se esse candidato soubesse de abstração. Algumas pessoas sabiam a resposta, mas durante a entrevista mostraram-me que na verdade não têm a menor idéia quando se trata de abstrair assuntos mais complexos.

Eu não posso ter uma pergunta complexa muito profunda neste teste porque:

  1. O tempo total para o teste inteiro é de ~ 2h e eles já gastam cerca de 1h a 1h30 na primeira parte (habilidades de codificação)
  2. Um bom candidato pode falhar em uma questão complexa específica e isso realmente não prova que não é possível abstrair

Depois de ler este artigo fiquei intrigado quando ele disse :

Inventing questions that force candidates to understand pointers without using C isn’t too hard. Nearly any question that forces candidates to invent a data structure (e.g., a hashtable, an AVL tree, or the like) will test how they handle indirection, the idea that having a thing is different from having a pointer to that thing. So I’ve picked a question that forces candidates to design a data structure. And, sure enough, I see candidates who have a lot of programming experience, but who don’t “get it”, completely bomb out in my interview.

Do jeito que eu vejo, inventar uma estrutura de dados é uma boa maneira de medir as habilidades de abstração.

Então, minha pergunta é: alguém sabe uma boa pergunta (ou um conjunto de pequenas perguntas) que possa medir habilidades de abstração em um teste?

Estou procurando esse tipo de pergunta que:

  1. Não dependa de nenhum idioma em particular
  2. Pode ser respondido por pessoas inteligentes
  3. Não pode ser respondido por pessoas que conhecem todos os livros de cor
  4. Demora em média 40 min para resolver
  5. Não produzirá uma quantidade enorme de páginas como resposta
por Alex 16.04.2011 / 00:33
fonte

1 resposta

4

Correndo o risco de expor uma das minhas queridas perguntas da entrevista, sempre recorri a experiências interessantes tiradas diretamente de trabalhos anteriores. Por exemplo, uma pergunta que achei útil é perguntar aos candidatos sobre como criar um sistema de arquivos que seja resistente à corrupção do sistema de arquivos devido à perda de energia. Isso porque, durante algum tempo, foi nisso que trabalhei, então sou capaz de julgar abordagens e idéias e fornecer informações adicionais. E eles precisarão disso, porque na maioria das vezes eu apresento o problema praticamente como descrevi aqui. Esta questão tem alguns atributos desejáveis com relação à entrevista:

  • É linguagem neutra. Eu não estou pedindo a eles para codificar um ambiente particular, estou perguntando sobre as idéias por trás do problema.
  • Está fora da área de conforto da maioria das pessoas. Isso os força a pensar em como um sistema de arquivos funciona. Por que um sistema de arquivos teria problemas de corrupção com perda súbita de energia? O que pode ser feito para resolver o problema? Um candidato que não pode me fazer boas perguntas e obter mais informações provavelmente não é o candidato certo para mim.
  • Encontrar uma solução razoável para a maioria das pessoas envolve o raciocínio por analogia. A maioria das pessoas que chega a uma solução razoável aqui pensa em termos de bancos de dados e chega a uma abordagem que envolve transações, da mesma forma que combate a perda de dados em um banco de dados. Essa é uma boa abordagem, e alguém que pensa nesse sentido exibe um método flexível de pensar sobre problemas de computação. Tem havido outras linhas de sucesso para as pessoas seguirem em frente, mas, de novo, geralmente requer que as pessoas demonstrem o uso de técnicas bem-sucedidas de outros domínios e a aplicação cruzada delas. Eu quero esse tipo de gente!
  • É facilmente extensível. Você pode ir muito longe na toca do coelho aqui, expandindo a questão para ocupar muito tempo adicional. Você pode até mesmo levá-los a fazer perguntas de codificação a partir daqui (faça as pessoas escreverem um cache do sistema de arquivos em uma entrevista, é divertido!) Sem esticar muito sua imaginação.
  • Para mim, porque fiz isso profissionalmente, é fácil avaliar os resultados.

Eu nunca tive medo de lançar um problema do mundo real para as pessoas em uma entrevista. Às vezes, as pessoas ficarão completamente desorientadas e terão problemas para começar. Para a maior parte, não é alguém que eu quero na minha equipe. Um bom candidato vai pegar os tópicos que você está dando, fazer perguntas, raciocinar e montar uma abordagem. Geralmente, é muito fácil obter muitas informações sobre as habilidades de abstração das pessoas usando uma pergunta como essa.

    
por 16.04.2011 / 00:50
fonte

Tags