Voglio assolutamente che testiate il codice della lavagna che vi chiedo di scrivere. Voglio che tu parli ad alta voce mentre lo scrivi, guardalo oltre, individua la maggior parte degli errori di sintassi che hai fatto e fai notare come potrebbe essere più efficiente. In effetti, questo è un po 'il punto di farlo alla lavagna. E ' non è un one-shot, write-it-all-out, uh-huh-you-get-70/100 genere di cose. È una conversazione, mediata dal codice e tenuta alla lavagna invece che sulla mia scrivania.
Ecco alcuni ottimi modi per fallire il test "Codifica lavagna":
- rifiutalo
- non fare una sola domanda di chiarimento (lingua, piattaforma, qualcosa sui requisiti) E non dirmi i tuoi presupposti su di esso E fare ipotesi che sono molto lontane da ciò a cui avrei risposto
(ad esempio: scriverlo in Fortran, interpretare "display" o "print" come "scrivere nel registro eventi", quel genere di cose. Potrei permetterlo se mi dicessi in anticipo quali erano i tuoi presupposti)
- chiedimi in quale lingua lo desidero, ricevi una risposta nella descrizione del lavoro, quindi scrivila in un'altra lingua perché non ti senti a tuo agio nella lingua richiesta.
(Siamo consulenti qui. Sto testando il comportamento del consulente tanto quanto la codifica. Chiedere al cliente è corretto solo se il cliente ha effettivamente una scelta. Controllare le conversazioni con le persone che ti pagheranno è difficile. Questa è la lezione 1. È un segno contro di te su qualsiasi argomento, ma per lo specifico "stai assumendo un programmatore X ma non voglio scrivere in X per te" ora hai due grandi segni neri.)
- mostrami che sei un astronauta dell'architettura riempiendo due lavagne con interfacce, schemi di fabbrica, astrazioni, iniezioni e test quando volevo che "stampassi i numeri da uno a 5".
(pensi che sto esagerando ma ho avuto un ragazzo che ha generalizzato il mio problema in modo drammatico - attenendosi all'esempio sopra diciamo che invece di 1 a 5 la sua soluzione farebbe qualsiasi sequenza arbitraria di numeri interi (ottenuto da dove? Mi chiedevo) ed era 5 volte più a lungo di chiunque altro - e si è dimenticato di chiamare effettivamente la funzione che ha svolto il lavoro. Ripetuti suggerimenti e suggerimenti che lo percorrevano come se fosse il debugger non ha portato a notare che la funzione non è mai stata chiamata.)
Dico sempre "ti piace?" "puoi migliorarlo?" "guidami attraverso quello" e simili. In genere il punto e virgola mancante viene individuato, o off-by-one, in quella conversazione. In caso contrario, di solito lo contrassegno fino ai nervi.
Altre cose che potresti non pensare siano importanti alla lavagna che contano per me:
- quando hai finito, posso ancora leggerlo? Hai sbavato, scarabocchiato, cambiato colore, frecce disegnate, barrato e generalmente lasciato un casino che non può essere usato ora? O sei consapevole del fatto che le lavagne sono cancellabili, hanno indicato linee di codice nell'aria invece di cerchiarle / farle scorrere e mi hanno lasciato qualcosa di cui avrei potuto scattare una foto e conservarla nel file di progettazione?
- quanto mi hai chiesto come hai fatto? Ti piace essere lasciato solo e non discutere il tuo codice o lo vedi come una cosa collaborativa? Come hai risposto quando ti ho chiesto le cose mentre le stavi ancora scrivendo?
- hai ghignato per il compito "facile" o svenuto per quello "duro"? Sei stato scortese riguardo alla richiesta di mostrare che puoi programmare? Sei facilmente intimidito da un problema tecnico o arrogante riguardo alla tua capacità di elaborare un buon algoritmo?
- lo stai risolvendo nella tua testa o ricordi una soluzione che hai letto da qualche parte? Di solito posso dire per i problemi difficili.
- hai pianificato in anticipo dove hai iniziato a scrivere? Le persone che finiscono la lavagna di solito iniziano troppo in basso o scrivono troppo in grande - posso dire che non sapevano che sarebbero state 20 righe di codice e quindi hanno lasciato spazio solo a 5 - che ci crediate o no, questo piccolo dettaglio è rispecchiato in anche compiti di stima più grandi.
- l'hai guardato prima di dire che avevi finito? Ti ho visto indicarti o toccarti e testarlo tu stesso prima che te lo chiedessi? Quando ti ho chiesto o ti ho fatto domande specifiche a riguardo, l'hai guardato di nuovo o sei semplicemente passato dalla memoria? Sei disposto a considerare che la tua prima bozza potrebbe non essere completa?
Consiglio vivamente di praticare la programmazione alla lavagna. Avvertisco sempre gli intervistati che verrà loro chiesto di farlo. Se hai accesso a una lavagna reale, poniti alcuni semplici problemi e fai pratica facendoli lì. Aiuterà le tue prestazioni e la tua sicurezza.
Mi dispiace, lo so che mi trovo in TL; territorio DR, ma ecco la cosa: la codifica alla lavagna non riguarda solo la codifica . È un test che va oltre la semplice comprensione della sintassi. Ci sono molti comportamenti di buoni programmatori che sono dimostrati nella tua risposta a questo compito. Se pensi che si tratti solo di codificare, ti manca il punto.
In altre conversazioni sui test della lavagna, le persone mi dicono che potrei rifiutare un buon candidato con esso. Onestamente, è un rischio che sono disposto a correre. Ogni giro di assunzioni contiene diverse persone che potrei assumere. Alcune persone con ottimi curriculum, che stanno bene nella parte dell'intervista, rispondono alla lavagna e chiaramente non possono (con qualsiasi suggerimento) scrivere un semplice codice nella lingua che dichiarano di conoscere. Potrei aver assunto alcuni di questi. Qualsiasi strumento che lo impedisce è uno strumento che continuerò a utilizzare. Non sono mai finito in nessuno a noleggiare una barca perché tutti i miei candidati hanno incasinato la lavagna e non mi aspetto che lo farò mai.