2009-09-11 17 views
19

Sto imparando a programmare all'età di 17 anni. È difficile per me parlare con altri programmatori mentre sono appena uscito dalle scuole superiori (il che significa che non posso seguire corsi di programmazione). So che scrivo codice terribile, and not like Jeff Atwood terrible code, il mio codice in realtà fa schifo. Quindi, dove posso pubblicare parte del mio codice e ottenere veri programmatori per esaminarlo. So che se avessi una domanda potrei chiederlo a StackOverflow, ma voglio postare un'intera classe e avere una recensione su di essa.Dove ottenere la peer review del codice e come ottenere il mio codice di attenzione?

Il vero problema qui è che non scriverò il prossimo grande software. Scriverò una lezione davvero inutile, che non avrà altro scopo se non quello di insegnarmi come programmare. Questo codice non sarà mai usato, mai! MAI! Come posso ottenere un programmatore avanzato (o anche intermedio) per guardare il mio codice?

Grazie in anticipo! ;-)

+2

off-topic, ma se il tuo nome è in realtà Bob Dylan, si sono chiaramente destinati per la scrittura di grande codice. Tenere duro. – JoshJordan

+9

+1 per aver realizzato il tuo codice non è il migliore. Molti programmatori lo dimenticano. Rendersi conto di avere spazio per imparare è un grande passo nella giusta direzione. – Kit

+2

"Non posso seguire corsi di programmazione" - Ho frequentato corsi di programmazione universitaria a 17 anni da un college comunitario accreditato (economico). Se stai facendo domande come queste, dovresti davvero andare, tirerei fuori un sacco dalle classi. Spero che tu possa trovare qualcuno nella tua zona. –

risposta

14

Guardare alla comunità open source. Ci sono un sacco di progetti esistenti e nuovi che vorrebbero uno sviluppatore desideroso (se inesperto) di offrire supporto.

Andare questo itinerario offre due vantaggi:

  1. Si inizia a vedere grande codice in azione e imparare da esso
  2. Eventuali modifiche inviate saranno esaminate da uno sviluppatore esperto e che spesso vi darà eccellente suggerimenti su come migliorare il tuo codice prima che sia accettato

Inizia scegliendo un progetto nella tua lingua (ce ne sono molti in C++) e controlla il codice. Non hai bisogno di capire tutto, ma devi essere in grado di comprenderne almeno una parte.

Se il progetto sembra complicato, continua a cercare. I progetti più giovani tendono ad avere meno codice che è necessario imparare.

9

Se non riesci a convincere i programmatori a guardare il tuo codice, fai la cosa migliore: guarda il loro!

Cerca un gruppo di frammenti di codice che facciano la stessa (semplice) cosa. Prima di guardarli troppo da vicino, scrivi il tuo codice per eseguire lo stesso compito. Confronta tutti i frammenti con i tuoi (e l'altro!) E cerca di capire i motivi delle differenze.

Mi raccomando di cercare il codice da progetti ben consolidati. Il codice delle esercitazioni spesso ignora i dettagli importanti per motivi di semplicità.

4

Penso che il modo migliore per imparare è il modo in cui ho imparato (potrei essere di parte): tentativi ed errori. Ho appena scritto programmi tutto il tempo, insegnando me stesso mentre andavo. Scriverò codice terribile e vorrei lottare per farlo fare ciò che volevo. Spesso mi farebbe rinunciare a quel particolare progetto. Ma nel prossimo progetto, adotterei un approccio diverso e funzionerebbe meglio. Ripeti fino alla nausea. Una volta che sai dove si trovano i punti critici nei tuoi progetti, sarai in grado di porre domande specifiche su luoghi come SO, o, meglio ancora IMHO, creare da te disegni migliori. Ho inventato autonomamente tutti i principali modelli di progettazione solo attraverso la frustrazione per le soluzioni che avevo creato in passato. Penso che questo mi dia una prospettiva preziosa, dal momento che per la maggior parte delle persone i design pattern sono solo una "best practice", ma conosco il dolore derivante dall'usare altri design e posso vedere molto facilmente i segni di cattivi disegni nel codice (ci vuole uno per conoscerne uno). Quest'ultima abilità è quella che vedo spesso carente in altri programmatori ...non riescono a capire perché il loro design è carente e dovrebbero usare qualcos'altro.

5

Vorrei provare a non scrivere codice inutile, ma tentare di risolvere qualche problema particolare. Il tuo apprendimento sarà più avanzato se stai imparando nel contesto di uno scenario reale. Non deve essere un grande dominio aziendale; potrebbe anche essere un gioco o un'utilità shareware.

Per quanto riguarda il riesame del codice, la community open source è un buon modo per andare come dice The Lame Duck - in effetti è garantito che ottiene una qualche forma di revisione se effettivamente contribuisci a un progetto. Altre strade da esplorare: il gruppo degli utenti locali di C++, verificare un programma cooperativo disponibile attraverso un college junior o coinvolgere qualcuno in una società che sponsorizza stagisti.

Non ho provato siti come RefactorMyCode come suggerito da Gilad Naor, ma sembra promettente. E, sì, StackOverflow è un buon posto per pezzi di codice di dimensioni ridotte. Se lo fai, spiega cosa stai cercando di fare, e perché stai cercando di farlo in quel modo, e chiedi se c'è un approccio migliore. In bocca al lupo!

0

Fai qualcosa di divertente e non preoccuparti troppo dello stile del codice. Ho iniziato con BASIC su Commodore 64 senza nemmeno rendermi conto che esistevano cose come codice pulito e codice sporco. Se mi fossi preoccupato molto di questo, allora, avrebbe potuto impedirmi di progredire. Impari sempre meglio quando lo fai in modo giocoso.

+1

Da quando la ricerca di una critica intelligente e costruttiva allo scopo di migliorare la qualità ostacola il progresso? –

+0

Quando si apprende una lingua straniera, un consiglio spesso dato è di parlarne molto, senza preoccuparsi troppo di fare errori. Credo che sia anche il caso di fare i primi passi nel mondo della programmazione. – StackedCrooked

+0

Touché. Dovresti notare in modo più specifico il valore della pratica nella tua risposta. –

1

Si può sempre provare un sito come Project Euler, dove ci sono un sacco di problemi che metteranno alla prova le tue capacità e un sacco di soluzioni a questi problemi, presentate da altri. Project Euler tende a concentrarsi su algoritmi piuttosto che su costrutti di programmazione di livello superiore, ma immagino che ce ne siano altri in una vena simile.

0

Forse un po 'tardi, ma dal momento che StackExchange ha Code Review, pena la risposta:

Code Review Stack Exchange è un sito di domande e risposte per il peer revisioni del codice programmatore. È gratuito al 100%, nessuna registrazione richiesta.

Ecco il link: Code Review Stack Exchange

Problemi correlati