Chiedere un campione di codice dell'azienda durante un'intervista [chiuso]


69

Chiedere a un cercatore di lavoro di mostrare del codice è una pratica abbastanza comune per un'azienda di software. Tuttavia, sarebbe accettabile per il candidato chiedere all'intervistatore di mostrargli un piccolo codice che pensa sia ben scritto?


14
Preferirei chiedere informazioni sugli standard di codifica, recensioni di codici, ecc.
user16764,

5

2
@LokiAstari il test joel non riguarda direttamente la cultura del codice (solo ambiente di lavoro).
Simon Bergot,

8
@ user16764 che è come porre domande teoriche al candidato: è un buon primo passo, ma non ti mostra davvero come applica questa conoscenza.
Simon Bergot,

Risposte:


69

Chiedo sempre di vedere del codice, per diversi motivi:

  • Voglio sapere in cosa mi sto cacciando. Naturalmente nessuna azienda di software è perfetta, e non mi aspetto che tutti tirino fuori meraviglie di eleganza tutto il tempo (perché nemmeno io), ma se chiedo il codice migliore di un'azienda, e tutto ciò che possono mostrarmi è un pasticcio di spaghetti alla pari, so che sono in un momento miserabile, scartando le palle di capelli e combattendo il debito tecnico per fare qualsiasi cosa. Guardare il codice migliore che un'azienda può mostrare stabilisce un limite superiore di quale tipo di qualità è possibile lì; anche se è improbabile che tutto il loro codice assomigli a quello, sai comunque che è qualcosa per cui lottano.
  • Guardare esempi di codice mi dice molto sulla cultura del codice di un'azienda. Usano i commenti della documentazione? Si inclinano verso uno stile orientato agli oggetti, hanno tendenze di programmazione funzionale? Sono conservatori o progressisti? Apprezzano la denominazione coerente, la formattazione e il rientro corretti e il codice accurato in generale? Il codice è facile da seguire? Come strutturano i loro progetti? Come si avvicinano alle cose importanti: test automatizzati, gestione degli errori, ecc.? Quanto è difensivo il loro stile di programmazione?
  • Vedere il loro codice esistente ti permetterà di giudicare se puoi essere all'altezza dei loro standard .
  • Il fatto che un'azienda sia disposta a condividere solo esempi di codice è un buon segno di principio. Significa che offrono a me, il richiedente, un po 'di fiducia , poiché la loro base di codice è una delle loro risorse più preziose. Significa anche che non si vergognano del loro codice, che sono fiduciosi che mostrarmi il codice mi aiuterà a lavorare con loro.
  • Se non ti mostreranno alcun esempio di codice, allora non deve essere una bandiera rossa, ma è saggio chiedersi entrambi perché non condivideranno (molto probabilmente, semplicemente non possono farlo per motivi legali), oltre a spiegare perché vuoi vederne alcuni. Non credo che mostrare interesse per il loro codice sarà visto come un segno negativo, a patto che tu lo chieda educatamente e positivamente.

E poi ci sono altri effetti collaterali:

È improbabile che le aziende, quelle che accettano di mostrarti il ​​tuo codice, mi invieranno semplicemente un tarball di file sorgente contenente l'ultima versione della loro intera base di codice, per ovvie ragioni. Se mi mostrano un codice, lo faranno sotto forma di una piccola dimostrazione, il che è fantastico: significa che posso parlare con uno dei miei potenziali colleghi, mi permette di fare più domande sulla loro cultura di codifica, i processi, e codebase, e idealmente, mi aiuterà ad avviare una discussione professionale in cui posso sia dimostrare abilità e conoscenza sia apprendere di più sull'ambiente di lavoro. Significa anche che riesco a esaminare gli strumenti che usano, il che è anche abbastanza approfondito - ad esempio, se il progetto che mi mostrano si basa fortemente su un IDE particolare, ciò significa che tutti lo usano, il che può essere buono o cattivo. E infine,


1
Se il potenziale datore di lavoro ti mostra un codice chiaramente negativo, ricorda che potrebbe essere un'opportunità per condurli a migliorare il loro codice e i loro processi. Come dice il vecchio proverbio "Posso solo rovinare perfettamente, ma posso riparare rotto!". Inoltre, ricorda che il codice mostrato o presentato da un candidato è stato probabilmente sottoposto a un rigore e una revisione molto maggiori rispetto ad altri codici.
Akton,

@akton È il mio atteggiamento nei confronti del cattivo codice. Tuttavia è inutile quando sei solo nella tua ricerca "correzione del codice disordinato". Chiedere di vedere un buon codice potrebbe aiutare a sentire se il tuo futuro team apprezza cose come SOLID
Simon Bergot,

1
"Chiedo sempre di vedere un po 'di codice" Ma dopo come ti viene mostrato il codice? Stai chiedendo loro di preparare qualcosa in anticipo o di inviarti qualcosa in seguito? Non importa in che modo lo guardi, sembra poco pratico.
Burhan Ali,

1
@BurhanAli: chiedo solo. Molti si rifiutano di mostrarmene, e di solito mi danno buone ragioni, il che va bene. Coloro che sono d'accordo mi danno un tour supervisionato; Dubito che qualcuno mi invierebbe un set completo di fonti da approfondire, ma fare clic sul progetto in un IDE mentre guardo è spesso accettabile.
tdammers,

In molti casi penso che il codice che vorrei davvero vedere sarebbe considerato chiuso come vantaggio competitivo. Questo sarà il codice che conta di più per me ... tuttavia, se accettano di mostrarti il ​​codice e fa schifo che probabilmente è un segno che non capiscono il buon codice. Se fossi un lead probabilmente non ti mostrerei alcun codice interno non banale. Solo io però.
Rig

14

Tuttavia, sarebbe accettabile per il candidato chiedere all'intervistatore di mostrargli un piccolo codice che pensa sia ben scritto?

Suppongo che rientri nell'intero mantra "le interviste sono bidirezionali", ma non mi aspetto di ottenerne. Le preoccupazioni relative alla proprietà intellettuale sono il problema più ovvio dopo il fatto che non ci sono computer nella sala delle interviste e portarti a uno è un po 'imbarazzante.

Inoltre, sceglieranno il codice più bello e meno significativo possibile. Il miglior codice non è davvero un problema, il peggio è. È la stessa ragione per cui ottenere esempi di codice dai candidati è quasi inutile.


10
È ancora utile vedere se riescono a scegliere il buon codice per mostrarti. La parte più frustrante nel trattare con un codice errato spesso è che nessuno riconosce che è un male e dovrebbe essere risolto.
JGWeissman,

5
Inoltre, l'idea del buon codice dell'intervistatore potrebbe non essere la tua idea di buon codice. Penserei che sarebbe utile scoprirlo prima piuttosto che dopo.
Eric King,

1
Purtroppo, quando ho cercato di usare l'approccio "le interviste sono bidirezionali", la maggior parte dei datori di lavoro si sono comportati in modo irritato. Non mi è mai stato mostrato il codice. L'altra cosa che ho chiesto di vedere è un modello di dati, ma non ho avuto fortuna.
Antonio2011a,

12

sarebbe accettabile per il candidato chiedere all'intervistatore di mostrargli un piccolo codice che pensa sia ben scritto?

Puoi chiedere quello che vuoi, ma:

  • Probabilmente non lo capirai.

  • Se lo capisci, non ti dirà nulla di utile. Se il 10% del loro codice è bello e il resto è spaghetti, avrai comunque a che fare con gli spaghetti.

  • Sembrerai un pantalone elegante. Non è di grande aiuto se alla fine decidi che ti piacerebbe lavorare lì.

  • È uno spreco di tempo prezioso per l'intervista.

  • Ci sono modi migliori per scoprire cosa vuoi sapere. Poni domande come:

    • Quali sono gli indicatori più importanti della qualità del codice?
    • Manterrò principalmente codice esistente o scriverò nuovo codice?
    • Puoi spiegare brevemente come funziona il tuo sistema?
    • Hai un documento sugli standard di codifica e tutti lo seguono?

Buon punto! Tristemente porre una domanda come "Quali sono gli indicatori più importanti della qualità del codice?", Può essere percepito anche come un pantalone intelligente. (Dal mio punto di vista è una domanda ragionevole, ma a molti datori di lavoro non piace sentirsi interrogati da un potenziale subordinato).
Antonio2011a,

2
@ Antonio2011a Dovrebbe andare bene se chiedi giusto - forse "quali metriche di qualità del codice cerchi qui?" basta chiarire che vuoi saperne di più su come fanno le cose. Stai imparando su di loro, non amministrando un test. Potrebbe funzionare anche quando si richiede il codice: "Posso vedere come appare il tuo codice?" piuttosto che "Vorrei un esempio di ciò che consideri un buon codice".
Caleb,

3

Beh, dipende. Mi è sempre piaciuto sapere dove lavorerò.

Vedo un colloquio di lavoro bidirezionale. La società scopre di te e tu scopri della compagnia. Chiedere il codice può essere un po 'troppo, ma porre domande relative allo sviluppo dovrebbe essere OK.

Ad esempio, non accetterei un lavoro in cui la società non utilizza tecniche agili o TDD o non prevede di abbracciare e incoraggiare tali pratiche. Apprezzo anche quando un'azienda è orgogliosa del loro prodotto e del loro codice - quando sembra che l'intervistatore stia aspettando che tu chieda di vederlo, quindi ha una scusa per spiegare tutte le cose interessanti che fanno.


Concordato. Cerco di approfondire gli strumenti che usano? Il management paga per strumenti extra (componenti, utility) che molti posti non fanno. Anche l'atteggiamento verso gli strumenti open source è sempre positivo.
ozz,

2

Haha, questa è una domanda divertente. Non sarei offeso se qualcuno mi chiedesse un campione di codice durante l'intervista, ma probabilmente non mostrerei loro alcun codice, a meno che non avessero chiesto in anticipo e non avessi avuto il tempo di pianificare attentamente.

Capisco sicuramente l'intenzione di porre una domanda del genere. In cerca di lavoro, ho già chiesto il test Joel a un intervistatore. Non sapevano cosa fosse, ma erano felici di rispondere.

In alcuni punti, porre questo tipo di domande potrebbe migliorare le tue possibilità mentre potrebbe danneggiare le tue possibilità altrove. Il bello della vita è che se migliora le tue possibilità, allora è il tipo di posto in cui vorresti lavorare. Se fa male alle tue possibilità, non avresti comunque voluto quel lavoro.

Non vedo nulla da perdere chiedendo educatamente ed essendo in grado di spiegare perché vuoi vederlo.


"La bellezza della vita è che se migliora le tue possibilità, allora è il tipo di posto in cui vorresti lavorare." +1
Spidey,

2

Ho fatto questa domanda durante le mie due interviste in cui hanno affermato di avere migranti senior che si trasferivano su asp.net mvc3 o 4 o quando hanno detto di volere un codice fortemente commentato. Ho respinto in entrambe le occasioni a causa della mancanza di conoscenza dello standard di codice effettivo. L'unico standard che ho trovato era se funziona copia e incolla e funzionerà. Non farò questa domanda se sto facendo un nuovo progetto o devo scrivere un pezzo di codice indipendente dagli altri membri del team. Vedrò sicuramente il codice se vengo assunto per riparare un software o una funzione esistente e non dirò di sì a meno che non conosca la risposta. Supponiamo che tu non chieda e dicono che puoi aggiustare il datepicker per iniziare dalla data odierna. Quando guardi il codice legacy non vedi jquery o jquery ui ma un selettore di date personalizzato che ha tutte le date memorizzate nel file xml e ogni notte viene eseguito un processo cron per aggiornarci su mesi futuri. Ciò darebbe inizio al mal di testa perché il codice per raggiungere questo obiettivo è inferiore alle parole di questo esempio. Se hai intenzione di lavorare sul loro codice chiedi di vederlo. Non chiedere è come fare un'offerta per un lavoro credendo che il cliente abbia detto che è piccolo. Potrebbe possedere 20 acri di terreno e il giardinaggio sul suo 1 acro è piccolo per lui, ma Gardner non può far pagare 50 sterline solo perché tutti i suoi piccoli lavori iniziano da 50.


1

Tendo a lavorare per aziende in cui almeno parte del loro lavoro è open source, quindi è banale trovare esempi di codice. Capisco chi lavora nell'azienda, quindi capisco le loro maniglie online. Dato che le persone tendono a usare sempre lo stesso nome di schermo, è facile trovare dove hanno commesso il codice, indipendentemente dal fatto che fossero su Github, Bitbucket o da qualche altra parte.

La mia attuale azienda ha un sacco di codice ospitato su Github, quindi è stato facile vedere con cosa lavorano, quanto è grande la loro base di codice e cosa sembra non essere più interessante.

Non chiederei mai un campione, semplicemente perché ti mostreranno il codice migliore che hanno. Questo non è il codice con cui lavorerai. Probabilmente è alloggiato in una campana di vetro in una stanza chiusa a chiave. Lavorerai con il codice disordinato con cui molte persone hanno dovuto fare i conti.


0

È fantastico se riesci a ottenerlo. A volte non è possibile senza accordi di tipo NDA, ma è sempre bene provare. Per aumentare le tue probabilità, fai sapere ai tuoi intervistatori che lo desideri con largo anticipo (un paio di giorni) in modo che possano avere in mente qualcosa da mostrarti.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.