2010-08-27 17 views
16

Voglio entrare nel team C++ al lavoro. Il loro compito è scrivere CGI in C++ (principalmente ma non solo). Conosco il C++ di base. Leggendo la lista alla domanda C++ book guide su SO, ho tre libri da un amico (in realtà avevo il primo).Idee del progetto per diventare bravo in C++

  1. Il C++ Programming Language - Bjarne Stroustrup - per riferimento
  2. C++ Templates La guida completa - David Vandevoorde/Nicolai M. Josuttis
  3. moderna C++ Design - Andrei Alexandrescu

  1. Mi piacerebbe sapere se ci sono progetti o idee che puoi dirmi che posso implementare in modo da ottenere il meglio er a questo.

  2. L'installazione di cui ho bisogno. Ho un Macbook e una macchina di server devuntu Ubuntu personale. Posso bootcamp per installare qualsiasi sistema operativo, se necessario.

  3. Potete darmi qualche suggerimento su come iniziare a scrivere CGI (o qualsiasi tutorial)?


Thanks a lot.

AJ

+6

Avete programmato molto C++? Se non lo hai, allora _C++ Templates_ e _Modern C++ Design_ potrebbero essere un po 'avanzati. Sono entrambi libri eccellenti, ma non sono proprio per i principianti. –

+6

@James + @AJ: Direi che il libro di Bjarne Stroustrup non è per i principianti ... –

+0

Un Macbook dovrebbe andare bene, basta installare Xcode e si è pronti per programmare in C++. –

risposta

6

Lasciami aggiungere all'elenco di materiale di lettura; il C++ FAQ Lite è assolutamente la migliore risorsa per imparare i dettagli del C++. È utile sia come riferimento per i vecchi temporizzatori sia come introduzione ai principianti. Raccomanderei vivamente di leggerne il più possibile, e provare piccoli esempi che dimostrino ogni caratteristica menzionata prima di entrare in un progetto reale.

Una volta che ti senti a tuo agio nella lingua, ti consiglio di dare un'occhiata allo Github e vedere se ci sono alcuni C++ projects che hanno bisogno di aiuto. Per quanto riguarda le immagini generate al computer o l'interfaccia comune del gateway, entrambe sono indipendenti dal linguaggio. Questi possono essere scritti in qualsiasi linguaggio di programmazione, anche se diversi linguaggi di programmazione avranno diverse librerie esistenti per gestirli. Ti suggerisco di leggere l'argomento per capire meglio lo standard/gli algoritmi (a seconda di quale dei due avevi inteso). Una volta acquisita maggiore familiarità con l'argomento, dovresti trovarti in una posizione migliore per comprendere la documentazione delle biblioteche pertinenti.

Per quanto riguarda l'ambiente di sviluppo, trovo che Ubuntu sia il più facile da configurare, poiché quasi tutte le impostazioni possono essere ridotte a una serie di comandi apt-get install. Per esempio:

sudo apt-get install build-essential 

Indipendentemente da quale sistema operativo in uso, probabilmente si vuole costruire e gestire il codice in un ambiente prevedibile, riproducibile. Devo anche sottolineare che l'ambiente su cui si sviluppa non ha bisogno di essere uguale a quello in cui si crea e si esegue effettivamente il codice. Ad esempio, è possibile scrivere tutto il codice su Mac OS X, ma creare ed eseguire il codice in un contenitore Docker su cui è in esecuzione un'istanza Ubuntu con configurazione di configurazione/esecuzione preimpostata e riproducibile.

In termini di risorse per implementare CGI in C++ (e per altro codice), consultare la pagina C++ resources sul mio sito Web. Elenca diversi strumenti per il networking, la grafica per computer e altre attività in C++, oltre a librerie generiche come Boost e Qt.

+0

Sono abbastanza sicuro che intendesse la grafica per computer CGI – Anycorn

+0

@aaa, oh. Perché la computer grafica "CGI" e non "CG"? –

+0

@ Michael: immagini generate al computer. Tuttavia, anch'io penso che l'OP abbia inteso Common Gateway Interface. È certamente difficile da dire. –

2

a mio parere, se fate qualche piccolo progetto utilizzando

è possibile accedere agli argomenti avanzati di C++ come i modelli di espressione. il progetto non ha nemmeno bisogno di fare nulla di utile, purché sia ​​possibile mettere insieme i pezzi per produrre un po 'di output.

se conosci qualche C++, puoi divertirti molto spingendo il linguaggio ai limiti con phoenix da solo.

Per quanto riguarda le idee, CGI è probabile che sia pesante in matematica, prova ad esempio a scrivere algoritmi di integrazione parallela utilizzando modelli di espressioni.

per esempio, è possibile creare la sintassi simile a questo:

integrate(x*x + sin(x), 0, 100, threads(4)); 
+1

Ma lui vuole delle idee ... –

4

Il modo migliore per diventare migliore in C++ è ... la scrittura di codice C++. Inizia con un semplice raytracer senza dipendenze esterne (basta scrivere l'output in un file PPM).

  1. Credo che questo sia un problema abbastanza interessante e vi permetterà di iniziare con il nucleo di lingua,
  2. La mancanza di dipendenze sarà ridurre le distrazioni con potenzialmente complessi idiomi libreria di terze parti che non si può apprezzare ancora e cose fastidiose come librerie e collegamenti. Inoltre, avrai meno mania del C++ in faccia.

Costruire su quello dopo aver più esperienza. Torna indietro, rifatta il tuo codice, aggiungi caratteristiche più complesse, librerie di terze parti (ad esempio, scrivi un output JPEG, inizia a usare bit di boost, come puntatori intelligenti).

Risciacquare, ripetere.

2

Leggere il libro "Effective C++" di Scott Meyers. È eccellente e ti darà buoni consigli sulle migliori pratiche e cose da evitare.

Problemi correlati