Attualmente la nostra azienda sviluppa applicazioni costituite, per la maggior parte del tempo, dai server Web di Ruby on Rails e da una serie di diversi client REST, dai sistemi kiosk in Java ai dispositivi embedded in C / C ++ (oltre alle interfacce per i browser Web standard) . Abbiamo bisogno di espandere il nostro team e, avendo fallito nel trovare buoni programmatori senior, abbiamo deciso di impegnarci per formare i programmatori junior che sarebbero cresciuti insieme alla compagnia.
Abbiamo già fornito loro alcuni libri di Ruby and Rails e abbiamo chiesto loro di creare alcuni programmi giocattolo, ma ora sto realizzando quanto sia ripida la curva di apprendimento per lo stato attuale della programmazione web.
Quando ho iniziato a programmare 15 anni fa, usavo solo Delphi e Source Safe ed ero in grado di produrre software utilizzabile fin 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 so tanto su come Ruby on Rails funziona come ho fatto in passato su Delphi, e per me è stato 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 utile, perché ci sono così tante cose da imparare a usare un singolo framework (Rails): Ruby, HTML, CSS , JavaScript, REST, test-cases, accesso al database (con SQL magicamente costruito all'interno del framework!), MVC, tre diversi gestori di pacchetti (apt per Ubuntu, gem e bundler per Ruby), ssh, git, Apache e Phusion Passenger per l'implementazione , ecc.
Mi sento perso poiché è la prima volta che devo trattare direttamente con i programmatori junior. Qual è il modo migliore per formare i programmatori junior nelle odierne best practice per lo sviluppo web quando ci sono così tante scelte?