Come ispirare uno stagista con la programmazione? [chiuso]

8

La situazione è questa: abbiamo fatto un tirocinante per un'estate pensando che se lo raggiungerà durante l'estate, lo terremo come uno sviluppatore junior part time.
L'abbiamo portato dopo il suo primo anno all'università, quindi la sua conoscenza era troppo bassa per essere coinvolta in progetti reali (in realtà ha programmato solo all'università), quindi il mio compito era spingere quante più cose possibile per renderlo pronto per unirsi progetti reali a settembre. Finché siamo un team di sviluppo remoto, gli abbiamo dato la possibilità di avere il suo tirocinio da remoto, con orari flessibili.

Quindi sono passati due mesi e non sono impressionato dai suoi progressi. Ho dato diversi compiti da implementare, accesso alle risorse di apprendimento, percorsi di avvio consigliati e così via, ho concordato che segnalerà ogni paio di giorni, abbiamo avuto sessioni di coppia di volta in volta, rivisto il suo codice insieme ed ecc.

Ad ogni modo, sembra che abbia speso meno tempo a scrivere il codice di quanto mi aspettassi e prima di dire che non si è comportato abbastanza bene per unirsi al nostro team, pensavo che fosse colpa mia, forse stavo spingendo troppe cose, che è importante nei progetti di vita reale (come test di unità, codice di strutturazione, materiale di database, ecc.) e non abbastanza cose divertenti, che lo collegherebbero alla programmazione e questa è la ragione per cui ha trascorso meno tempo di quanto speravo .

Quindi mi restano circa 20 giorni e posso usarli per ispirarlo con la programmazione, la domanda è con cosa e come?

    
posta Giedrius 09.08.2012 - 09:50
fonte

9 risposte

7

Che ne dici di lavorare in mini sprint giornalieri.

Inizia il giorno (9:00) facendogli capire cosa intende fare durante la giornata (e gestisci le sue aspettative) e poi parla di cosa è stato completato (17:00) - compreso come sono stati affrontati i problemi con. Lentamente, nel tempo, estendi gli sprint una volta che sarai più soddisfatto del comportamento.

Oltre a questo, lascialo andare avanti. Se non sentono la motivazione per portare a termine il lavoro, è per questo che prendi uno stagista - entrambi per ottenere esperienza, ma per imparare anche come funzionano. C'est la vie.

    
risposta data 09.08.2012 - 11:03
fonte
6

Sembra che tu abbia spinto troppo strong e lui potrebbe essere un po 'sopraffatto, ho conosciuto sviluppatori esperti che non potevano davvero cogliere test unitari e immagino che fosse troppo da gestire per qualcuno con solo un anno di istruzione formale . E non puoi davvero forzare l'ispirazione.

La prima cosa che farei sarebbe parlare con lui e scoprire cosa ha trovato divertente finora, e concentrarsi su quello per il resto del suo stage. Possiamo proporre mille divertenti attività legate alla programmazione, ma quello che è divertente per me probabilmente non sarà divertente per il tuo tirocinante.

Se c'è almeno un aspetto del lavoro che ha trovato divertente, suggerirei a voi due di costruire un mini progetto intorno ad esso, anche qualcosa di non correlato con il lavoro. Se ad esempio si è divertito a lavorare con i database (ne dubito;), potresti creare un'applicazione CRUD di base e quindi espandere le procedure memorizzate e altri materiali di magia nera correlati al database.

Alla fine della giornata, però, dovresti essere preparato alla possibilità che non sia proprio quello che stai cercando.

    
risposta data 09.08.2012 - 10:05
fonte
6

Potresti essere pushing too hard con test delle unità e personale del database reale. Tuttavia, il suo livello di abilità dovrebbe essere in una buona forma per risolvere i bug ormai.

Il mio understanding of internship è un po ' diverso . Per lo più gli stagisti sono nel loro ultimo anno di studio di informatica, che hanno un buon potenziale per la ricerca e conoscono le basi della scrittura del codice, costruendo le proprie piccole applicazioni. Tuttavia, essere in un primo anno di università e non avere esperienza di codice prima di iniziare l'università rende il candidato interno molto poco qualificato.

Credo che l'abilità più importante nel programmatore stagista / junior sia his analytically reasoning skills. Potrebbe essere meglio averlo in ufficio e guidarlo faccia a faccia mentre monitora i suoi progressi e l'approccio nell'implementazione dei compiti assegnati. Perché, puoi anche osservare le sue abilità trasversali (come la comunicazione, l'attitudine, l'adattamento generale all'ambiente aziendale).

In terms of motivation: puoi ispirarlo guidando verso le risorse giuste (per migliorare le sue capacità o fornire la possibilità di apprendere) e assegnando compiti piccoli e fattibili ogni giorno. Potrebbe sentirsi più soddisfatto se compire alcuni compiti di basso livello ogni giorno e diventare più interessato al processo di apprendimento e contribuire al real code. Tuttavia, raccomando vivamente di rivedere il suo codice prima controllo sul trunk principale.

    
risposta data 09.08.2012 - 10:06
fonte
5

Penso che il modo migliore per ispirarlo è dargli dei veri compiti, non significa che dovresti coinvolgerlo nello sviluppo del prodotto, ma di solito ci sono sempre processi che necessitano di miglioramenti all'interno del processo di sviluppo, affidandogli alcune attività di sviluppo di alcune utilità che verranno successivamente utilizzate dal / dai team / i potrebbe essere un ottimo modo per fargli acquisire interesse e allo stesso tempo sapere come funzionano i processi interni.

Saluti

    
risposta data 09.08.2012 - 10:54
fonte
3

Se vuoi ispirarlo nella programmazione potresti dover uscire dal contesto aziendale. I tirocinanti sono fortunati ad effettuare tirocini e in genere prendono ciò che possono ottenere, quindi non offenderti se il tuo core work non si fa saltare la gonna. Gli stagisti hanno ancora della polvere fatata nel sangue, la maggior parte dei giovani programmatori diventano programmatori a causa del potere di creare e l'euforia di creare qualcosa di fantastico.

Scopri quali sono i suoi hobby e quale sarebbe il suo lavoro di programmazione dei sogni. Fagli fare qualcosa che pensa sia fantastico, che si tratti di un videogioco 2D o di un database per monitorare le carte Pokemon.

Se fa qualcosa nella sua area di interesse, sarà eccitato. Potresti aiutare a regnare nel campo di applicazione in modo che ciò che fa sia realistico per il periodo di tempo. Puoi anche evidenziare gli argomenti lungo il percorso che sono rilevanti nell'ambito aziendale in cui puoi fornire l'istruzione, ad es.

You chose to structure your db like so, what was your thought process behind this? What would happen if xyz?

    
risposta data 09.08.2012 - 22:48
fonte
2

Separa le due parti del tuo problema.

1) Per ispirare.

2) Per insegnare.

È un post-laurea con esperienza di programmazione, quindi potrebbe essere troppo tardi per ispirarlo, o per fargli "vedere" la maestosità del codice. Non è tua responsabilità ispirarlo, ma capisco perché vorresti.

Insegnando invece, dalla tua descrizione sembra che tu abbia scaricato un sacco di cose su di lui e si aspettava che lo risolva. Poiché hai una quantità limitata di tempo, imposta progetti più piccoli, eliminali uno alla volta e ottieni un feedback giornaliero. Assicurati di seguirlo su di lui durante il giorno e chiarisci che se hanno un problema, chiedi piuttosto che passare tutto il giorno a lottare senza ottenere nulla.

    
risposta data 09.08.2012 - 10:09
fonte
2

it looks like he spent less time writing code than I expected

Scopri perché - sta cercando di scrivere codice, ma ha problemi a farlo funzionare? O non sta nemmeno passando abbastanza tempo a provarci? Se il primo è il caso, dovresti aiutarlo di più, se è quest'ultimo, allora meglio lasciarlo andare.

    
risposta data 09.08.2012 - 13:17
fonte
2

Penso che ci siano alcuni problemi su entrambe le estremità. Potrebbe essere uno degli scenari che hai presentato.

Scenario 1: lo stagista è sottoperformante

Il telecomando funzionante è la bandiera qui. Ci vuole un individuo molto disciplinato per lavorare effettivamente in remoto. Con poca esperienza, il tirocinante potrebbe non avere la combinazione di motivazione e conoscenza richieste per eseguire bene da remoto. Se hai bisogno di una posizione remota, questo interno non fa per te.

Inoltre, citi l'aspetto divertente. So che è più raro, ma perché non cercare qualcuno che apprezzi pienamente i compiti che gli stai assegnando. Onestamente, SCRUM e TDD possono essere molto divertenti, hanno solo la mentalità giusta. Sì, sono pochi e distanti tra loro, ma ci sono persone che apprezzano davvero l'apprendimento di nuove tecnologie e metodologie CS (= Forse è necessario continuare la ricerca.

Scenario 2: non stai seguendo abbastanza da vicino

Credo che se fosse così, lo sapresti. Se lo stagista era motivato, veniva da te con domande. Ti chiederà quando non capirà qualcosa. Tuttavia, se sta scrivendo codice errato e non hai mai detto nulla, allora potresti doverne parlare di più. L'accordo è, con la sua esperienza, che non ha intenzione di sapere tutto il tempo se sta scrivendo codice cattivo. Quindi se non hai mai parlato quando hai visto problemi, hai solo te stesso da incolpare.

In ogni caso, non c'è nulla di sbagliato nel decidere che lo stagista non è adatto per il lavoro o non è ancora pronto. Sono giovani e hanno molto da imparare. Potrebbero aver bisogno di qualche altro anno per essere solo uno studente prima di essere davvero motivato a fare un lavoro professionale. Se ritieni che il problema sia risolvibile, dagli un colpo nelle prossime settimane e cerca di mantenere il tirocinante. In caso contrario, entrambi avete avuto un'estate di apprendimento e basta.

La mia opinione personale: se stabilisco linee guida e requisiti e qualcuno non li sta incontrando, non ho intenzione di lavorare ulteriormente con loro perché so e lavoro con persone che amano ciò che fanno, anche il CRUD e che sono notevolmente motivati a fare un grande prodotto. Qualcuno come questo è destinato ad avere successo (= Alla fine però, l'unico modo per arrivare alla fine del problema è parlare con il tirocinante. Prova ad avere una riunione di progresso (o qualcosa del genere) in cui puoi parlare con il tirocinante prima di prendere qualsiasi decisione.

    
risposta data 09.08.2012 - 23:39
fonte
2

Consiglio di iniziare lasciandolo guardare oltre le spalle mentre si codifica (più difficile da fare da remoto ma con un buon programma di condivisione dello schermo e software vocale, è possibile). Prendi una funzione dal requisito di eseguire tutto il tempo spiegandogli cosa stai facendo.

Ripeti l'operazione alcune volte e nel prossimo compito, dopo che avrai frantumato il codice, dargli il timone per un po '. Assicurati di fornire suggerimenti quando si blocca in modo da non essere frustrato, ma resisti alla tentazione di subentrare subito. Scegli un passaggio molto specifico che probabilmente hai ripetuto un paio di volte prima, in modo da poter rinforzare l'allenamento.

Continua a lasciargli prendere il controllo con più frequenza fino a quando non finirà di occupare da solo tutte le funzionalità.

Dargli solo un sacco di libri e compiti su cui lavorare causerà un sovraccarico.

    
risposta data 10.08.2012 - 00:31
fonte

Leggi altre domande sui tag