Utilizzo di "Google Guava" nelle interviste di codifica [chiuso]

6

Ho partecipato a un colloquio di persona recentemente e mi sono comportato bene. Ma sorprendentemente sono stato respinto. Quando ho chiesto spiegazioni all'AR per ragioni, ha contattato l'intervistatore tecnico e mi ha detto che stavo sintatticamente storto durante la codifica.

Ho usato Google Guava per la codifica. Quindi il mio codice assomigliava a questo:

List<String> items = Lists.newArrayList()

invece di

List<String> items =new ArrayList<String>();

So che il codice verrà compilato e funzionerà come previsto. È possibile utilizzare librerie di terze parti come Google Guava nelle interviste?

    
posta alma 08.10.2012 - 20:28
fonte

3 risposte

32

Se stai facendo qualcosa, non standard durante un'intervista, chiedi. O almeno dici che stai usando Guava.

Faccio una semplice domanda Java all'inizio dell'intervista. Di solito dico ai candidati che possono assumere tutto ciò che vogliono purché mi dicano di cosa si tratta. In una semplice domanda come questa, se il candidato chiedesse di usare Guice, probabilmente direi di no - basta usare il core Java. Devo sapere che i candidati conoscono il nucleo di Java.

Cosa succede se l'intervistatore non conosce la libreria che hai scelto o non è disponibile in azienda? (Non tutto l'open source può essere utilizzato in ogni azienda.)

Cerca di evitare di essere furbo durante le interviste. Troppi "sviluppatori Java" non sanno come scrivere Java. L'intervistatore deve assumere l'incompetenza prima dell'intelligenza.

    
risposta data 08.10.2012 - 20:34
fonte
18

Dici,

I know that the code will compile and work as expected.

... ma come hai imparato, non sarà ... perché non hai confermato che la versione corretta è disponibile in fase di compilazione, sui computer di compilazione .

Però non è questo il punto. Il punto e la causa principale della tua non assunzione, è che non sei riuscito a comunicare con l'intervistatore. Non hai comunicato un requisito o una dipendenza per il codice che stavi scrivendo. Personalmente, ritengo che una grande assunzione (la gestione delle dipendenze può essere un grosso problema che implica analisi statiche, revisioni del codice, formazione degli sviluppatori, build, installazione / distribuzione, legale, SLA, ecc.)

Quindi ora lo sai, e sapere è metà della battaglia. Ma questo non aiuta davvero. Quello che fa è un grande consiglio che ho ricevuto durante le interviste:

For every line you write on the whiteboard, say something relevant.

Inizia con questi mentre stai scrivendo ogni riga:

  • "Sto pensando che ..."
  • "Questo ha senso perché ..."
  • "Ciò presuppone che ..."

Nel tuo scenario, avrei detto qualcosa sulla falsariga di:

"I'm thinking that a simple list of strings should suffice, so I'll just pull one out of Guava."

... o anche

"Is it safe to assume that the Guava libraries are available?"

Come punto di interesse, scrivo .NET / C # e ho chiesto in un'intervista a Microsoft se si poteva supporre che potessi usare LINQ. La risposta era no.

    
risposta data 08.10.2012 - 21:21
fonte
0

Aggiungerei un'importazione alla guida in alto per mostrare quale classe / lib stai usando?

import com.google.common.collect.Lists;

List<String> items = Lists.newArrayList();
    
risposta data 15.10.2012 - 09:10
fonte

Leggi altre domande sui tag