A cosa prestare attenzione quando si scrive codice in una intervista? [chiuso]

7

Ho letto che in molte aziende devi scrivere codice in un'intervista. Da un lato vedo che ha senso chiedere un campione di lavoro. D'altra parte: che tipo di codice ti aspetti di scrivere in 5 minuti? E se mi dicessero "Scrivi un algoritmo che faccia questo e quello" ma non riesco a pensare a una soluzione intelligente o addirittura a scrivere codice che non funzioni semanticamente?

Sono particolarmente interessato a questa domanda perché non ho molta esperienza di programmazione commerciale, 2 anni part-time, un anno a tempo pieno. (Ma sono interessato ai linguaggi di programmazione da quasi 15 anni, anche se di solito ero più concentrato a giocare con la lingua piuttosto che scrivere applicazioni di grandi dimensioni ...) E in realtà considero le mie capacità di debug e di problem solving molto meglio delle mie capacità di codifica. A volte mi vedo non scrivere il codice più bello quando guardo indietro, ma d'altra parte mi vengono spesso in mente soluzioni per problemi difficili. E penso di essere molto bravo a ottimizzare, correggere, ristrutturare il codice esistente, ma ho problemi con la scrittura di nuove applicazioni da zero. Il design del software fa schifo ...; -)

Quindi non mi sento a mio agio quando penso a questa situazione di scrittura del codice in un'intervista ...

Quindi cosa si aspettano gli intervistatori? Che tipo di informazioni sulla mia scrittura del codice sono interessati?

    
posta Philip 16.01.2011 - 20:58
fonte

7 risposte

3

Quando chiedo ai candidati di scrivere il codice durante un'intervista, sono interessato a due cose:

  1. Come scrivono il codice. (Come è strutturato? È leggibile? Ha senso?)
  2. Come risolvono il problema segnalato

Per il primo, sono interessato a quanto è gestibile il loro codice. Se sto lavorando accanto a loro, mi farò sapere che non creano nomi di variabili significativi?

Per il secondo, sono interessato a quanto semplice o complessa sia la soluzione. Più semplice è sempre meglio nella mia mente. Il codice più semplice è il codice che non devi scrivere. A volte conferisco loro un problema facilmente risolvibile con una soluzione standard; altre volte do loro un problema che ha molteplici modi di risolverlo, ma solo un modo semplice. Più sono complessi a fare la soluzione, o meno le domande che chiedono, meno probabile sono le assumerle.

Per scrivere codice, i candidati hanno una quantità di tempo scorrevole per terminare i problemi.

Per qualcosa come Fizzbuzz, ottengono cinque minuti. Per implementare una soluzione a una specifica che distribuisco, dipende da quanto tempo ci vuole. Normalmente prendo il tempo necessario per farlo e lo moltiplichiamo per 1.5 per determinare quanto a lungo darli.

    
risposta data 16.01.2011 - 21:05
fonte
3

Per il test di codifica che utilizziamo presso il mio datore di lavoro, permettiamo fino a 1 ora per la persona di completare l'attività. Stiamo cercando una comprensione su come suddividere il problema in elementi di base. Puoi digerire i requisiti. Puoi dimostrare la capacità di progettare una soluzione. Puoi mostrare il tuo lavoro nella lingua selezionata. Non limitiamo la persona ad una particolare lingua. La soluzione viene esaminata privatamente e quindi con il candidato. La revisione darà al candidato l'opportunità di spiegare la soluzione proposta.

Una soluzione di lavoro è buona ma non necessaria per ottenere un'offerta.

L'obiettivo qui è quello di ottenere informazioni su come il candidato risolve un problema. La recensione post test è per tenere conto del nervosismo di presa del test che alcuni hanno. Nello specifico, se il candidato ha commesso un errore nella sua soluzione, può spiegare perché è sbagliato?

    
risposta data 16.01.2011 - 21:26
fonte
2

Non cercare di essere troppo intelligente. Rendilo semplice e comprensibile.

Il revisore del codice deve essere in grado di guardare la tua risposta e vedere come stai cercando di risolvere il problema.

    
risposta data 16.01.2011 - 23:40
fonte
1

Potrebbe essere una semplice ricorsione, un mergesort, ecc. Ci sono molti di 20-lines-max esempi là fuori. Se inizi a ricordare:

  • Chiedi se all'intervistatore si preoccupa della sintassi: a un altro importa di no. Forse stanno bene con lo pseudocodice.
  • Di 'un po' cosa stai facendo e perché - passo dopo passo

Everbody ha il suo stile.

Buona fortuna:)

    
risposta data 16.01.2011 - 21:20
fonte
1

Di solito chiedono informazioni su un problema che è possibile ottimizzare, quindi non saltare immediatamente nella versione perfetta. Esegui prima una soluzione di forza bruta (di solito sono più semplici da codificare)

Una volta che sei riuscito a farlo correttamente ti chiederanno della complessità della tua soluzione. E come può essere ottimizzato (per migliorare la complessità (le semplici ottimizzazioni degli spioncini non le faranno impressionare molto)).

Esempi semplici:

  • Inversione di elenchi / stringhe
  • Algoritmi di ordinamento
  • Qualunque cosa fare con la ricorsione
  • Depth first tree algorithms
  • Se sono brutto primo attraversamento di un albero

Generalmente le domande saranno formulate in termini di spazio del dominio delle società.

    
risposta data 16.01.2011 - 21:49
fonte
1

Ho avuto un colloquio di lavoro un paio di anni fa, dove dovevo scrivere del codice.

Sarebbe stato bello, eccetto:

  • Gli intervistatori erano in ritardo di un'ora.
  • Non avevano preparato alcun account su un host per i test.
  • Non avevano capito quale macchina usare.
  • Non avevano capito quale sarebbe stato il codice.
  • Il computer su cui alla fine si sono stabiliti per me era così disgustosamente sporco che non volevo toccare la tastiera. Si. Era. SPORCO.

Inutile dire che è stato uno scherzo, e non ho ottenuto il lavoro perché non mi avevano messo sullo stesso piano. Gli intervistati successivi avevano già elaborato lo scenario su di me. E, sapevo che non volevo lavorare lì se fossero incasinati.

    
risposta data 17.01.2011 - 00:03
fonte
-1

La velocità tipica è di 60 righe di codice / h testati (questo è il codice che sta effettivamente facendo qualcosa, non linee e parentesi vuote) ...

Il colloquio richiederà ovviamente più di 5 minuti se vogliono che tu scriva codice da zero. Probabilmente ci chiederanno dei campioni prima e parleremo di concetti più generali (ad esempio algoritmi).

    
risposta data 16.01.2011 - 21:26
fonte

Leggi altre domande sui tag