Anche se questo è generalmente un problema, penso che il problema sia inesistente a causa dell'installazione.
Il richiedente ti ha inviato del codice sorgente. Come o perché è successo?
Beh, ovviamente ci sono solo tre possibilità:
- Hai assegnato al candidato un incarico per risolvere un particolare problema (ben definito) per valutare le sue capacità.
- Il richiedente vuole mostrare qualcosa di interessante che ha scritto.
- Il richiedente è un coglione o una spia o una persona altrimenti maliziosa e non è effettivamente interessato ad essere assunto. Tutto quello che spera è che tu sia abbastanza stupido da eseguire il suo codice.
Circa 2) e 3)
Il rischio principale è distinguere tra 2) e 3). È molto probabile che se qualunque cosa abbia scritto valga la pena guardare , è qualcosa che puoi ottenere il codice sorgente per online (da una fonte "neutra") e che potresti anche avere familiarità con te, o è qualcosa che in realtà non indossi non voglio guardare perché violeresti la proprietà intellettuale di un concorrente (ex datore di lavoro). Quest'ultimo significherebbe che non vorrai assumere quella persona comunque.
Se riesci a ottenere la fonte online, fallo. Se riesci a verificare il contributo del richiedente a un software noto (incluso il software proprietario) con il suo nome da qualche parte nei titoli di coda, fallo.
In ogni altro caso, ignora semplicemente tutto ciò che ti ha inviato. Non vale la pena guardare, o illegale o ad alto rischio.
Circa 1)
Il richiedente ti ha inviato qualcosa perché gli hai assegnato un incarico. Se hai qualche competenza (che presumo tu faccia!), Quindi per un tipico incarico di programmazione (... che hai anche scelto te stesso!), Sarai in grado di dire se è una soluzione plausibile che sembra funzionare guardando il codice sorgente per meno di 30 secondi (più probabilmente 10 secondi).
Se non riesci a dire che il programma probabilmente funzionerà (o che cosa sta facendo) entro 30 secondi, colui che lo ha scritto non è il tipo di persona che vuoi assumere, fullstop. Vuoi persone che scrivono codice che altri umani possano capire e mantenere. Non vuoi qualcuno che sta cercando di diventare furbo con te, né qualcuno che vince regolarmente il contest offuscato C. Non importa nemmeno se il programma funziona. Non appena un'altra persona non riesce a capire il codice, non "funziona" mai.
Se il programma sembra che probabilmente funzionerà, ma trovi tutto ciò che sembra "strano" (diciamo, sequenze di escape Unicode Java, valori letterali di stringhe C ++, elementi che sembrano trigraphs, qualunque cosa), considera l'assegnazione come "fail", sposta al prossimo richiedente. Non è necessario includere qualcosa di simile nel 99% di tutti i programmi (e, sicuramente, non nel tuo compito - dovrei sperare). Quindi se trovi qualcosa di "strano" come quello, il candidato non è qualcuno che vorresti assumere.
Se il codice supera quel primo triage, potresti voler passare altri 2-3 minuti a guardarlo più a fondo. Se sei ancora soddisfatto di ciò che vedi dopo, puoi eseguirlo attraverso un analizzatore statico e compilarlo in una macchina virtuale con un livello di avviso elevato.
Ciò dovrebbe far emergere problemi che potresti aver perso durante la lettura della fonte (come invocare comportamenti indefiniti o restringere la conversione).
La compilazione ti dirà innanzitutto se il richiedente ha la necessaria diligenza e attenzione ai dettagli, non tanto se ha abilità di programmazione. Proprio come scrivere correttamente il nome del datore di lavoro sulla tua domanda e controllare l'ortografia del tuo CV prima di consegnarlo, è consigliabile assicurarsi che qualsiasi codice sorgente consegni sia compilato senza errori (e preferibilmente senza avvisi). Se qualcuno non riesce a farlo, non vuoi assumerlo.
Il rischio che accadano cose malvagie a questo punto (sfruttando il compilatore e uscendo dalla VM) è trascurabile, visto che hai già eseguito un controllo di plausibilità sul codice. Non succederà.