Como parte do processo de entrevista, solicitamos inicialmente aos candidatos que façam 'FizzBuzz' hoje em dia a porcentagem de candidatos que podem responder corretamente ao FizzBuzz aumentou dramaticamente - isso pode ser devido à sua popularidade na web.
Cerca de um ano atrás, como segunda pergunta, começamos a fazer uma pergunta muito semelhante ao FizzBuzz original. A pergunta foi projetada para ser tão simples quanto o FizzBuzz original e também para avaliar uma capacidade específica do candidato, especificamente a capacidade de ordenar e priorizar de maneira significativa e lógica um conjunto de "regras de negócios" fornecidas em alguns ordem arbitrária. O texto da pergunta inicialmente parece um pouco ambíguo, o que pode dificultar para os falantes de inglês não nativos, mas se o pensamento puder ser resolvido corretamente - também oferece ao candidato a oportunidade de fazer perguntas para esclarecimento, o que é sempre bom. .
Consideramos isso uma habilidade muito importante para ter como desenvolvedor, pois o desenvolvimento de software geralmente é baseado em requisitos funcionais derivados de nenhuma ordem específica ao longo do tempo, que podem colocar restrições e condições em outras áreas do software sem indicar explicitamente e é o trabalho do desenvolvedor astuto de, no mínimo, investigar possíveis problemas e conflitos com relação à implementação.
O que descobrimos foi que pouco mais de 65% dos candidatos (tamanho da amostra de 38) que passaram no FizzBuzz falharam completamente no FizzBuzz v2.0 Normalmente, esses candidatos seriam detectados mais tarde no processo, mas parece ser uma boa maneira de detectar eles desde o início.
Minha pergunta não é se o FizzBuzz está desatualizado ou não, mas quais fatores podem estar contribuindo para que um número tão alto de candidatos falhe na pergunta do FizzBuzz v2.
- A pergunta é ambígua demais?
- O estresse de um ambiente de entrevista diminui a capacidade de pensar criticamente a ponto de não ser capaz de concluir uma tarefa tão trivial?
Questão:
Escreva uma rotina em sua linguagem de programação favorita que terá uma lista de seqüências de caracteres como entrada e, para cada sequência da lista, siga um destes procedimentos:
- Imprimir apenas Fizz se a sequência contiver a letra A
- Imprimir apenas o Google Buzz se a sequência contiver a letra B
- Imprimir apenas o BuzzBuzz se a sequência contiver A e B
- Imprima apenas o FizzFizz se a sequência não contiver A e B
- Imprima apenas o FizzBuzz se a sequência contiver apenas um A e apenas um B
Algumas perguntas típicas feitas pelos candidatos são:
- Deve ser sensível a maiúsculas?
- "Contém A e B" significa que A deve vir antes de B
- O que deve ser impresso se nenhum dos pontos for atendido?
- O que deve acontecer se mais de uma condição puder ser atendida?
Descobrimos que a esmagadora maioria dos candidatos que concluíram a pergunta com sucesso, não fez absolutamente nada, apenas fez como fez no FizzBuzz.