Ottenere i diplomati fino alla velocità?

6

Questa domanda mi ha fatto riflettere su come le comapny affrontano di recente - laureato.

  • I programmatori esperti si aspettano che i laureati CS scrivano codice pulito (per puro intendo codice facilmente comprensibile da altri - forse è troppo da aspettarsi?)
  • Oppure fare una porzione significativa di laureati al tuo posto (se ce ne sono) basta finire per testare e correggere piccoli bug su applicazioni esistenti?
  • E, anche se eseguono correzioni di bug, finisci per dedicare il doppio del tempo a controllare che non finiscano per rompere nulla e creare nuovi bug?

Come gestisci tali scenari quando le paia di programmazione e recensioni di codici non sono disponibili (per motivi come le scadenze personali) e anche quali tecniche hai trovato per essere sempre aggiornato?

Alcuni suggerimenti sarebbero grandiosi.

    
posta Simon 03.03.2011 - 16:40
fonte

6 risposte

8

Ho scoperto che il modo migliore è quello di avviarli su progetti o progetti di dimensioni molto ridotte o di correggerli in un sistema più grande. Questo di solito li familiarizza con le app del "mondo reale" e li aiuta a raggiungere gli altri sviluppatori. Quanto tempo ci vorrà per prenderli dipende dall'individuo e dai progetti a loro disposizione in quel momento, ma sembra che di solito cada tra 1-3 mesi.

    
risposta data 03.03.2011 - 16:48
fonte
3

Negli ultimi anni abbiamo avuto un discreto numero di stagisti e laureati, e la prima cosa che facciamo è sederci con loro e spiegare loro alcune cose sul codice reale:

  1. Oggi sai tutto.
  2. Domani, quando ti lasciamo iniziare a programmare, non sai niente.
  3. Ecco il nostro documento standard. Leggilo e seguilo. Tienilo a portata di mano perché ne avrai bisogno a portata di mano.
  4. Il tuo codice verrà sottoposto a revisione paritaria da {X} per i primi mesi fino a quando i nano-robot non avranno completamente assimilato il tuo cervello.

Manteniamo i nostri standard di formattazione del codice nel nostro documento standard, e ci aspettiamo che i giovani neoassunti lo seguano e di volta in volta hanno difficoltà a seguirlo mentre apprendono nuove abitudini. La nostra più grande preoccupazione è in realtà il "nuovo" sviluppatore senior della società {Z} che lo fa da 10 anni e non ha bisogno di seguire i nostri standard perché fa le cose a modo suo.

Se non potessimo fare le revisioni tra pari menzionate, dovremmo fidarci che il nuovo ragazzo segua lo standard (che predichiamo regolarmente). Alla fine, qualcosa verrà rivisto da pari se il giovane ha un problema di cui ha bisogno l'aiuto di un anziano, e in quel momento i pezzi saranno visti dal senior e se gli standard non sono stati seguiti, sarà menzionato e tentato una correzione.

    
risposta data 03.03.2011 - 17:02
fonte
2

Dipende un po 'da quello che le persone definiscono come "codice pulito" - Devo ancora incontrare qualcuno direttamente dal college che potrebbe scrivere codice di produzione pulito (e che includeva anche me più di 20 anni fa). La capacità di scrivere codice pulito e pronto per la produzione non è qualcosa con cui le persone nascono, di solito è il risultato di anni di esperienza e colleghi più esperti disposti a dedicare tempo al tutoraggio degli sviluppatori junior.

Non inizi uno sviluppatore junior su un grande progetto (ovviamente), ma normalmente dai compiti più piccoli, o correzioni di bug (il bug fixing è un buon modo per imparare il codice base) o implementare piccoli richieste di funzionalità.

Devi ottenere il peer del codice rivisto; normalmente mi aspetterei che almeno uno sviluppatore senior spenda una parte significativa del suo tempo con la persona minore per assicurarsi che stiano facendo la cosa giusta, scrivendo un buon codice e imparando il codice base.

Se ci si aspetta che lanci uno sviluppatore minore di fronte a una base di codice e si aspetti che sia produttivo senza passare una quantità ragionevole di tempo con loro (perché le tue scadenze riempiono tutto il tempo disponibile), quindi mi dispiace diciamo, la tua gestione ha bisogno di un controllo di realtà male . Qualsiasi nuova assunzione ridurrà la produttività di una squadra esistente, e una minore che ha anche bisogno di un tutoraggio di più.

    
risposta data 04.03.2011 - 23:27
fonte
1

Assegna loro piccoli compiti, monitora i risultati e invia loro un rapido feedback. Se il loro codice è difficile da leggere, lascialo riscriverlo finché non sei soddisfatto. Se vedi che mancano alcune conoscenze fondamentali, organizza sessioni di formazione o di mentoring per loro. Se fanno bene, possono ottenere compiti gradualmente più grandi.

    
risposta data 03.03.2011 - 17:01
fonte
0

Sulla base di alcuni dei compiti che ho visto pubblicati su SO e altrove, non mi aspetto molto dai nuovi laureati, perché gli vengono insegnate chiaramente le cattive abitudini.

IME, i nuovi laureati e stagisti ricevono il lavoro scout che nessun altro vuole fare; attività a bassa priorità e pulizia. Possono tagliare i loro denti in compiti relativamente semplici, imparare le corde mentre lavorano e lavorare con il codice presumibilmente all'altezza, in modo che possano imparare con l'esempio.

    
risposta data 03.03.2011 - 17:12
fonte
0

Per me quando ho iniziato ero un tester --- > piccolo bug fixer ---- > scrivere applicazioni di test (in java) ---- > ha iniziato a fare l'automazione dei programmi

Ha aiutato a non gettare un sacco di roba a una nuova persona, voglio dire che avevo abbastanza paura per quello che era.

ma questo mi ha aiutato a diventare più veloce e, soprattutto, a sentirmi sicuro delle mie capacità. La maggior parte dei laureati è pronta a iniziare a scrivere grandi codici OO e applicazioni fin dal college, il mio college era buono ..... ma le università NON ti preparano.

    
risposta data 03.03.2011 - 17:19
fonte