Quali sono alcune domande tipo FizzBuzz per sviluppatori web o SQL? [chiuso]

10

Dopo un po ', stiamo assumendo di nuovo, e sto rivedendo i test per i programmatori; alcuni di loro sono un po 'obsoleti. Quali sono alcuni dei Domande tipo FizzBuzz per sviluppatori web e SQL? Cioè, non troppo banale, ma ancora risolvibile in cinque o dieci minuti con carta e penna e senza Google?

Normalmente elimino circa due terzi o più dei candidati sulla base del CV, e poi tutti, tranne alcuni davvero buoni candidati in un'intervista di un'ora (che può essere al telefono). A questo punto il candidato sta scrivendo un test della personalità e ha la possibilità di scrivere un po 'di codice simile a FizzBuzz. Quindi, non sto cercando di eliminare un gruppo di candidati, ma sto cercando di convalidare la mia valutazione iniziale secondo cui il candidato è accettabile e in grado di codificare.

    
posta Domchi 05.12.2011 - 19:15
fonte

4 risposte

12

Vedo FizzBuzz come un test per vedere se le persone effettivamente sanno cosa dichiarano di sapere sul proprio CV. Non lo userei come qualcosa di diverso da una domanda per eliminare i candidati che non sanno di cosa stanno parlando.

Una sostituzione SQL adatta sarebbe chiedere al candidato di scrivere un'istruzione SQL come selezionare i campi Nome di due tabelle unite che iniziano con A. È semplice e dimostra che il candidato ha effettivamente una certa conoscenza di SQL.

SELECT Table1.Name, Table2.Name
FROM Table1 
INNER JOIN Table2 ON Table1.Id = Table2.Id
WHERE Table1.Name LIKE 'A%' OR Table2.Name LIKE 'A%'

Per uno sviluppatore web chiederei loro FizzBuzz. Solo perché stai programmando per il web non significa che ti manchi la possibilità di fare logica di programmazione di base

Se stai cercando domande sull'intervista, ce ne sono tantissime online che puoi trovare con una ricerca veloce. Ho trovato più di quanto mi interessa elencare prendendo 10 secondi con Google.

    
risposta data 05.12.2011 - 20:53
fonte
4

Ecco una risposta che ho dato a domanda molto simile (possibilmente duplicata) che è stata chiusa su questo sito.

Livello estremamente facile: Data una tabella dei dipendenti con le colonne EmpID, FirstName, Lastname, HireDate e TerminationDate: Scrivi una query per restituire tutti i dipendenti che ancora lavorano per la società con cognomi che iniziano con "Smith" ordinati per cognome e nome.

Livello facile Data la tabella Employee sopra, oltre a una nuova tabella "AnnualReviews" con le colonne EmpID e ReviewDate: Scrivi una query per restituire tutti i dipendenti che non hanno mai avuto una revisione ordinata da HireDate.

Livello medio Data la tabella dei dipendenti di cui sopra, scrivi una query per calcolare la differenza (in giorni) tra il dipendente più o meno occupato che ancora lavora per la società?

Livello difficile Data la tabella dei dipendenti di cui sopra, scrivi una query per calcolare il periodo più lungo (in giorni) in cui l'azienda è andata senza assumere o licenziare nessuno.

Livello più difficile Sempre usando le stesse tabelle, scrivi una query che restituisce ogni dipendente e per ogni riga / dipendente include il maggior numero di dipendenti che ha lavorato per la società in qualsiasi momento durante il loro mandato e la prima data in cui è stato raggiunto il massimo. Punti extra per non usare i cursori.

    
risposta data 05.12.2011 - 21:44
fonte
3

Che ne pensi di fizzbuzz stesso? Ecco una versione di Oracle:

select case when mod(level,35) = 0 then 'fizzbuzz'
            when mod(level,7) = 0 then 'buzz'
            when mod(level,5) = 0 then 'fizz'
            else to_char(level) end fizzbuzz
from dual connect by level <= 100
    
risposta data 06.12.2011 - 13:43
fonte
0

Trovo che le persone tendono a avere molti problemi a lavorare con il tempo per qualche motivo, quindi potrebbe essere un buon posto per mettere un piccolo test.

Qualcosa del genere:

Parte 1: crea una funzione che calcolerà l'ennesimo o l'ultimo giorno della settimana in un dato mese, ad es. il primo, il terzo, lo scorso martedì del mese prossimo.

Parte 2 (se lo si desidera): tabella (e) di progettazione per contenere espressioni temporali per programmi ricorrenti. Gli orari possono essere "l'ennesimo giorno della settimana di uno o più mesi" o "l'ennesimo giorno di uno o più mesi" o "ogni N giorni dalla data".

Esempio, il 15 di ogni mese, l'ultimo mercoledì di ogni marzo, l'ultimo giorno di ogni mese, ogni 17 giorni dal 2 dicembre 2008, ecc.

    
risposta data 05.12.2011 - 20:06
fonte

Leggi altre domande sui tag