2008-11-28 7 views
12

Ho imparato C++ per tre mesi e in quel periodo ho creato una serie di applicazioni per la mia azienda. Mi considero abbastanza a mio agio con C++/MFC e STL, tuttavia non voglio solo essere un programmatore OK, voglio essere un buon programmatore. Ho alcuni libri sulle migliori pratiche, ma mi chiedevo se qualcuno potesse suggerire materiale di lettura che li aiutasse e tutte le discipline che dovrebbero essere incoraggiate?Sviluppo come programmatore

Grazie!

+0

Ci sono alcune grandi suggerimenti qui: http://stackoverflow.com/questions/305691/which-book-dramatically-changed-your-way-of-approaching-problems – Dan

risposta

4

3 mesi in C++ e ti stai già bene con esso? Sheesh, sto imparando C# da più di un anno e ho seguito numerosi corsi Microsoft e non sono neanche lontanamente a mio agio con esso.

Detto questo, sentirai parlare di Code Complete come un ottimo libro. Sono in procinto di leggerlo ora.

+0

Code Complete è un ottimo libro, nessuna domanda. Ma non ti insegnerà le sfumature di C++ –

+0

Essere un programmatore migliore è molto più che imparare le sfumature di un particolare linguaggio. – tvanfosson

+0

direi che seguire i corsi è _questo_ essere comodo con qualcosa di creativo come la programmazione. nella migliore delle ipotesi, possono essere utili per imparare le basi e per conoscere le persone. – Javier

3

Large Scale C++ Software Design by Giovanni Lakos dà indicazioni su metodi di progettazione che renderà il vostro C++ più gestibile. È piuttosto pesante ma puoi immergerti e ottenere comunque dei benefici.

1

Ho letto diverse (non complete ma alcune parti) di libri su VB.net sono piuttosto buoni, ma se vuoi essere professionista e avere il tempo ... Puoi provare i forum MSDN, aiutare altre persone e discutere con loro problemi difficili e complessi, penso che sia il modo migliore ..

1

imparare un'altra lingua. anche se non lo userai, è fantastico per l'apertura mentale.

Consiglierei Lua, Scheme e Python. ma quasi qualsiasi altra cosa farebbe. (il più diverso da C, il migliore)

2

Un po 'fuori tema: piuttosto che suggerire libri da apprendere, vorrei menzionare alcuni argomenti generali da considerare.

  • Filettatura. Questo non è molto richiesto se si utilizza MFC, ma in molte altre aree è indispensabile. I meccanismi delle API di threading sono facili da imparare, ma imparare tutti i casi d'angolo richiede molto tempo e molta pratica.

  • Chiusure, Riduzione della mappa e altre tecniche simili a quelle di tipo Lisp. Scopri cosa sono, perché non sono supportati in C++ e come sono imitati in C++ (funtori e molti altri casi di oggetti callback con stato). Per questo in realtà ho un libro: "Struttura e interpretazione dei programmi per computer".

  • Riga di comando. Questo ti dà un'idea su quando non programmare i tuoi programmi. La riga di comando sarebbe la riga di comando di Unix - Non so sull'ultima sperimentazione di MS in questo caso, ma cmd.exe è terribile. Ottieni Cygwin e inizia a sperimentare.

  • Linguaggi di scripting. Questo ti dà un'idea su quando non programmare in C++. Il mio preferito è Perl, ma molte persone dicono Python, Ruby e quant'altro. Ehi, impara XSLT se sei così inclinato!

Sono sicuro che ho lasciato fuori altre aree. Lo contrassegnerò come Wiki della comunità - sentiti libero di aggiungere.

1

Josuttis e Vandevoorde - Modelli: La guida completa

1

come la vedo io, nessuno ha menzionato Bruce Eckel libri brillanti "Pensare in C++". IMHO, è uno dei migliori libri per iniziare il tuo sviluppo in C++. Dal mio punto di vista, il primo volume è più utile del secondo, ma entrambi vale la pena leggerli.
http://www.amazon.com/Thinking-C-Introduction-Standard-One/dp/0139798099/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1227890306&sr=8-1

+0

Ah! Ne abbiamo una copia in ufficio, la porteremo a casa durante il fine settimana e gli daremo una lettura. +1. – Konrad

1

I sacco di gente può suggerire più moderno, up-to-date libri. Ma consiglio ancora The Annotated C++ Reference Manual di Margaret A. Ellis & Bjarne Stroustrup.

L'ARM è stato pubblicato nel lontano 1990. È diventato un po 'obsoleto rispetto ai modelli. STL è (ovviamente) assente. (Though the website at sgi.com does a good job of covering STL!)

Tuttavia, l'ARM è poco costoso (usato). (La spedizione supererà il costo del libro.) Il rapporto segnale/rumore rimane fuori scala. È molto bravo a scavare nelle aree sporche del C++, spiegando che cosa è stato fatto & perché.

Lo uso ancora come riferimento. Lo classifico lì con K&R.

1

Dietel/Dietel "Come programmare C++" ... Ho ancora questo libro sulla mia scrivania (10 anni in) .. Ogni tanto rileggo un capitolo.
Avrei sicuramente ottenuto il codice completo, come altri hanno suggerito. Leggetelo per primo

+0

Sto leggendo questo libro adesso! Sicuramente un buon libro da cui imparare - tuttavia, se è veramente a suo agio con il C++, potrebbe non essere abbastanza dettagliato per lui. – Sean

1

Per una migliore comprensione dell'orientamento agli oggetti, passare un po 'di tempo in un Smalltalk. Squeak è un download gratuito. Poi leggi i Patterns of Software di Richard P. Gabriel e da quel momento in poi i suoi Objects hanno fallito.

1

Thinking in C++ - Bruce Eckel Symfonia C++ standard - Jerzy Grębosz

1

Se non altro, il programma.

Quando non stai leggendo sulla programmazione e quando qualcosa ti colpisce come interessante, vai a implementare qualcosa con quella conoscenza. Ho scoperto che questo è l'unico modo per impostare realmente i principal.

Rimanere aggiornati sui blog può essere divertente, ma è una conoscenza sparsa. Sembra distrarre più che aiuto. Ma combinato con google e il desiderio di ricercare qualcosa di specifico possono davvero tirare fuori tonnellate di informazioni.Ma non iscriversi ad un sacco di feed RSS e aspettati di migliorare.

Penso che studiare davvero argomenti specifici aiuti ad espandere le tue capacità. Argomenti di ricerca che ti incuriosiscono, incontrare persone che fanno cose come te (conferenze, gruppi di utenti, irc, facebook, stackoverflow, ecc.) E soprattutto praticare la tua arte.

0

È possibile controllare la libreria Boost e alcuni dei libri scritti su di esso. Anche se questo potrebbe non essere stato quello che avevi in ​​mente, IMO, le librerie Boost sono esempi di librerie C++ moderne ben progettate che utilizzano le funzionalità del linguaggio in modo molto simile al modo in cui dovrebbero essere utilizzate per creare tra le soluzioni più efficaci per il loro dominio problematico. Ovviamente, ci sono librerie bizzarre come il preprocessore e l'MPL che ti fanno pensare che non avrai mai alcuna utilità per loro, ma sono tutte abbastanza buone. Dalla mia esperienza personale, l'esplorazione della biblioteca e della sua letteratura mi ha permesso di capire come utilizzare C++ in modo efficace.

Boost Beyond the C++ Standard Library: An Introduction to Boost