"Kleidemos" <francesca8810@tin.it> wrote
> Quali libri devono sempre essere presenti, a vostro parere, nella libreria
> 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