Newsgroup: it.comp.lang.c++
Titolo: [ot]Libreria del perfetto Cppista

Quali libri devono sempre essere presenti, a vostro parere, nella libreria
di un vero Cppista?
Tnk
-- 
Kleidemos
C++ Programmer
kleidem...@altervista.org

 di un vero Cppista?
A mio avviso non sei per nulla OT. Andro' io OT spaziando molto ed uscendo
dal C++..... (il tag OT me lo consente ;-)
Segue una lista dei libri che credo essere importanti.....
Per comprendere la programmazione, occorre comprendere cosa e' un computer:
Architettura degli elaboratori:
--------------------
Computer Architecture: A Quantitative Approach  - John L. Hennessy, David A.
Patterson
Structured Computer Organization - Andrew S. Tanenbaum
Uno di questi due libri va piu' che bene.
Facoltativamente puoi decidere di apprendere qualche cosa in piu' sul
linguaggio assembly. Un libro che ho trovato davvero semplice da leggere e
fatto bene e:
Introduzione al linguaggio assembly (x86):
--------------------
Introduction to 80X86 Assembly Language and Computer Architecture - Richard
C. Detmer
Visto che gia' un pochino di C++ lo conosci puo' essere utile approfondire
alcuni concetti del linguaggio C++ e piu' in generale dei linguaggi di
programmazione; capire cosa realmente e' un linguaggio di programmazione,
cosa e' un compilatore etc....
Linguaggi di Programmazine (teoria):
-------------------
Programming Language Pragmatics - Michael L. Scott
Programming Languages:Concepts and Constructs - Ravi Sethi
Uno dei due va benone. Ovviamente ci sono anche libri specifici su
compilatori (questi introducono solo all'argomento), ma fidati se ti dico
che sono davvero molto difficili e..... in realta' NON indispensabili.
Detto questo e' molto probabile che, data la tua eta', tu troverai molto
difficili anche questi due.
Sempre per l'importanza delle nozioni di background e' importante sapere che
cosa e' un sistema operativo:
Sistemi Operativi
---------------------
Structured Computer Organization - Andrew S. Tanenbaum
Esistono libri migliori di questo, ma questo e' molto piu' leggibile degli
altri a mio avviso.
Come gia' hai capito sapere il C++ non serve a nulla se non sai fare
"probelm solving", e non conosci strutture dati ed algoritmi fondamentali (e
non sei in grado di crearne tu stesso di nuovi):
Algoritmi in C++:
-------------------
Bundle of Algorithms in C++, Parts 1-5: Fundamentals, Data Structures,
Sorting, Searching, and Graph Algorithms (3rd Edition) - R.Sedgewick
Data Structures and Algorithms in C++ - Adam Drozdek
Data Structures & Algoritm Analysis in C++ - M. A. Weiss
Ma spesso i libri "algoritmi in ..... any-language....." sono buoni ma non i
migliori. Il vero libro degli algoritmi e':
Algoritmi:
-------------------
Introduction to Algorithms, Second Edition -  Thomas H. Cormen, Charles E.
Leiserson, Ronald L. Rivest, Clifford Stein
(io ho la prima edizione). Questo libro usa un suo pseudo linguaggio, non il
C++. Tuttavia e' davvero "il" libro degli algoritmi.
Per cio' che riguarda direttamente la tua domanda....
Questi sono alcuni dei libri sul C++ che ritengo importanti e scritti bene:
C++:
-------------------
C++ Primer - Stanley B. Lippman, Josee Lajoie
The C++ Programming Language (Special 3rd Edition) - Bjarne Stroustrup
Thinking in C++: Introduction to Standard C++ - Bruce Eckel
The C++ Standard Library : A Tutorial and Reference - by Nicolai M. Josuttis
Effective C++: 50 Specific Ways to Improve Your Programs and Design (2nd
Edition) - Scott Meyers #
Exceptional C++: 47 Engineering Puzzles, Programming Problems, and
Solutions - Herb Sutter  #
More Exceptional C++ - Herb Sutter #
C++ Templates: The Complete Guide - David Vandevoorde, Nicolai M. Josuttis
Il documento ufficiale dello standard del C++
Quelli con # sono quelli che io NON ho, ma che ho letto o so per certo
essere buoni.
Alcuni di questi sono leggermente vecchi, ma hanno comunque ad oggi buoni ed
interessanti contenuti.
In particolare il libro di Eckel e' molto leggibile, C++ Primer lo considero
forse il miglior libro sul C++. (e' uscito C++ Primer Plus, ma e' un altro
libro di un altro autore... sembra esser anche questo molto buono, ma NON lo
conosco).
Il libri con la # , oltre a quello che gia' ho detto, sono anche libri il
cui contenuto e' "diverso". Sono fatti a "problema e soluzione".
Il documento ufficiale dello standard non e' una lettura molto divertente,
ma.... e' un reference davvero valido!
Ovviamente questa lista e' quello che mi e' venuto in mente al momento...
potrei aver trascurato cose davvero importanti!
Quello che volevo dirti e' che il C++ non e' tutto! Per essere in grado di
usarlo bene e di farci cose interessanti etc... devi sapere altre cose.
Quando arrivi in fondo a questa lista non e' finito nulla.... devi
specializzarti su quello che vuoi... Ecco alcuni esempi:
- Programmazione windows
- Programmazione di video giochi
- Costruzione di compilatori
- Programmazione sistemi real-time and embedded
- Implementazione di un sistema DMBS (scrivere IL database).
- Programmazione di gestionali
- etc....
Per ognuno di queti campi dovrai leggerti molti altri libri... Ma per ora
quello che ti conviene fare e' seguire l'iter comune che e' tracciato piu' o
meno dalla mia lista. Tale lista e' anche (per certi versi) buona parte di
quello che ti faranno imparare all'universita' (mancano certe cose:
matematica, reti e networking, databases, Artificial Intelligence, etc....).
Se impari *SOLO* il C++ non ti metti molto avanti per l'uni.... e .... serve
meno di quello che credi. (ma gia' lo hai capito studiando gli algoritmi che
sono forse la cosa piu' importante).
Le cose da studiare sono davvero tante, ma.... sei fortunato sei molto
giovane ed hai tutto il tempo che vuoi!
Tommy

Per ora ho:
I moderni Sistemi Operativi di Tannenbuam
Sorting, Searching, and Graph Algorithms (3rd Edition) - R.Sedgewick (IT)
C++ Primer - Stanley B. Lippman, Josee Lajoie (IT)
Poi mi prendero il Cormen, se riesco a trovarlo in italiano.
Cmq tutto quello che mi hai detto mi ha entusiasmato non poco e confermato
il mio motivo portante che programmare non e sapere il C++ ma sapere
risolvere problemi.
Tnk per la tua preparazione e per la lista.
La mettero nelle cose da fare
Tnk ancora.


 risolvere problemi.
Bene! Sono contento!
Tommy

 quello che trovi nel Sedgewick.... non c'e' motivo di comprarlo ora.....
Aspettero di avere fatto + mate x il Cormen.
Ma tu che scuola hai fatto e che fai ora???
Tnk


 Ma tu che scuola hai fatto e che fai ora???
Mi sto laurendo in Computer Science in Inghilterra. Ho gia' lavorato alcuni
anni nel campo della programmazione ed in particolare con C++ e Perl. Che
scuola ho fatto? Liceo linguistico, non e' che sia stato molto azzeccato!
Tommy

 Mi sto laurendo in Computer Science in Inghilterra.
Ah, ecco perchè leggi solo libri in inglese.
Non so te ma io studiando, vivendo e parlando italiano tutti i giorni ho
qualche difficoltà a imparare materie tecniche su libri inglesi.
Quando sono andato a New York mi sono comprato e letto un introduzione al
C#, si leggeva benone e ho capito tutto, ma era una "introduzione".
Per l'Università avevo invece comprato un librozzo di Comunicazioni
Elettriche in inglese (non esiste traduzione).
 Su quel libro non ci ho capito davvero una mazza, e dicevano pure che è il
migliore.
Forse rileggendolo 5 volte......
Devo provare.....

 scuola ho fatto? Liceo linguistico, non e' che sia stato molto azzeccato!
Io faccio il classico.
Beato te che sei in England :)

 qualche difficoltà a imparare materie tecniche su libri inglesi...
Non me lo dire, io ho dovuto fare Fisica da un libro inglese... ;(
Poi ci ho fatto anche Elementi d'Informatica Teorica (teorema di Goedel 
per i più ferrati)...
...poi Introduzione ai Compilatori....
...ed altri che ho già rimosso.
Che 2 OO...

 E importante?
Si i grafi sono importanti, ma non devi per forza impararli ora...puoi
impararli dopo che hai imparato il resto.
Non comprare la 5a parte del Sedgewick, tale argomento e' trattato su molti
altri libri come ad esempio il Cormen&company. Non sarebbe stato male
comprare il Sedgewick completo, ma oramai che hai la versione non completa
non stare a completarla ;-) (spero si capisca il gioco di parole
involontario). Compra piu' avanti un altro libro.
Tommy
P.S. il classico da una ottima formazione di base, dopo si e' in grado di
poter imparare piu' o meno tutto..... Almeno questo e' quello che ho sempre
sentito dire....