Ci sono molte fonti da imparare da parte di colleghi più esperti: libri, blog di abili sviluppatori, Stack Exchange, conferenze / conferenze, ecc. Anche le revisioni del codice sono cruciali e CodeReview.SE è una risorsa preziosa.
Vediamo come potrebbe funzionare su un esempio.
Esempio
Stai leggendo un post sul blog che menziona un termine "ETL". Non ne conosci il significato, ma da questo articolo capisci vagamente che si tratta di una sorta di processo o flusso di lavoro che sposta i dati da un supporto dati all'altro.
Vai su Wikipedia e altre risorse e ottieni una visione più precisa della cosa. Non è ancora molto chiaro quando sarebbe utile usare un ETL. Dopotutto, sembra molto più semplice scrivere una query SQL che farà tutto il lavoro, piuttosto che passare troppo tempo a costruire un vero ETL.
Per rispondere a queste domande, prendi in prestito un libro sugli ETL dalla tua biblioteca locale. Spiega che alcuni processi di estrazione-trasformazione-caricamento non sono facilmente realizzabili con una semplice query SQL: non solo la fase di estrazione può gestire diversi supporti dati diversi, non solo un database relazionale, ma anche il passaggio di trasformazione può essere molto complicato per sia validando / normalizzando i dati che mappandoli.
Ora hai una visione chiara di ciò che è un ETL, come usarlo e soprattutto quando hai bisogno di un ETL e quando non è uno strumento appropriato. Nel frattempo, hai implementato un piccolo ETL come progetto personale. Questo progetto ti consente di scoprire alcuni punti che non sono abbastanza chiari per te e che non sono coperti da un libro. Essendo questi punti piuttosto astratti e non correlati al codice sorgente, pubblichi una domanda su Programmers.SE .
Quando hai l'opportunità di crearne uno nella tua azienda, inizi a crearlo. Hai qualche problema. Alcuni sono correlati al codice; pubblichi domande su StackTranslate.it . Altri sono correlati al database; fare le domande su DBA.SE .
Infine, c'è una conferenza organizzata da uno sviluppatore altamente abile su come ottimizzare gli ETL. Partecipi a questa conferenza e ti dà preziosi suggerimenti sui miglioramenti che puoi fare per il tuo progetto.
Inizi anche a seguire un blog di uno sviluppatore che ha lavorato su diversi ETL per anni. È interessante vedere i diversi approcci e, attraverso questo blog, apprendi l'ECCD; sei interessato, quindi prendi in prestito The Data Warehouse ETL Toolkit di Ralph Kimball, il libro che parla in dettaglio del processo di "estrazione, pulizia, conformità e consegna". Lo stesso blog menziona anche molte applicazioni destinate a creare ETL senza capacità di programmazione. Ciò è particolarmente utile per l'ETL che hai fatto per la tua azienda, dal momento che il tuo capo, persona non tecnica, ti chiede costantemente di apportare alcune piccole modifiche a ciò che hai fatto.
Alla scoperta delle cose
IMHO, la parte difficile, quando non hai un mentore o un collega più esperto, è scoprire cose, e per scoprire intendo passare dallo stato "Non ho mai sentito parlare di questa cosa" a "Ho sentito parlare ma non so molto bene di cosa si tratta ".
Se qualcuno rivede il mio codice e dice che dovrei davvero iniziare a usare alcune convenzioni di stile, con un po 'di curiosità posso scoprire che nella programmazione ci sono diversi stili di scrittura del codice, che uno dovrebbe attenersi a uno stile per un determinato linguaggio e base di codice, e che molte lingue hanno strumenti per applicare uno stile (come StyleCop per C #).
Se nessuno mi parlasse dello stile, come potrei sapere che esiste una cosa del genere?
Ecco dove sono utili risorse come blog o Stack Exchange. Wikipedia non sarebbe d'aiuto (a meno che non passi giorni a colpire pagine casuali sulla programmazione), e i libri parlano raramente di queste cose.
Lo stesso vale anche per modelli e pratiche o cose che sono meno correlati al codice. Ad esempio, difficilmente immagino che qualche sviluppatore si svegli la mattina dicendosi che deve imparare qualcosa sull'ITIL mentre non si è mai preoccupato dell'ITIL prima.
Una volta scoperto un nuovo termine, è abbastanza facile impararlo. Se hai dato un nuovo termine "contratti di codice" e sei uno sviluppatore C #, puoi facilmente trovare abbastanza informazioni tu stesso su MSDN (o, meglio, nel libro di Jon Skeet).
La curiosità aiuta
Quando lavoro con gli stagisti, noto sempre che i migliori sono quelli che erano curiosi al di fuori delle loro lezioni. Potrebbero sapere che esiste una cosa chiamata programmazione funzionale anche se nessuno dei loro insegnanti non l'ha mai menzionato, e sebbene non conoscano alcun linguaggio funzionale, sono ancora in grado di spiegare in termini generali cos'è FP e in che cosa differisce dagli altri paradigmi. Potrebbero sapere di Agile, o di Unicode, o del modello di trust parziale / sandbox, solo perché stavano leggendo blog e usando Stack Exchange, piuttosto che semplicemente frequentando le loro lezioni.
Anche quando non hanno un mentore, imparano comunque tutte quelle cose che non vengono raccontate al college.