Lavoro nel gruppo tecnico di una grande studio di architettura. Mentre ci sono un certo numero di persone che sono molto abili in vari linguaggi di programmazione e scripting, è lontano dall'ambiente dell'ambiente di sviluppo di una società di software. Raramente ci sono sempre più di una o due persone che lavorano su un progetto di sviluppo, la maggior parte delle quali sono solo script di automazione. Non c'è il controllo del codice sorgente, né l'impostazione del controllo della versione o qualcosa del genere.Come acquisire competenze di programmazione nel mondo reale quando non lavori per un'azienda di software
Il mio background accademico è di ingegneria ma non CS o CE. Quindi ho frequentato un certo numero di corsi di programmazione a scuola, e in realtà ho armeggiato molto con VB quando ero piccolo. Eppure non è stato fino all'anno scorso al mio attuale lavoro che ho davvero avuto l'opportunità di fare qualsiasi sviluppo reale al di fuori dei problemi a casa a scuola. Nell'ultimo anno ho passato dal fare semplici script di automazione alle applicazioni plug-in full-shot in C# .NET.
Ho famiglia e amici che sono senior CS o CE e lavoro per aziende il cui prodotto principale è il software. Sebbene non abbia alcun interesse a lavorare effettivamente per una società di software, ma sembra che abbiano un grande vantaggio su di me. Al loro lavoro hanno persone con più esperienza che possono guardare oltre il loro dovrebbe e dare loro suggerimenti per migliorare il loro codice o logica. Siti come Stack Overflow sono ottimi per risolvere bug e ottenere consigli, ma solo quando sai di aver bisogno del consiglio. Sono sicuro che ci sono molte volte in cui sto prendendo l'approccio completamente sbagliato a qualcosa.
Quali sono alcuni dei modi migliori per migliorare queste abilità di programmazione della vita reale? C'è un modo per trovare progetti open source (preferibilmente basati su .Net) su cui posso lavorare, così posso acquisire esperienza lavorando con altri programmatori (più esperti)? Ho anche esaminato gli schemi di progettazione, ma ho difficoltà a riconoscere quando utilizzare determinati modelli.
Nei commenti alle risposte, fai notare che il problema è che non hai nessuno che riveda il tuo codice. Dovresti aggiornare la tua domanda per riflettere questo problema. –