2009-07-02 14 views
13

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.

+0

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. –

risposta

6

Trova un progetto di codifica hobby che interessi voi. Se lo trovi interessante passerai più tempo a lavorare sul codice che se lo stai facendo semplicemente per imparare.

Per quanto riguarda

Esiste un modo per trovare open source progetti (preferibilmente a base .Net)

andare a SourceForge e trovare qualcosa che sembra interessante a voi e ottenere coinvolti. Ancora enfasi su interessante. Non preoccuparti troppo di quanto sia pratico.

+3

http://www.codeplex.com/ ha molti progetti .Net su cui lavorare. – jle

+0

in realtà i miei progetti al lavoro sono piuttosto interessanti Ho solo bisogno di più persone con cui lavorare. Grazie controllerò il codeplex –

3

Ho intenzione di uscire su un arto qui e suggerisco di scrivere codice.

Leggi Code Complete. Guarda altre domande su questo argomento qui su StackOverflow. Trova un progetto open source e contribuisci ad esso. Avviare il proprio progetto di animale domestico che si concentra sulle competenze che ti interessa.

When to use Design patterns
How to get into C# Open Source projects

+0

Beh, ovviamente ho bisogno di scrivere il codice, ma penso che il mio problema sia più di non avere nessuno che mi dica come e dove potrebbe essere migliorato il mio codice altrimenti funzionante. –

+0

Non preoccuparti troppo di come il tuo codice può essere migliorato. Invece dovresti imparare come fare più cose con il codice. Il codice di nessuno è mai perfetto. –

+0

Code Complete è un ottimo libro se si desidera migliorare la qualità del codice, uno dei classici. –

0

Puoi fare un sacco di cose. Questi vengono in mente:

  • Particpate in un progetto open source.
  • Leggi StackOverflow molto
  • Chiedi un sacco di domande su StackOverflow
  • leggere buoni libri
+1

Inoltre, prova a rispondere alle domande qui. Soprattutto quelli che significano che devi provare le cose. – Richard

1

Quello che faccio nel mio tempo libero è trovare qualcosa che mi interessa, costruirla, e imparare nel processi. Ad esempio, invece di prendere un forum in scatola o CMS, vorrei costruire il mio e imparare dai miei stessi errori. Certo, questo non ti darà la conoscenza del controllo del codice sorgente ecc. Dato che molto probabilmente sarai l'unico sviluppatore, ma i trucchi per l'apprendimento e lo stile di codifica migliore sono certamente degni di questo sforzo. Forse puoi anche essere coinvolto in un progetto open source! :)

0

Aggiungere un po 'alla risposta di William: trovare un interessante progetto open-source e diventare un contributore attivo. Questo non solo ti darà la possibilità di fare una codifica pratica, ma l'opportunità di vedere il codice di altre persone. C'è molto da imparare dal codice scritto da altri programmatori.

3

Capacità di programmazione del mondo reale: qualcosa che potresti fare per vivere, in un ambiente professionale.

Venire con un'idea, non ha bisogno di essere l'idea più GRANDE mai ... quindi scriverlo. Scrivilo in modo professionale. Usa il controllo della versione, anche per un progetto personale. Avere un sistema di biglietteria, anche per un progetto personale. Abituati a fare le cose come fa un professionista, anche per un progetto personale. Altrimenti, stai solo imparando cattive abitudini.

Mi spingerei fino al punto di chiedere ad alcuni di quegli amici o familiari che hanno un lavoro nel settore di aiutarvi con una revisione estemporanea del codice. Comprali la cena, scommetto che lo faranno.

L'unico modo per imparare qualsiasi cosa è iniziare effettivamente a farlo. Aspettatevi che il vostro primo codice sia scomodo e verrà riscritto più volte come parte del vostro processo di crescita.

Quindi, se il tuo progetto personale potrebbe interessare altri ... spedisci. Mettilo là fuori. Ottieni un feedback da parte degli utenti. Sarà brutale e un'esperienza educativa che non potresti comprare a nessun prezzo. Sarai un programmatore migliore per questo.

1

Trova sviluppatori esperti che sono disposti a fare periodiche revisioni informatiche di progettazione/codice con te su alcuni dei progetti che hai già fatto (dal momento che li conosci bene) in modo che possano spiegare i pro/contro e possibili approcci diversi alla soluzione quegli stessi problemi.

Più opinioni si possono ottenere su come gli sviluppatori esperti risolverebbero i problemi con cui si ha familiarità, più opzioni si avranno per risolvere il problema successivo. Aspettatevi che ogni approccio degli sviluppatori sia radicalmente diverso, ma ancora illuminante. :-)

2

C'è un progetto software open source C# di altissimo profilo che può sempre utilizzare più aiuto.

Si chiama Mono Project.

Suggerirei di contribuire al Progetto Mono su altri perché usano un modello di sviluppo molto trasparente e aperto, e sono di alto profilo quindi essere un "contributore mono" ha qualche extra prestigio a mio avviso quindi molti software casuali C# aperti progetti. Inoltre Miguel de Icaza (responsabile del Mono Project) è un ragazzo fantastico e divertente.

Problemi correlati