Variazioni interessanti di FizzBuzz? [chiuso]

7

Nei programmatori assumente, un test comune è il test Fizz Buzz. Quali sono alcune variazioni interessanti / interessanti sul buzz fizz che mantengono all'incirca lo stesso livello di difficoltà?

In sostanza, se chiedessi a qualcuno di fare un fizz buzz test via email o qualcosa del genere, vorrei assicurarmi che non possano semplicemente google il codice.

    
posta Earlz 17.04.2011 - 06:31
fonte

8 risposte

5

Come altri hanno già detto, non penso che FizzBuzz sia appropriato via email, ma potrebbe essere appropriato in qualche altro posto (ad esempio, in una fiera del lavoro in cui hai bisogno di un modo per scartare rapidamente i curriculum che sono uno spreco sia del intervistatore e tempo del richiedente di perseguire). È davvero appropriato solo per ordinare i candidati in due bucket: programmatori e non.

Quindi, a parte questo, supponendo che tu stia bersagliando un ambiente appropriato, eccone alcuni altri rapidi:

  1. Scrivi una funzione che accetta una matrice bidimensionale di int s (o una List<? extends List<? extends Number>> o equivalente) e trova il numero più piccolo in ogni riga e restituisce la somma di quelle per fila più piccole valori. (Oppure restituisce il valore minimo complessivo o l'indice di riga che contiene il minimo più grande, ecc.)

  2. Stampa una porzione del triangolo di Pascal: in particolare, chiedi loro di scrivere una funzione che prende un intero ( a ) e stampa le prime a righe del triangolo di Pascal.

  3. Scrivi una funzione che stampi una suddivisione di un intero in una somma di numeri che hanno solo una cifra diversa da zero. Ad esempio, dato 43018 dovrebbe stampare 40000 + 3000 + 10 + 8 .

  4. In relazione a ciò, scrivi una funzione che accetterà un numero intero di centesimi e stampa una suddivisione in centesimi, nichel, monete, quarti, (qualunque cosa tu voglia - mezzo dollaro, monete in dollari), usando il il minor numero di monete.

  5. Nulla dalla sezione "Coding" di questo: link

risposta data 02.05.2011 - 21:21
fonte
13

FizzBuzz è non inteso come un test di abilità, è inteso come un modo per eliminare l'incompetente.

Dovrebbero essere necessari tutti i 5 minuti. Di persona (o tramite un documento condiviso). E se il candidato non riesce a risolverlo così velocemente come lui o lei può scrivere, allora dovrebbero esserci alcune bandiere rosse in aumento.

Dare FizzBuzz o qualsiasi problema simile come problema di posta elettronica fa due cose: (1) non estirpa l'incompetente e (2) lancia bandiere rosse a qualsiasi candidato competente che la tua azienda non sia molto buona durante l'intervista.

    
risposta data 17.04.2011 - 14:41
fonte
5

Se cambi le parole "fizz" e "buzz", diventa rapidamente ingooglibile. Se hanno studiato domande comuni sul colloquio, potrebbero ancora riconoscerlo, ma almeno indica un livello di preparazione che li pone al di sopra della media.

    
risposta data 02.05.2011 - 23:02
fonte
3

Che ne dici di chiedere loro di risolvere fizzbuzz con ricorsione? o senza divisione intera.

    
risposta data 02.05.2011 - 21:56
fonte
2

Un esempio di un "test" di programmazione che mi è stato dato di recente è stato che dovevo scrivere un metodo che avrebbe moltiplicato 2 interi, senza usare il carattere '*'. È molto semplice, ma la questione non riguardava la valutazione della mia competenza, si trattava di essere in grado di rivedere il codice che ho scritto, evidenziare eventuali problemi con esso, aree in cui potrebbero essere apportati miglioramenti.

    
risposta data 17.04.2011 - 15:15
fonte
1

Quando si tratta di esso, FizzBuzz sfrutta i più basilari concetti di programmazione, incluso (come Bob Martin tende a dirlo) Sequenza, Selezione e Iterazione. Quello che puoi fare è fornire una nuova domanda, simile a FizzBuzz, ma utilizzare concetti linguistici più avanzati per la corrispondenza dei modelli. Ad esempio, invece di usare i numeri, forse invece hai a che fare con una raccolta di entità, che sono correlate polimorficamente. Ciò ti consentirebbe di verificare la conoscenza del polimorfismo, delle interfacce, dell'eredità dei candidati, ecc. Per la tua selezione, invece del modulo come FizzBuzz tradizionale, potresti cercare la corrispondenza dei tipi sugli elementi.

Non sono sicuro se questo è ciò che intendevi con la richiesta di idee con la stessa difficoltà, ma ho cercato di immaginare come potrei fare questa domanda in un'intervista.

    
risposta data 17.04.2011 - 09:25
fonte
0

Se affermano di conoscere il C ++ (e non lo fanno) puoi sempre dire loro di scrivere FizzBuzz con i modelli.

Anche se potenzialmente divertente, non lo considererei molto di buon gusto. Se affermano di essere esperti in C ++ e non lo sono, considero questo gioco leale.

    
risposta data 17.04.2011 - 07:53
fonte
0

Che ne diresti di renderlo specifico per il tuo stack per mostrare che la persona ha almeno un'abilità tipo fiz-buzz con il tuo framework / piattaforma. Se si tratta di una posizione sviluppatore Winforms, ad esempio:

You have a Window called MyWindow that has various controls on it. Write a method that will make all of the textbox backgrounds red. Make all of the label backgrounds blue. If a textbox or a label currently says "fizzbuzz", then set its background to purple.

Questo dovrebbe essere banalmente facile per qualsiasi sviluppatore Winforms fare con carta e penna. Dimostra un po 'di conoscenza delle collezioni,. Controllo, gerarchie, iterazioni, condizionali ed ereditarietà.

    
risposta data 02.05.2011 - 22:35
fonte

Leggi altre domande sui tag