Come parte del processo di intervista, inizialmente chiediamo ai candidati di fare 'FizzBuzz' al giorno d'oggi la percentuale di candidati che possono rispondere correttamente a FizzBuzz è aumentata drammaticamente - questo potrebbe essere dovuto alla sua popolarità sul web.
Circa un anno fa, come seconda domanda, abbiamo iniziato a porre una domanda molto simile all'originale FizzBuzz. La domanda è stata progettata per essere semplice come l'originale FizzBuzz e per valutare anche una particolare abilità del candidato, in particolare la capacità di ordinare e dare priorità in modo significativo e logico una serie di "regole commerciali" che sono state fornite in alcuni ordine arbitrario. La formulazione della domanda inizialmente sembra leggermente ambigua, il che può rendere difficile per chi non parla inglese nativo, ma se il pensiero può essere risolto correttamente - Inoltre offre al candidato l'opportunità di porre domande per chiarimenti, il che è sempre una buona cosa .
Riteniamo che sia una competenza molto importante avere come sviluppatore, poiché lo sviluppo del software si basa in genere su requisiti funzionali che non sono derivati in un ordine particolare nel tempo, che possono imporre vincoli e condizioni su altre aree del software senza indicare esplicitamente ed è il compito dello sviluppatore astuto di investigare almeno potenziali problemi e conflitti per quanto riguarda l'implementazione.
Quello che abbiamo scoperto è che poco più del 65% dei candidati (dimensione del campione di 38) che hanno superato FizzBuzz ha fallito completamente FizzBuzz v2.0 Normalmente questi candidati sarebbero stati rilevati più avanti nel processo, ma sembra essere un buon modo per rilevare presto.
La mia domanda non riguarda se FizzBuzz è obsoleto, ma piuttosto quali fattori potrebbero contribuire a un numero così elevato di candidati che non hanno superato la domanda FizzBuzz v2.
- La domanda è troppo ambigua?
- Lo stress dell'ambiente di un colloquio riduce la capacità di pensare in modo critico al punto da non riuscire a completare un compito così banale?
Domanda:
Scrivi una routine nel tuo linguaggio di programmazione preferito che prenderà un elenco di stringhe come input e per ciascuna stringa nell'elenco eseguirà una delle seguenti operazioni:
- Stampa solo Fizz se la stringa contiene la lettera A
- Stampa solo Buzz se la stringa contiene la lettera B
- Stampa solo BuzzBuzz se la stringa contiene sia A che B
- Stampa solo FizzFizz se la stringa non contiene sia A che B
- Stampa solo FizzBuzz se la stringa contiene solo una A e solo una B.
Alcune domande tipiche poste dai candidati sono:
- Dovrebbe essere case sensitive?
- "Contiene A e B" significa che A dovrebbe precedere B
- Cosa dovrebbe essere stampato se nessuno dei punti è soddisfatto?
- Cosa dovrebbe accadere se è possibile soddisfare più di una condizione?
Abbiamo scoperto che la stragrande maggioranza dei candidati che hanno completato con successo la domanda, non hanno fatto nulla, hanno semplicemente fatto come FizzBuzz.