Modifica ed esclusione di responsabilità: non siamo Stati Uniti e l'utilizzo della parola "stage" di seguito non è corretto. Non si riferisce a uno stage negli Stati Uniti (come mi è stato detto di seguito significa qualcosa di diverso). Poiché questo è più simile a un ambiente accademico, questa domanda non appartiene a questo sito. Assumiamo studenti universitari per svolgere attività non commerciali prima che vengano introdotti a progetti reali (tale "stage" è richiesto anche per finire l'università nel mio paese)
Sono un mentore di stage presso la mia azienda (IT) per un gruppo di più persone. L'ho già fatto diverse volte. Il compito assegnato agli stagisti è un'applicazione (ognuno lavora sul proprio repository). Di solito iniziano con un codice di cattivo stile, dopodiché li guidiamo a riscriverlo correttamente, utilizzando modelli di progettazione e codice pulito, in modo che possano apprendere e confrontare il codice corretto con i loro errori precedenti. Di solito ci ritroviamo con un insieme molto specifico di modelli di progettazione e architettura interna.
Quindi, poche ore dopo l'inizio del tirocinio, uno degli stagisti mi ha mostrato il suo progetto completato. Mi ci sono voluti solo pochi secondi per rendermi conto che aveva ottenuto il progetto da (probabilmente) uno degli ex stagisti che conosceva. Gli stessi pezzi di logica complessa, lo stesso sofisticato mix di design pattern.
Ho controllato la cronologia locale del progetto nel suo IDE: tutto il codice complesso è apparso contemporaneamente senza sviluppo. Ho iniziato a fargli domande: non aveva idea di come funziona l'applicazione internamente. È diventato subito molto nervoso, invece di rispondere alle mie domande stava praticamente leggendo il codice dall'IDE ... Gli ho chiesto se è l'autore di questo codice - ha confermato di averlo scritto.
Tuttavia, assolutamente non ha scritto questo codice. Nemmeno io avrei potuto svolgere questo compito così perfettamente in poche ore e sono uno sviluppatore professionista da anni ormai.
Cosa dovrei fare con questo ragazzo? È stato uno dei migliori candidati che abbiamo intervistato. Sicuramente sa come scrivere codice. Le opzioni sono:
- licenziatelo domani mattina, per aver barato e mentito al riguardo
- avvicinatelo in privato e informatelo che so che non è l'autore di questo codice, spiega che lo scopo del tirocinio è imparare, e copiando il codice non migliora le sue possibilità di impiego, ma le rovina, chiedigli di cancellare il codice e ricominciare da capo
Il fatto è che, prima che iniziassero, ho chiarito che avranno tutto il tempo necessario per completare questa attività e che va bene se dovranno cambiare l'intera applicazione alcune volte, perché lo scopo di tutto questo è imparare.
Inoltre, mi sento un po 'offeso personalmente, perché quello stagista deve pensare che sono un idiota se sente di poter farla franca con qualcosa del genere.
EDIT: ho parlato con lui. Mi ha detto che ha "copiato parti del codice da qualche parte" perché sa già come fare tutto comunque (non l'ha fatto, perché non poteva spiegare nulla di quel codice, ma non importa) e si sente meglio rispetto ad altri stagisti comunque perché ha più esperienza. Quindi gli ho dato un compito: aggiungere alcune funzionalità alla sua applicazione - non particolarmente difficile, ma non sono mai state aggiunte prima a nessuna delle nostre domande di "stage".
Dopo 30 minuti, si è dimesso dallo stage da solo.