Vai al contenuto

Libro Per Programmare In C++?


leotech

Messaggi raccomandati

Ciao a tutti!!! Ho studiato le basi del linguaggio C nel corso di fondamenti di informatica all'università. Anche se sono iscritto ad ingegneria elettronica vorrei continuare nello studio della programmazione, in particolare vorrei studiare il C++, visto che ho letto in giro che è uno dei linguaggi più potenti ed utilizzati. Mi potreste consigliare un libro con il quale cominciare? Tra i vari libri pensavo di prendere questo:

 

http://www.amazon.it/Linguaggio-libreria-standard-principi-programmazione/dp/8865184485/ref=sr_1_1?s=books&ie=UTF8&qid=1455715949&sr=1-1

 

o questo:

 

http://www.amazon.it/Guida-essenziale-per-programmatori/dp/8865184493/ref=sr_1_2?s=books&ie=UTF8&qid=1455715949&sr=1-2

 

Però ho letto che sono dei libri non adatti a neofiti (e non ho capito se intendono neofiti del C++ o alla programmazione in generale). Secondo voi vanno bene o dovrei puntare su altri libri, che so, come il Deitel & Deitel per il C++?

Link al commento
Condividi su altri siti

quel libro ce l'ho in inglese, è un buon libro... ma è molto confusionario, più adatto alla lettura di "piacere" che non ad essere un manuale "pronto all'uso".

sapendo il C non dovresti aver problemi a seguirlo... ma personalmente non lo comprerei come manuale per imparare il c++.

premesso che:

- si impara 10 volte di più scrivendo codice e risolvendo problemi che leggendo un libro di programmazione

- il libro deve servire come fonte di accesso diretto e affidabile per problemi che in futuro il programmatore può trovarsi a "riaffrontare"

 

l'idea è che serva un libro con un indice fatto a regola d'arte, con una serie di argomenti base, spiegati e risolti... con la sintassi del linguaggio che ci serve usare in quel momento.

per esempio... conosci Java, sai cos'è e sai usare la ricorsione in Java, ti ritrovi ad usare C++ ma non sai scrivere la ricorsione in C++... oppure non ti ricordi cosa significa ricorsione... oppure vuoi approfondire altri argomenti di base... il manuale dev'essere la tua fonte di informazione pronta per l'uso e abbastanza autorevole da poterti fidare (online la soluzione la trovi ma magari non è perfetta).

 

Io mi trovo molto bene con questi:

http://www.greenteapress.com/thinkcpp/

 

how to think like a computer scientist è un libro open source, scritto da un professore per i suoi corsi e "tradotto" nei vari linguaggi di programmazione (ne esiste una versione java, c, c++ ecc... tutti molto diversi). Per C++ e Java per quanto mi riguarda il manuale in questione è organizzato benissimo... è leggero (non un malloppazzo come ad esempio il manuale ufficiale Java... che è completo ma praticamente inutile visto che usarlo è persin faticoso), è comprensibile (al contrario di altri manuali... anche scritti in italiano che sono molto confusionari), è chiaro e completo (elenca tutti gli argomenti di base per partire con qualsiasi linguaggio e lo fa in maniera chiara), è semplice da consultare quando serve (essendo un pdf ricercare i termini che servono è semplice e si arriva dritti al punto).

Se vuoi qualcosa da leggere la sera prendi pure quel libro di Stroustrup... ma non ti aspettare niente di più.

 

C++ è sicuramente un bel linguaggio, è potente e moderno, oltre ad essere versatile al 100%

è ad oggetti, è organizzato a classi, ha le stringhe i booleani e tutti i tipi che servono (a differenza di c), è compilato (quindi gira al meglio su ogni macchina), ha ereditarietà multipla, e, nonostante permetta la gestione manuale della memoria, ha anche una gestione "semi-automatica" della memoria.

sembra il linguaggio perfetto?

... ma non è un linguaggio "accademico".

per linguaggio accademico un tempo si parlava di Pascal, poi di C, ad oggi Java.

Sono linguaggi che hanno in comune una cosa: sono rigidi ma hanno una struttura molto standardizzata e abbastanza semplice.

C++ è interessante per una serie di ragioni, ma solo per il programmatore che vuole raccogliere nuove sfide, il fatto di essere compilato è, ad esempio, anche uno svantaggio... perchè a meno che non usi Visual Studio, quali librerie grafiche usi?

l'ereditarietà multipla è una gran cosa, ma bisogna capirla bene altrimenti si possono fare molti pasticci.

la gestione semi-automatica della memoria implica comunque la scrittura di codice aggiuntivo rispetto ad altri linguaggi.

Pascal e C ormai rappresentano il "passato" perchè sono linguaggi procedurali... per iniziarti agli oggetti la cosa migliore sarebbe iniziare con Java.

Con Java avresti: ereditarietà singola (ma l'implementazione delle interfacce può essere multipla), interfacce grafiche (attenzione interfaccia e interfaccia grafica non c'entrano niente l'una con l'altra) con librerie Swing pronte per essere usate e multi-piattaforma (usabili con diversi ide, ad esempio Eclipse o Netbeans), codice compilato in bytecode che viene poi interpretato sulla macchina virtuale java (che non è perfetta ma funziona abbastanza bene).

Con Java tutte le basi teoriche dei linguaggi a oggetti le acquisiresti comunque, di conseguenza passare poi a C++ sarebbe anche molto più semplice.

 

In ogni caso non pensare di imparare semplicemente un linguaggio è basta... l'evoluzione in questo campo è continua... 10-15 anni fa molti programmavano in COBOL, ora è rimasto mio padre e pochi altri... anche i linguaggi si evolvono... java 8 è solo simile a java 5 (con il quale ho iniziato)... quel che vuoi imparare non è C++ ma un linguaggio ad oggetti e le basi che ti servono per usare qualsiasi linguaggio con una semplice ricerca su internet per quanto riguarda la sintassi con cui si può fare una certa operazione che tu sai già fare prima.

Link al commento
Condividi su altri siti

Leif, innanzitutto grazie mille per le tue risposte sempre molto esaustive! Pensavo che il libro di Stroustrup, essendo lui il creatore del linguaggio, fosse il migliore di tutti... Girando su internet ho visto che tutti lo osannano, l'unica raccomandazione che viene data è quella di non comprarlo se si è alle prime armi... Certamente si impara di più programmando, è ovvio, però vorrei comprare un libro per imparare la sintassi e le strutture base del linguaggio... Dici che a questo punto è meglio unire il Deitel & Deitel al PDF che mi hai linkato? Su quest'ultimo ho già studiato per imparare il C, non l'ho trovato malvagio però non ho modo di fare un confronto. LA mia intenzione è quella di imparare a programmare in C++ e in Objective C per programmare principalmente su piattaforme Apple, dici che mi converrebbe comunque inziare da Java?

Link al commento
Condividi su altri siti

inizia con un linguaggio di programmazione ad oggetti... alla fin fine non cambia molto.

il C++ non ti aiuterebbe comunque nella programmazione su piattaforme apple... objective c e swift sono i linguaggi ufficiali apple e sono sintatticamente un po' diversi sia da java sia da c++ però sono comunque linguaggi c-like (come java) e sono entrambi ad oggetti... solo che non sono molto accademici.

Link al commento
Condividi su altri siti

Infatti stavo notando che non tanto il c++, quanto l'objective c e swift non sono considerati in ambito accademico. Penso che comincerò dal c++ per essere in grado di programmare su più piattaforme, successivamente mi darò allo studio dell'objective c e swift. Alla fin fine più linguaggi si conoscono meglio è :P

Link al commento
Condividi su altri siti

Archiviato

Questa discussione è archiviata e chiusa a future risposte.

×
×
  • Crea Nuovo...