Attualmente la nostra azienda sviluppa applicazioni costituite, nella maggior parte dei casi, da server Web Ruby on Rails e da una serie di client REST diversi, dai sistemi kiosk in Java ai dispositivi integrati in C / C ++ (oltre alle interfacce per browser Web standard). Dobbiamo espandere il nostro team e, avendo fallito nel trovare buoni programmatori senior, abbiamo deciso di impegnarci nella formazione dei programmatori junior che sarebbero cresciuti insieme all'azienda.
Abbiamo già dato loro alcuni libri su Ruby e Rails e abbiamo chiesto loro di costruire alcuni programmi giocattolo, ma ora sto realizzando quanto sia ripida la curva di apprendimento per l'attuale stato della programmazione web.
Quando ho iniziato a programmare 15 anni fa, ho utilizzato solo Delphi e Source Safe e sono stato in grado di produrre software utilizzabile sin dall'inizio. Erano entrambi strumenti semplici ed era facile approfondire il funzionamento interno dell'ambiente. Lentamente ho iniziato a utilizzare framework di terze parti, sono passato a CVS, SVN e infine Git, ho imparato i pezzi che rendono il web di oggi, come HTTP, JavaScript, CSS, REST ecc. Oggi, anche dopo anni di esperienza, non lo so tanto su come funziona Ruby on Rails come in passato su Delphi, e per me era importante per poter collegare i blocchi di apprendimento di base agli strumenti che stavo usando.
Mi sembra che i programmatori che sto assumendo impiegheranno molto tempo per integrarsi con il team e produrre qualcosa di utilizzabile, perché ci sono così tante cose da imparare per usare un singolo framework (Rails): Ruby, HTML, CSS, JavaScript, REST, casi di test, accesso al database (con SQL creato magicamente all'interno del framework!), MVC, tre diversi gestori di pacchetti (adatti per Ubuntu, gem e bundler per Ruby), ssh, git, Apache e Phusion Passenger per la distribuzione, ecc.
Mi sento perso poiché è la prima volta che devo occuparmi direttamente dei programmatori junior. Qual è il modo migliore per formare programmatori junior nelle migliori pratiche odierne per lo sviluppo web quando ci sono così tante scelte?