Effetto di ReSharper sulle interviste di codifica [chiuso]

18

Chiunque abbia usato R # o CodeRush sa quanto velocemente si possono assemblare semplici costrutti (e rifattori complessi) con una semplice scorciatoia da tastiera. Tuttavia, questi plug-in di produttività causano una falsa valutazione dell'abilità durante le interviste?

Parte di essere uno scrittore di codice produttivo (e fare una buona prima impressione in un'intervista) sta scrivendo un buon codice - veloce.

Se avessi due candidati:

  1. Non usa plugin. Pensa al problema, si siede a un IDE di stock al PC dell'intervista che sembra esattamente come il suo e digita il codice in un minuto o due, come al solito. Fatto. Passare.

  2. Utilizza plug-in. Pensa al problema, si siede su un IDE di riserva al PC dell'intervista e si rende conto che "fe + tab" non scrive più automaticamente un ciclo foreach e tutte le scorciatoie sono sparite. Poi borbotta intorno alla tastiera colpendo i suoi normali tasti di scelta rapida e facendo apparire strane finestre e agitandosi. Gli ci vogliono 3 minuti per scrivere ciò che normalmente impiegherebbe 30 secondi. Fatto. Sembrava che a volte non sapessero come muoversi intorno all'IDE. Deve essere nuovo a questo IDE e quindi non ha avuto molta esperienza con esso o forse la lingua. Passa, ma un segno "meh" accanto al loro nome.

Nella tua esperienza, come gestisci i plugin durante le interviste come intervistatore o intervistato? Quali sono le migliori pratiche per ottenere ciò che il candidato sa davvero? Ci possono essere candidati che non capiscono il codice e usano R # come una stampella. Ci possono anche essere candidati che conoscono il codice dentro e fuori e usano R # perché è semplicemente più veloce dei modelli VS o Eclipse integrati. È meglio non usare proprio un IDE? Lascia che portino il loro PC? Altri?

    
posta Ryan Hayes 02.11.2010 - 14:30
fonte

5 risposte

31

Sono stato candidato 2 in un'intervista di recente . Mi è stata data un'installazione vaniglia dell'IDE su un PC con una tastiera non standard e un framework di test non familiare, e mi è stato chiesto di scrivere una semplice app Fizz-Buzz con i test unitari. L'ho rigirato. Dovevo sembrare un completo noob, inciampare nel buio cercando di incidere il codice. Inutile dire che non mi è stata offerta la posizione.

Quello che ho imparato è che mi baso molto sui miei plugin. Non si limitano a digitare il codice più velocemente: in realtà modellano il modo in cui penso sul codice e sul modo in cui utilizzo la codifica. Ad esempio, pensavo molto attentamente ai nomi delle variabili perché potevano essere difficili da cambiare dopo il fatto. Ora, al contrario, faccio solo una mezza ipotesi su come userò la variabile, traccerò un po 'di codice, lascerò che la variabile mi dica a cosa serve, e poi colpisco Refactor- > Rinomina per chiamarla qualcosa di più . appropriato

Questo mi rende il candidato meno capace? In un certo senso, penso che sia . Qualcuno che può scrivere codice in Blocco note e farlo compilare ed eseguire correttamente presenta alcuni vantaggi rispetto a qualcuno come me che ha bisogno di tutta la bontà degli IDE che può ottenere. Da questo punto di vista, capisco perfettamente il motivo per cui qualsiasi azienda dovrebbe scegliere di non assumere una testa di strumento come me.

D'altra parte , sono ancora uno sviluppatore senior di talento e capace. Ho imparato cosa funziona per me e pratico quel tipo di pigrizia che mi rende produttivo, date le mie debolezze e i miei limiti. In breve, sono il tipo di programmatore che potrebbe davvero avvantaggiare un'azienda come quella che mi ha allontanato .

È interessante notare che ho avuto un'altra intervista un paio di settimane fa. Seguendo la mia precedente esperienza, ho fatto un punto di domanda su strumenti aggiuntivi o budget per acquistarli. Scoprire che non c'erano né mi ha dato una ragione in più per rifiutare l'offerta (piuttosto generosa) che loro hanno fatto per me .

Quindi, per parafrasare Groucho, " non vorrei unirmi a nessuna compagnia che avrebbe qualcuno come me per un impiegato. "

No a meno che non mi permettano di usare ReSharper, comunque.

    
risposta data 02.11.2010 - 16:18
fonte
12

Lascia che ( candidati, cioè ) usi ciò che vogliono. Il vecchio, costruire un Wal-Mart con un coltellino svizzero per dimostrare che puoi l'approccio è così vecchio. Useranno tutto ciò che serve nel loro lavoro quotidiano (beh, spero che lo speri) così che possano usare tutto ciò che vogliono in un'intervista. Il risultato finale è tutto ciò che conta. E assumerò molto più volentieri un candidato che sa quali strumenti sono disponibili sul mercato e come usarli in modo efficiente, quindi chi fa tutto manualmente. Questa è un'industria killer.

P.S. Ad esempio, pensa a Vim (o Emacs): ti piacerebbe utilizzarlo senza impostazioni personalizzate, plug-in, ecc.?

    
risposta data 02.11.2010 - 14:39
fonte
8

Direi che strumenti come ReSharper ti rendono davvero un candidato migliore.

Per esempio, qualcosa come ReSharper ti insegnerà i costrutti del linguaggio che potresti non conoscere, così come i modi migliori per organizzare il tuo codice per pensare a un problema o strutturarlo per renderlo leggibile. ReSharper, in un certo senso, ti mantiene nitido con le migliori pratiche per il codice di slinging, piuttosto che lasciarti ricadere su abitudini scadenti o obsolete, o peggio sul cattivo tipo di pigrizia.

Un buon programmatore deve capire i costrutti di base, ma non digitarli manualmente. Il buon tipo di pigro lascia che gli strumenti facciano il lavoro del burlone, e il tempo extra risparmiato viene invece impiegato a pensare al problema. Questo rende uno uno sviluppatore migliore nel complesso.

Completerei la linea di ragionamento affermando che se il processo di intervista favorisce bastoni e lame di pietra, è fondamentalmente rotto.

    
risposta data 02.11.2010 - 15:58
fonte
1

Questa è una delle ragioni per cui chiedo alle persone di scrivere codice sulla lavagna, non nell'IDE. Livella il campo di gioco. E le persone dicono "oh caro, il resharper gestisce questo per me di solito". Diamine, i frammenti incorporati gestiscono loop e così via, che la lavagna non può darti. In quel caso dire qualcosa come "Spero che la punteggiatura sia proprio lì, sono un ragazzo R" è probabilmente tutto ciò che serve per impedirmi di tenere alcuni problemi di sintassi contro di te.

Ho bisogno di un po 'di capacità per scrivere codice comprensibile sulla lavagna in modo da poter avere una riunione in cui lavoriamo su come faremo le cose. E, naturalmente, voglio vedere se hai mai veramente scritto del codice nella tua vita o no. Le tue interviste possono variare.

    
risposta data 02.11.2010 - 16:32
fonte
1

Ottima domanda BTW - Ho spesso riflettuto su questo.

La padronanza degli strumenti è un'abilità che è fondamentale per essere un buon sviluppatore. Ho sempre sentito suonare campanelli quando uno sviluppatore afferma che preferisce codificare nel blocco note un IDE. Suggerisce che è più interessato al processo rispetto al prodotto.

È come preferire coltivare il terreno con una zappa contro un trattore - va bene se sei un giardiniere per hobby, ma insopportabile come un agricoltore in un'economia competitiva.

Tuttavia, diventiamo dipendenti dai nostri strumenti. La gente sembra spaventare su come affronteremo l'ipotetica situazione in cui i nostri strumenti sono stati improvvisamente portati via. C'era lo stesso argomento su come consentire ai calcolatori di superare gli esami.

La realtà è che gli strumenti diventano sempre migliori, più economici e meno costosi ogni anno e non c'è motivo per cui dovresti mai supporre che sarai senza di loro. E gli strumenti sono grandi nel fare cose ripetitive con un alto grado di qualità - il che significa che possiamo concentrare tutta la forza dei nostri incredibili intelletti homo-sapiens sulle parti difficili (e interessanti).

ReSharper è un'aggiunta fantastica a Visual Studio. La mia attuale compagnia non ha avuto ReSharper quando sono stato intervistato, ma ero così evangelico al riguardo nella mia intervista che mi hanno comprato una copia quando ho accettato la posizione, oltre a quella per lo sviluppatore che mi ha intervistato. Ora viene distribuito in tutta l'azienda. I buoni strumenti si ripagano in pochissimo tempo.

Quindi per rispondere alla domanda: la tua dipendenza dagli strumenti può causare una falsa valutazione delle tue abilità in un colloquio, ma sempre dare una valutazione corretta delle capacità dell'intervistatore. Se una società non riconosce il valore del supporto degli strumenti nel colloquio, devi mostrare loro la luce. E se ancora non lo vedessero, sarei molto preoccupato di accettare una posizione lì.

    
risposta data 03.12.2010 - 12:53
fonte

Leggi altre domande sui tag