Soprattutto, codice. Lotti di codice E riflettici. È così che impari ad apprezzare altre cose, perché senti il dolore che porta a una motivazione per una soluzione. Mentre lo fai:
- Lavorare con altre persone sui progetti
- Impara dalle persone meglio di te e sii umile
- Impara a valutare le parti che non sono strettamente codificanti, ma piuttosto aiutano con la qualità
- Ottieni la prospettiva da altri paradigmi e linguaggi di programmazione
In altre parole, alcuni dei modi migliori per diventare un programmatore migliore sono non nuove tecniche di codifica in sé. Allo stesso modo, non sono cose che impari al college. Quindi analizziamolo un po 'di più.
Riguardo al # 1. Come osservazione, probabilmente lavorerai su una squadra in futuro, ma per molte cose probabilmente non stai lavorando su una squadra ora che sei al liceo. Lavorare in una squadra significa alcune cose: tollerare gli stili di codifica di altre persone, i progetti e le architetture di altre persone, il cattivo respiro di Bob su Taco Tuesday, inviare il codice a un repository, avere un server di build e avere altre persone che odiano il tuo amato codice. Cose che puoi fare ora:
- Informazioni su un sistema di controllo del codice sorgente. Usane uno per i tuoi progetti personali. Raccomando Mercurial o Git. Informazioni su e utilizzare la ramificazione; la ramificazione non è solo un concetto brillante, è un vero strumento per assicurarsi che il codice prodotto da una squadra sia stabile quando raggiunge la produzione.
- Imposta un server di generazione continua di qualche tipo. Questo non ci vorrà molto. Utilizza questo server di build con il controllo del codice sorgente per uno o più progetti.
- Compra gomma per Bob.
Riguardo al n. 2. Trova persone migliori di te da cui imparare. Questo potrebbe essere difficile al liceo. Cerca persone che siano umili, che non ordinino regolarmente le specifiche, eviti le guerre di fiamma e siano rispettate dagli altri. Quindi leggi il loro codice e guarda come interagiscono con le persone che li circondano.
Per quanto riguarda il # 3. Scopri quali sono i test unitari se non conosci e perché le persone li scrivono (suggerimento, non è solo per la correttezza del codice). Impara un framework di test come NUnit, ecc. Scopri come il mocking può adattarsi (ma non equivale a) test delle unità. Comprendi cosa significa scrivi codice testabile - questo tende ad essere anche più modulare e avere anche un'architettura migliore. Anche se non sono sempre appropriati, comprendere gli iniettori di dipendenza / iniezione di dipendenza. Scrivo C ++ quotidianamente senza un injector delle dipendenze, ma i concetti sono ancora applicati di volta in volta nel mio codice e lo rendono migliore.
Riguardo al n. 4. Impara in modo categoricamente nuovi modi per programmare le cose e affrontare i problemi. Questo probabilmente ha senso fare una volta che conosci bene Java. È come imparare a programmare i pattern: impara che dopo hai fatto un po 'di programmazione (> 10K linee di codice) in modo da poter davvero sentire il loro valore e riconoscere i pattern che hai già fatto. Allo stesso modo, i paradigmi di altri linguaggi possono aiutarti nel tuo linguaggio corrente a volte perché puoi simulare una parte di un concetto per risolvere al meglio un problema. Anche qui non fa male studiare un po 'di storia.
Inoltre, come bonus: impara come comunicare bene le tue idee. Ho avuto molte frustrazioni per molti anni perché ero povero nel comunicare le mie idee ed erano bloccati nella mia testa. Ciò richiede pratica e perseveranza, ma ti libera dall'essere da solo con le tue idee.
La maggior parte di queste cose che non imparerai al college. Imparerai a conoscere algoritmi, teoria, forse l'aroma delle pratiche di ingegneria del software del mese. Ma queste cose (ad eccezione di quale controllo del codice sorgente è il sapore attuale, i concetti che rimangono simili) si spera possano cambiare di meno e aiutarti di più. Questo non è per giù sulla teoria, solo per integrare. Ho scritto un paio di macchine di stato nell'ultima settimana o due.