Come insegnare i principi di base ai programmatori [chiuso]

3

Per acquisire esperienza come team leader, di recente mi è stato affidato il compito di supervisionare un programmatore.

Quello che ho scoperto è che sta avendo un problema nella scrittura di una semplice condizione if . Ha problemi con string . E non sa come passare una variabile nella funzione addClass di jQuery con una condizione if .

E non sa quando utilizzare un ciclo for . O anche per cosa viene usato un ciclo for .

Come fargli capire questi concetti di base rapidamente?

Gli ho detto a Google di come utilizzare la condizione if per la variabile addClass . Ma non l'ha trovato, poi gli ho detto di farlo rapidamente al mattino presto, quando discutendo stava dando delle ragioni per cui è quello, poi gli ho detto che ti mostra come farlo, poi mi ha detto, avresti dovuto farlo prima.

Che cosa dovrei rispondere a lui? Mi sta dicendo che dovresti dirmi tutto o Dovrei farlo e mostrarlo ogni volta? Potrebbe richiedere molto tempo, e ogni volta che devo fare un compito. Voglio che sia indipendente.

    
posta WebDev 12.01.2012 - 17:36
fonte

8 risposte

32

Dichiarazione di non responsabilità: prima di seguire il mio consiglio, potresti voler controllare con il tuo manager e / o il tuo dipartimento Risorse umane.

Semplice e chiaro: Sparagli dalla tua squadra .

Non ha le abilità di base necessarie per essere un programmatore. La tua azienda non è certamente una scuola di programmazione e allo stesso tempo non puoi essere un capo squadra a tempo pieno e un insegnante di scuola.

In futuro, dovresti essere coinvolto nel processo di reclutamento della tua azienda per selezionare le persone che avrai nel tuo team e contribuire a implementare best practice per il reclutamento di programmatori . Se non lo fai, avrai difficoltà a raggiungere i tuoi obiettivi come leader della squadra. Se i team leader non sono coinvolti nel processo di reclutamento presso la tua azienda, il meglio che puoi fare è rimanere un programmatore o trovare una nuova azienda che ti assuma le responsabilità associate al tuo ruolo.

Se tu, come leader di una squadra, non reciti, dì al tuo manager: "Questa persona non è una buona scelta per la mia squadra", sarai responsabile di perdere tempo in mani inutili, invece di ottenere coinvolto in compiti più costruttivi per l'azienda. Qualunque sia la risposta del tuo manager, avrai fatto la dovuta diligenza.

Ho visto un numero sufficiente di capigruppo che falliscono il primo incarico a causa di questo caso specifico.

    
risposta data 12.01.2012 - 18:12
fonte
4

Torna alle origini. Scrivere codice è solo una delle numerose e importanti competenze di programmazione; se non riesce a risolvere i problemi, insegnargli la sintassi della lingua non sarà di aiuto.

  1. Dai al ragazzo un problema semplice e fagli scrivere, in inglese, i passaggi necessari per risolvere il problema. Rendilo qualcosa di veramente semplice, come FizzBuzz o setaccio di Eratostene .

  2. Quando ha trovato una soluzione, siediti e percorrila a mano insieme a lui. Se è corretto, fantastico. In caso contrario, cerca di aiutarlo a identificare e risolvere eventuali problemi. Non farlo per lui - solo fornire una guida. Se il suo "programma" di setacci emette un 8, potresti indicare che 8 non è primo e chiedergli come è successo. L'idea qui è di farlo pensare come un programmatore. Potrebbe aver saputo come farlo una volta, quindi spero che si tratti solo di rimetterlo in carreggiata.

  3. Quando il "programma" è corretto, chiedigli di tradurlo dall'inglese in qualunque lingua tu stia utilizzando, sempre su carta. Potrebbe aver bisogno di più aiuto da te a questo punto, dal momento che sembra davvero che non parli la lingua. Fagli tenere un elenco di ogni nuovo costrutto linguistico, a cosa serve e come viene utilizzato.

  4. Quando la traduzione è completa e ti sembra corretta, chiedigli di inserirla in un computer, compilare ed eseguire. Probabilmente non funzionerà la prima volta; va bene, l'idea qui è di abituarsi a lavorare con un compilatore e imparare a interpretare gli errori. Di nuovo, probabilmente sarà necessario il tuo aiuto.

  5. Quando il programma è in esecuzione, verifica che produca l'output corretto. In tal caso, torna al primo passaggio con un nuovo problema. Ripeti se necessario finché non si sente a suo agio con il processo e può risolvere problemi semplici, quindi aumenta lentamente la complessità dei problemi.

  6. A un certo punto, uno dei suoi programmi produrrà risultati errati o non funzionerà affatto. Mostragli come utilizzare un debugger e altri strumenti per identificare e risolvere il problema.

  7. Non aspettarti miracoli. Nessuno impara a programmare in una settimana. Continua così, un po 'alla volta, e speriamo che presto sarai in grado di dargli alcuni semplici compiti nel mondo reale sul tuo progetto. Lungo la strada, avrà imparato almeno alcune abilità di base e avrai una certa esperienza nell'aiutare le persone che gestisci a diventare più efficaci.

risposta data 12.01.2012 - 19:16
fonte
2

Ci sono 2 problemi che vedo qui. Sono molto separati, ma entrambi ugualmente importanti.

Come @Matthieu ha suggerito, sembra che tu abbia un dipendente cattivo , il tipo che non solo è non produttivo (impatto zero), ma ha un impatto negativo sul progresso e sulla squadra (morale , fusione / gelificazione, cordialità). Devi capire perché questo dipendente è stato assunto. Se si tratta di un errore delle risorse umane o di un bugiardo competente durante l'intervista, è molto probabile che lo risolva raccomandando alla sua direzione (o al suo capo) la cessazione del rapporto di lavoro di questo dipendente come programmatore. Forse sono un amministratore di sistema IT competente e perplesso perché viene chiesto loro di programmare. - Ho avuto interviste di lavoro tramite agenzie di reclutamento che in passato erano incasinate (di proposito dall'agenzia), quindi potrebbe non essere colpa del dipendente.

Ma potrebbero esserci delle politiche d'ufficio, come una relazione con alti dirigenti / dirigenti che potresti aver bisogno di sapere prima di fare rumore. Devi fare in modo che prima non dica niente a nessuno che non sia il tuo manager / supervisore. In tal caso potrebbe essere necessario sviluppare una strategia di contenimento che sia principalmente l'isolamento (contenimento dei problemi) e il controllo dei danni.

Quindi, il secondo problema, se si finisce per mantenere questo dipendente, allora è necessario dare loro il proprio ambiente dove possono apprendere e progredire in sicurezza, errori e tutto, in un ambiente positivo sano che si spera possa governare un potenziale programmatore. Ciò significa che alla fine hanno bisogno di progetti "reali". Un dipendente che sa chiaramente di essere isolato diventa ancora più diseredato e demotivato. È necessario creare una strategia di "sviluppo della carriera" in miniatura per questo dipendente. Cosa ci vorrebbe per farli diventare un impiegato utile in futuro? Iniziando in genere con l'istruzione e / o la formazione. Combinato con lo sviluppo di un senso delle abilità di base sul posto di lavoro (spesso chiamato etica del lavoro).

Non menzioni l'età in modo esplicito, ma assumerò che spero che questo dipendente sia giovane e nuovo, e quindi molto probabilmente inesperto, e possa essere incoraggiato a imparare come andare d'accordo sul posto di lavoro. Le risorse umane potrebbero essere in grado di suggerire opzioni di formazione "sviluppo professionale" che potrebbero essere un'opportunità per loro di imparare come dovrebbero agire sul posto di lavoro. I datori di lavoro più grandi possono avere anche alcune opzioni interne. Le risorse umane possono spesso aiutare qui.

Credo che tu sia sulla buona strada che qualcosa non va e che devi raccogliere informazioni future prima di agire.

Un'altra azione che prenderei anche io è sedersi con il dipendente e chiedere loro di se stessi, in modo da sapere di più sul loro background e sulla loro esperienza. I legami familiari tenderanno a essere menzionati se questa è la base del lavoro.

Buona fortuna.

    
risposta data 12.01.2012 - 20:28
fonte
2

what should I reply to him?

"Guarda, questa è roba di base, non è il mio lavoro insegnarti le basi - il mio lavoro è assegnarti lavoro e controllare che sia fatto bene, se non conosci questo tipo di cose, e puoi Scoprilo, quindi non sei un programmatore, ti chiederò di farti inviare un corso di formazione, ma se non puoi fare queste cose, allora non puoi fare il lavoro. "

    
risposta data 12.01.2012 - 23:28
fonte
2

Dagli compiti semplici e gli strumenti per fare ciò che deve fare e lasciarlo affondare o nuotare ...

Se questo ragazzo non sta facendo il lavoro per imparare almeno, allora, a che serve? Va bene non sapere tutto ma se si aspetta che tu lo guidi attraverso tutto, non funzionerà.

Penso che ciò che ci rende programmatori è il nostro costante desiderio di imparare e migliorare. Se questo ragazzo non può o si rifiuta di lavorare con te, tutto ciò che farà sarà rallentare te e la tua squadra.

Ciò di cui ha bisogno questo ragazzo è un controllo di realtà e tu, il mio amico, dovresti darglielo appena possibile.

    
risposta data 12.01.2012 - 22:11
fonte
1

In primo luogo, sono d'accordo con @Matthieu nel senso che non dovrebbe essere nella tua squadra in primo luogo. Non è un membro produttivo del team e dal tuo account non sembra avere molto interesse a diventarlo. Non sembra avere alcun interesse nel fare il suo lavoro e si aspetta che tu lo faccia per lui.

Inoltre, la mia risposta diretta a lui dicendo "avresti dovuto farlo prima" sarebbe sulla falsariga di "no, è una tua responsabilità. Ti ho dato questo compito, è il tuo lavoro completarlo al meglio abilità ".

Detto questo, se sei bloccato ad insegnarlo (o ti trovi in un ambiente di apprendimento), ecco alcune cose che ho fatto come tutor per aiutare le persone a conoscere le basi della programmazione.

  1. Non dargli mai la risposta. Dando loro la risposta, anche dopo averli spiegati in seguito non fa nulla per aiutarli a impararlo. Ricorda il detto "Ho sentito e ho dimenticato, vedo e ricordo, faccio e capisco". Invece, mostra loro come arrivare alla risposta la prima volta, aiutandoli a capirlo da soli. Non solo ti impedisci di prendere alla cieca la tua risposta, ma mostra loro come trovare le loro risposte ("dai a un uomo un pesce ...").
  2. Metti in relazione i concetti con le azioni reali. In questo modo i loop e i condizionali diventano incredibilmente facili. Camminale attraverso qualcosa come se loro stessi stessero facendo e quali azioni avrebbero intrapreso in quelle circostanze. FizzBuzz è un buon esempio: stai facendo un comportamento ripetitivo (contando) e verificando ciascun elemento per un dato condizionale (multiplo di 3 e / o 5).
  3. Lascia che falliscano, quindi mostra loro cosa hanno fatto di sbagliato. Alcune persone imparano meglio quando hanno rovinato qualcosa, a patto che sappiano perché hanno sbagliato. Lascia che provino a risolvere il problema, poi attraversalo con loro e mostra loro come può essere corretto / migliorato.
risposta data 12.01.2012 - 21:36
fonte
1

Supponendo che tu voglia davvero aiutarlo a imparare sul posto di lavoro e che non lo / lo licenzierà a causa di motivi complicati che ti sono più familiari (ad esempio, la politica è figlio dell'amministratore delegato) poiché le questioni menzionate sono davvero nozioni di base che dovrebbero conoscere anche uno studente con 1 semestre di esperienza di programmazione. Suggerisco quanto segue:

  1. Organizza un incontro con il tuo superiore per fargli sapere che semplicemente non è ancora adatto per un lavoro di base come programmatore. Se insiste sul fatto che dovresti continuare a lavorare con lui, procedi al passaggio 2.

  2. Sii onesto con lui e indirizzalo a siti web come link o introduzioni meno secche alla programmazione come 'Testa prima Java 'e farlo combattere da solo. Digli che queste risorse contengono le risposte alle sue domande e che anche se ti piace aiutare, sei davvero impegnato in questo periodo. Chiudi i metodi per un contatto facile o si affiderà a te. Agisci davvero occupato!

  3. Tieni traccia dei suoi progressi rendendo obbligatorio per lui presentare un rapporto giornaliero e settimanale sul suo apprendimento alla fine di ogni giornata lavorativa e fornire il tuo feedback una volta alla settimana per vedere se sta andando fuori pista e mostrare che stai cercando di dedicare un po 'di tempo anche a lui.

  4. Quando ritieni di aver ottenuto le basi minime, puoi iniziare a introdurlo gentilmente a piccoli compiti reali come compiti a casa settimanali.

In altre parole, trattalo come uno studente principiante, perché è a un tale livello. Se decide di smettere, credo che tu abbia fatto quello che puoi. Nel frattempo temo che tu debba fare il suo lavoro o ottenere un aiuto extra se possibile per spedire le cose in tempo.

    
risposta data 18.01.2012 - 15:06
fonte
0

Forse la persona ti è stata assegnata da qualcuno che voleva farlo uscire dalla loro squadra. Fai attenzione alle altre squadre che vogliono darti una persona.

Ma se sei bloccato con lui, trova alcuni corsi online come programma, come l'Opencourseware del MIT, e digli di lavorarci sopra.

Oppure assegnagli il supporto tecnico di help desk / telefono.

Nel frattempo, chiedi ai gestori se vogliono che il loro progetto sia fatto in tempo per trovare qualcun altro.

    
risposta data 18.01.2012 - 15:18
fonte

Leggi altre domande sui tag