Come si gestisce uno stagista in modo efficace? [duplicare]

27

Uno stagista inizierà presto con noi per un paio di mesi prima di andare all'università. Il tirocinante è fuori dalla scuola superiore e ha qualche esperienza di programmazione, ma non ha mai frequentato un corso di informatica a livello universitario o svolto un lavoro di programmazione. Inoltre, lo stagista non ha mai utilizzato il 99 percento delle tecnologie nel nostro negozio. Come capo / responsabile della squadra, so che ci sono cento diverse attività di programmazione che il team deve svolgere. Non voglio sovraccaricare lo stagista, ma voglio ancora che lo stagista sia utile.

Da qualcuno che ha avuto un'esperienza simile come hai gestito il tirocinante in merito a:

  1. Hai gestito in modo parziale il tirocinante o eri accomodante?
  2. Hai spiegato parti del code-base o lo hai lasciato allo stagista per capire?
  3. Hai fornito l'interno al controllo del codice sorgente o hai commesso manualmente le modifiche dopo averle controllate?
  4. Hai applicato norme / regole di codifica?

Rispondi alle domande e menziona ciò che pensavi funzionasse meglio per 1-4.

Ho dimenticato qualcosa?

    
posta O.O 17.06.2011 - 20:21
fonte

10 risposte

17

Did you micro-manage the intern or were you easygoing?

Il progetto su cui stavamo lavorando era ragionevolmente molto stressato, quindi volevamo farlo arrivare allo stagista, ma non volevamo sottolinearlo troppo. Quindi siamo stati piuttosto tranquilli.

Le attività assegnate dovevano essere fatte, ma erano a bassa priorità. Ciò significava che le parti che stavano facendo erano "fuori dal percorso critico".

Detto questo, ho passato un po 'di tempo con lo stagista nel primo momento. È difficile giudicare se questo fosse "microgestione" o semplicemente "portare alla velocità".

Did you explain parts of the code-base or leave it up to the intern to figure out?

Il punto di partenza è stato l'automazione di alcuni test. Il code-base era Qt, ma le librerie che stavamo usando potevano essere racchiuse in strumenti da riga di comando. Ne avevamo già fatto un paio, ma ne avevamo bisogno di più (parti diverse di un'API), così abbiamo fatto il tirocinio attraverso quelli esistenti e abbiamo mostrato cosa doveva accadere per i nuovi.

Did you give the intern access to source-control or did you manually commit their changes after checking them?

Per le prime settimane li abbiamo fatti lavorare fuori dal controllo del codice sorgente, ma dopo un po 'si è rivelato essere un doppio job, quindi abbiamo dato loro l'accesso diretto. Certo, l'hanno soffiato un paio di volte, ma non più (o meno!) Del principale team di sviluppo.

Did you enforce coding standards/rules?

Sicuramente. Questo era un vero progetto. Avevamo alcuni strumenti che permettevano una facile adesione ad alcune parti dello standard, ma altri bit dovevano essere appresi.

Did I forget anything?

Non proprio. L'unica cosa che vorrei aggiungere è che dovresti trattare lo stagista come professionista. Forse non è uno sviluppatore professionista (ancora), ma come professionista. Ciò significa fidarsi di loro e renderli consapevoli di aver fiducia in loro. Se commettono un errore, va bene; se tradiscono (o usano male) la fiducia, questo è un problema.

Rendili consapevoli di eventuali problemi non appena ne sei a conoscenza. Ancora una volta, professionalmente.

    
risposta data 17.06.2011 - 20:31
fonte
15

Beh, non sono un datore di lavoro, ma piuttosto uno stagista, quindi ho pensato di darti qualcosa dal mio punto di vista. Ho appena finito il mio secondo anno e ho fatto uno stage con un team di persone che fanno lo sviluppo web per una società di fornitura (come gestire i database e tutte quelle cose divertenti). Non so quanto sia esperto il tuo tirocinante, ma ho avuto un paio di anni di lezioni di programmazione orientate agli oggetti, quindi ho avuto le basi in qualche modo in basso. La cosa divertente è che non avevo praticamente nessuna esperienza di programmazione lato server e questo è ciò che ha fatto questo team di persone. Ho dovuto imparare molti nuovi concetti. Quando sono stato assunto, hanno anche detto di sapere che non ho alcuna esperienza in merito, quindi sarà un'esperienza di apprendimento.

È uno stage molto orientato alla ricerca, e penso che la maggior parte degli stage di programmazione siano perché lo studente non può avere alcuna esperienza con la tecnologia per cui è stato assunto. Mi incoraggiano a utilizzare Google e i siti Web StackExchange quando raggiungo un blocco stradale o semplicemente vogliono imparare qualcosa di nuovo. Detto questo, non penso che dovresti avere la micro-gestione del tuo tirocinante perché se lui o lei non vuole imparare tutto ciò che possono su detta tecnologia, allora probabilmente non dovrebbero lavorare lì. Penso che gli stage di programmazione dovrebbero essere abbastanza accomodanti, purché lo stagista o il dipendente dimostrino la volontà e la volontà di imparare ed evolvere.

Anche se ho già avuto esperienza con il framework .NET, nella prima settimana il mio mentore mi ha portato nella stanza degli allenamenti e ne abbiamo analizzato il più possibile. Abbiamo iniziato con le nozioni di base e quando siamo arrivati a qualcosa che già conoscevo o mi sentivo a mio agio, glielo feci sapere. Non fraintendermi, non abbiamo sprecato il tempo passando sopra ogni piccola cosa, ma era importante avere un ripasso in certe cose.

Per quanto riguarda la tua domanda con il controllo del codice sorgente, probabilmente dipende da te, o quanto bene ti fidi dello stagista. Personalmente ho accesso a tutti i database di sviluppo delle aziende e alla maggior parte delle cose a cui il mio team / mentori ha accesso. Ma penso che prima di commettere qualche cambiamento importante devo lasciarglielo fare, quindi potrebbe essere meglio se tu impegni le loro modifiche dopo averle controllate.

La programmazione non riguarda la memorizzazione della sintassi e la capacità di estrarre un sacco di codice, e penso che sia ciò che molti principianti come me stanno imparando. Ci sono alcune cose che il mio mentore mi mostra e lui specificamente dice che questo è il modo in cui gli piace farlo, e che ci sono altri modi per farlo. Ha detto che ci sono molti modi per fare qualcosa, ma che ci sono anche modi sbagliati per fare qualcosa. Quindi penso che sia importante cercare di convincere lo stagista a capire i concetti alla base del codice, ma anche assicurarsi che sappiano che la tua strada non è l'unico modo di fare le cose.

Sono solo nella mia terza settimana di stage ed è stata un'esperienza straordinaria finora. Spero che questo abbia aiutato un po '.

    
risposta data 17.06.2011 - 20:45
fonte
7

Lo stesso che gestisci chiunque:

  • Scopri quanta direzione hanno bisogno e dagliela.
  • Fornisci loro le informazioni e l'assistenza di cui hanno bisogno; impostali per il successo.
  • Assicurati che non abbiano blocchi (interni o esterni) che impediscano loro di eseguire operazioni.
  • Fornisci supporto per imparare e crescere.
  • Stabilisci le aspettative per il loro comportamento e in che modo interagiranno con il resto del team.

Gli stagisti non sono categoricamente diversi dagli altri dipendenti. Dovresti trattarli come un individuo con le proprie competenze e carattere, proprio come fai con altri dipendenti.

Per quanto riguarda il controllo della versione: permetti loro di impegnarsi per il proprio (i) ramo (i). Con un sistema distribuito (come git), comunque, tutti dovrebbero probabilmente impegnarsi in una filiale.

    
risposta data 17.06.2011 - 20:43
fonte
6

Il mio metodo è di iniziare lo stagista in un compito che so che possono fare, ma so che mi sarà utile. Alcuni esempi stanno pulendo un po 'di codice HTML, apportando minuscole modifiche al codice, ecc.

Ho insegnato loro come utilizzare il controllo del codice sorgente sin dall'inizio e ho controllato il loro lavoro non appena completato. Se hanno completato l'operazione con successo, ho dato loro una nuova che era leggermente più complessa. Ho scoperto che il modo più semplice per convincere le persone a imparare un nuovo codice base / strumento / linguaggio è dare loro cose reali da fare e quindi indirizzarle verso le risorse di cui hanno bisogno per avere successo.

La singola cosa più importante che puoi insegnare a uno stagista, secondo me, è come imparare da soli. Dò loro abbastanza informazioni in modo che capiscano cosa cercare e dove cercare le loro risposte, ma mi fermo a corto di cucchiaio che le nutre. Se aumenti gradualmente la complessità dei compiti che dai a loro, rimarrai sorpreso dalla rapidità con cui possono essere aggiornati.

    
risposta data 17.06.2011 - 20:34
fonte
4

Sto parlando dell'esperienza personale di un tirocinante meno di 10 anni fa.

  1. Mi aspettavo molto dal primo giorno ma non sono mai stato gestito da micro. Mi è stato assegnato il compito di creare moduli aziendali personalizzati sin dal primo giorno che fossero importanti in termini strategici ma non di alta priorità. Il mio capo era esigente ma equo quando si trattava di gestione del tempo e risultati. Ho apprezzato di essere trattato come un dipendente e non come un ostacolo.

  2. Il maggiore impatto che il mio capo ha avuto su di me durante il mio stage è stato quando mi ha chiesto di smettere di fare domande senza pensare a quello che stavo chiedendo. Mi ha chiesto di effettuare ricerche approfondite per vedere se potevo rispondere alle domande da solo. Questo mi ha fatto avere paura di fare domande per un po 'di tempo, mi ha insegnato a fare ricerca e capacità di analisi che a lungo termine mi hanno reso un programmatore migliore e un impiegato più efficace.

  3. Il mio codice è stato rivisto prima di essere applicato a qualsiasi codice di produzione. Consiglio vivamente di creare un ambiente di test sicuro per i tirocinanti.

risposta data 17.06.2011 - 20:52
fonte
4

Due parole per te. Pair-programmazione. Associalo con un membro anziano della squadra. Se il tuo ragazzo anziano è bravo, non sarà un ostacolo, se lo stagista è buono, contribuirà dopo alcuni giorni di osservazione. Ottimo modo per determinare se dovresti invitarlo a tornare anche l'anno prossimo.

    
risposta data 17.06.2011 - 22:01
fonte
3

Vorrei avviarli dando loro i compiti più semplici che hai bisogno di fare, quindi li avanza in compiti più complessi man mano che diventano più abili.

Per gestirli in modo efficace:

  1. Controllali periodicamente, ma dagli spazio per imparare e scoprire da soli.
  2. Spiega cosa hanno bisogno di sapere ad alto livello, ma lascia che sia loro qualcosa da capire.
  3. Sicuramente concedi loro l'accesso al tuo controllo del codice sorgente, ma falli controllare prima di eseguire il commit delle modifiche. Questa è una buona opportunità per fare una revisione del codice e spiegare tutto ciò che non è all'altezza. Successivamente, quando le tue revisioni del codice scoprono meno problemi, fai in modo che eseguano le modifiche senza prima consultarti, ma poi controlla il lavoro svolto da te stesso rivedendo le modifiche apportate nel tuo controllo del codice sorgente.
  4. Definisci decisamente gli standard di programmazione e le regole a cui altri sviluppatori del tuo team aderiscono.

Nel complesso, modellali in ciò che desideri, ma lascia loro il tempo per imparare da soli. Renditi disponibile perché avranno delle domande per te.

    
risposta data 17.06.2011 - 20:32
fonte
3

Abbiamo avuto una situazione del genere una volta. Lo stagista è venuto per l'estate poco prima di iniziare l'università. Stava andando in un programma di informatica però.

In realtà non lo abbiamo lasciato codificare da solo. Abbiamo iniziato con lui a seguire altri sviluppatori. Quando l'ho pedinato, abbiamo fatto un paio di programmazione che sembrava divertirsi. Questo gli ha dato la possibilità di scrivere del codice mentre faceva anche domande. È stata una buona esperienza di apprendimento per lui.

Dopo aver ruotato con le persone, abbiamo deciso di affidarlo al team di controllo qualità. Il responsabile del controllo qualità gli ha insegnato come eseguire i piani di test, come redigere i ticket per i difetti e come svolgere varie attività nell'ambiente di controllo qualità, e ci è riuscito molto bene. Si è rivelato essere uno dei migliori QA della squadra.

Per quanto riguarda le tue domande.

  1. Facile andare. Ma poi non ci aspettavamo troppo da lui
  2. Spiegato come non ha mai lavorato su di esso senza un regalo di sviluppo.
  3. Gli abbiamo dato accesso al codice sorgente e abbiamo fatto alcuni codici sul suo computer, ma poi è stato supervisionato.
  4. Sì, gli abbiamo fatto leggere gli standard di codifica per la nostra azienda durante la sua prima settimana.
risposta data 17.06.2011 - 20:37
fonte
3

Did you micro-manage the intern or were you easygoing?

1 - L'andare facile mostrerà che ti fidi dello stagista, tuttavia, imposta checkpoint e tappe frequenti. Le mischie giornaliere funzionano anche molto bene per toccare la base su dove si trovano.

Did you explain parts of the code-base or leave it up to the intern to figure out?

2 - Salva entrambi un po 'di esasperazione e spiega i tratti generali, e spiega dove pensi che alcune delle parti più difficili potrebbero essere. Oltre a ciò, lascia che lo stagista prenda l'iniziativa e chiarisca che sei disponibile per le domande (e poi, essere disponibile). Quanto più documentato è il tuo codice, tanto minore è il ruolo attivo che devi svolgere.

Did you give the intern access to source-control or did you manually commit their changes after checking them?

3 - Penso che gli impegni manuali ti daranno la possibilità di rivedere il codice per i tuoi standard di qualità, ma fornirò anche una grande possibilità di feedback dal mondo reale allo stagista e suggerirò percorsi per miglioramenti (non renderlo un pelo scegli la sessione comunque). In questo caso, a causa della mancanza di esperienza del tuo tirocinante, probabilmente preferirei rivedere piuttosto che permettere il commit.

Did you enforce coding standards/rules?

4 - Sì. Gli stage dovrebbero riguardare l'apprendimento di ciò che è previsto nel mondo reale. Il lavoro prodotto deve essere accettabile per te essere prezioso, ma deve anche essere prezioso per lo stagista.

Va bene aspettarsi risultati di qualità professionale, purché si riconosca fondamentalmente che lo stagista richiederà più tempo, assistenza, pazienza e assistenza per produrre quell'output.

Spero che questo aiuti

    
risposta data 17.06.2011 - 20:31
fonte
2

Un'altra prospettiva dello stagista.

Lavoro per un'azienda che non ha sviluppato software come azienda. Esiste tuttavia un dipartimento IT responsabile della risoluzione dei problemi relativi alla tecnologia. Ho fatto due stage qui e ora sono un impiegato a tempo parziale da quando sono ancora a scuola.

Quando ho iniziato c'erano 4 altri "programmatori" di cui 2 erano appaltatori che si occupavano principalmente di report SQL e gli altri due e uno degli appaltatori hanno anche trattato un sistema legacy che l'intera azienda era ancora legata all'anca con.

Quando sono entrato nel mio capo volevo che lavorassi a tutti questi progetti che aveva in mente, ma semplicemente non avevo le risorse su cui lavorare. Da allora mi occupo di automatizzare le attività e di estrarre dati da alcuni software che utilizziamo e rendendoli disponibili tramite una piattaforma web di aggiornamento dal vivo. Inoltre, ho lavorato a un'app per iPhone per i nostri clienti e altri progetti per aiutare a portare denaro in azienda raggiungendo i nostri clienti attraverso piattaforme web.

Per la maggior parte del tempo sono stato incustodito quando lavoravo, mostrando solo i risultati finali e prendendo feedback su ciò che ho fatto. Inoltre, sono stato buttato nel profondo un bel po 'di progetti con tecnologia che non mi è familiare come la programmazione per l'iPhone.

Direi 1. Non gestire micro ed essere facile andare sul tuo tirocinante. Dare loro un po 'di spazio per esplorare e vedere dove hanno bisogno di aiuto. Non solo respira giù il suo collo sin dall'inizio. Sii facile, ma sappi che ci si aspetta risultati.

2. Questo è davvero un tipo di domanda "dipende". Se hai intenzione di avere il tuo codice di tirocinio che avrà bisogno della tua base di codice esistente allora sì, dovrai spiegarglielo perché ottengano. Se stanno lavorando su qualcosa che non utilizza la base di codice esistente ed è in qualche modo separato dal resto del progetto, allora non riesco a vedere il vantaggio nello spiegare la base di codice a loro.

3. Il controllo delle risorse consente revisioni corrette? Potrebbe essere bello avere qualcuno che superi il suo codice prima di inviarlo, ma permettergli di inviarlo. Sembra che sarebbe noioso per gli altri membri dover inviare il codice per il tuo tirocinante.

4. Sì, dovrebbero essere applicati standard e regole di codifica. Lo stagista è lì per imparare!

    
risposta data 17.06.2011 - 22:33
fonte

Leggi altre domande sui tag