Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Suggerimento manuale
Forum - C/C++ - Suggerimento manuale

Avatar
zetazed (Normal User)
Newbie


Messaggi: 3
Iscritto: 27/03/2016

Segnala al moderatore
Postato alle 21:34
Domenica, 27/03/2016
Buonasera a tutti, sono un ragazzo di terza superiore, ho fatto informatica dalla prima quindi mastico già la struttura di base e i "procedimenti logici" dell'informatica. Ho iniziato da quest'anno a utilizzare c++, mi sapreste suggerire un manuale chiaro ma esaustivo, con molti esercizi, non troppo tecnico ma che comprenda anche argomenti più complessi? grazie mille in anticipo!:k:

PM Quote
Avatar
Template (Member)
Pro


Messaggi: 175
Iscritto: 09/12/2015

Segnala al moderatore
Postato alle 9:48
Lunedì, 28/03/2016
Testo quotato

Postato originariamente da zetazed:

Buonasera a tutti, sono un ragazzo di terza superiore, ho fatto informatica dalla prima quindi mastico già la struttura di base e i "procedimenti logici" dell'informatica. Ho iniziato da quest'anno a utilizzare c++, mi sapreste suggerire un manuale chiaro ma esaustivo, con molti esercizi, non troppo tecnico ma che comprenda anche argomenti più complessi? grazie mille in anticipo!:k:




Traduco quanto hai scritto spogliandolo dei "veli":

Buongiorno a tutti, sono un ragazzo di terza superiore, a scuola mi hanno fatto vedere qualcosina di programmazione. Da quest'anno stanno facendo finta di insegnarmi il C++, mi sapreste suggerire un manuale da cui provare ad imparare il linguaggio? E che sia facile ma difficile, grazie!


Non è per essere rompiscatole, ma l'informatica del liceo non ti insegna nè la "struttura di base" (?) nè tanto meno la logica su cui è fondata la programmazione software.
Metabolizza questa importante - per quanto ahimè desolante - realtà, e solo dopo potremo parlare di testi e studio effettivo.

Fatto?
Benissimo, ora parliamo di cose serie: se vuoi un buon testo per apprendere il C++, quello che ti serve a mio avviso è "C++ primer plus" di Prata o i due volumi (tra l'altro disponibili gratuitamente in PDF sul sito dell'autore) di "Thinking in C++" di Bruce Eckel.
Ma, se vuoi un consiglio, ritengo che non dovresti imparare, in questo momento, il C++: è un linguaggio eccezionalmente ricco, e senz'altro un suo apprendimento non assistito ti porterebbe ad imparare nozioni su nozioni senza prima aver capito quelle logiche e quei ragionamenti la cui conoscenza erroneamente vantavi. Inoltre, quasi tutti i testi sul C++ partono dal presupposto che tu già conosca il C (e non dire "ah si lo conosco me l'hanno insegnato a scuola", perchè ti vengo a cercare per picchiarti selvaggiamente :grr: ), tranne forse "Accelerated C++" di Koenig-Moo, il quale però è un testo un po' particolare, che non mi sento di consigliarti (quantunque io lo gradisca).

Dunque, come potrai immaginare, ciò che io ti consiglio è di studiare il C, il quale pur essendo non meno ricco del C++ (del quale è, più o meno, uno "zio") si presta meno a "confusioni e disorientamenti" e soprattutto è illustrato in una inimmaginabile quantità di manuali contenenti anche dei capitoli introduttivi molto utili per chi d'informatica e programmazione sa poco e niente.
Se decidi di seguire il mio consiglio, i testi che ti consiglio sono "C primer plus" di Prata (ebbene sì, quest'uomo ha scritto un ottimo testo anche per il C) e "Linguaggio C" di Bellini-Guidi, per poi continuare leggendo il testo di Kernighan-Ritchie.


"Nel curriculum scrivete quello che sapete fare... e anche quello che non sapete fare! Tipo: "Già vescovo di Cracovia, partecipai alla Coppa America, vincendola!""
[...]
"Sto giocando al piccolo Dio e mi sta venendo pure alla grande."
PM Quote
Avatar
zetazed (Normal User)
Newbie


Messaggi: 3
Iscritto: 27/03/2016

Segnala al moderatore
Postato alle 11:24
Lunedì, 28/03/2016
Ciao e grazie mille per la risposta, ovviamente non intendevo che conosco l'informatica perché faccio due ore di programmazione alla settimana da meno di tre anni, mi sono reso conto da molto tempo quanto sia vasta e quante cose ci siano da imparare. Intendevo però che conosco più o meno la base (diagrammi di flusso, strutture come cicli, controlli eccetera) e che quindi non avevo bisogno di un testo "scolastico" (il nostro addirittura parte da monitor, tastiera...) ma di qualcosa di più avanzato che mi permettesse di fare pratica...grazie ancora e scusa se mi sono espresso male!

PM Quote
Avatar
Template (Member)
Pro


Messaggi: 175
Iscritto: 09/12/2015

Segnala al moderatore
Postato alle 18:27
Lunedì, 28/03/2016
No, non ti sei espresso male, e quanto hai spiegato in questo tuo ultimo post conferma la mia teoria: tu hai delle conoscenze "teoriche" elementari, e forse sai cosa scrivere per far svolgere ad un programma alcuni compiti, ma quasi sicuramente non ti è stato insegnato come approcciarti alla progettazione dei programmi nè ti sono state fornite indicazioni "stilistiche" valide...

Proprio su questo io insisto: quello che ti occorre per fare il "salto" non è un testo che si limiti a spiegarti i costrutti avanzati di un certo linguaggio o farti fare pratica, bensì un testo che ti insegni anzitutto e soprattutto come si programma, e solo dopo ti proponga tutto il resto.

...Anche perchè temo l'approccio che uno "gnomo inventivo" (non ti offendere, ma al momento credo che il tuo status sia più o meno questo) potrebbe avere con argomenti ed algoritmi anche solo minimamente più complessi di quelli trattati a scuola...


Ti prego di riflettere su queste mie parole, perchè sono sincere e, ti assicuro, dettate non dal desiderio di scoraggiarti ma dalla più sentita voglia di aiutarti ;)


"Nel curriculum scrivete quello che sapete fare... e anche quello che non sapete fare! Tipo: "Già vescovo di Cracovia, partecipai alla Coppa America, vincendola!""
[...]
"Sto giocando al piccolo Dio e mi sta venendo pure alla grande."
PM Quote
Avatar
zetazed (Normal User)
Newbie


Messaggi: 3
Iscritto: 27/03/2016

Segnala al moderatore
Postato alle 19:29
Lunedì, 28/03/2016
Capisco completamente quello che vuoi dire...so anche che questo "salto" non è facile da fare solo mediante un libro, ma secondo te il manuale "Thinking in C++" che mi hai suggerito è adatto per questo? È il primo che ho trovato su internet e visto che è anche gratis quasi quasi proverei a studiarlo...grazie mille dei preziosi consigli ;)

PM Quote
Avatar
Template (Member)
Pro


Messaggi: 175
Iscritto: 09/12/2015

Segnala al moderatore
Postato alle 20:46
Lunedì, 28/03/2016
Come ti ho scritto, a mio avviso il C++ come linguaggio - indipendentemente dal libro - non è adatto allo scopo... il testo di Eckel è senz'altro ottimo, ma come praticamente tutti i testi sul C++ da per acquisite certe conoscenze e competenze nell'ambito della programmazione in generale e del linguaggio C in particolare... competenze di cui non credo tu sia provvisto, al momento.
Esattamente, nelle prime pagine del suo testo Eckel scrive:

Testo quotato


I decided to assume that someone else had taught you C and that you have at least a reading level of comfort with it. My primary focus was on simplifying what I found difficult: the C++ language. In this edition I have added a chapter that is a rapid introduction to C, along with the Thinking in C seminar-on-CD, but I am still assuming that you already have some kind of programming experience. In addition, just as you learn many new words intuitively by seeing them in context in a novel, it’s possible to learn a great deal about C from the context in which it is used in the rest of the book.



Che in due parole si può intendere come: "Io ti fornisco dei supporti per il C e tutto quanto, ma di base tu devi saper già programmare, perchè questo è un libro che spiega il C++, non una guida introduttiva alla programmazione o al C".
Quindi, ribadisco il mio consiglio: dovresti imparare prima il C.

Ultima modifica effettuata da Template il 28/03/2016 alle 20:51


"Nel curriculum scrivete quello che sapete fare... e anche quello che non sapete fare! Tipo: "Già vescovo di Cracovia, partecipai alla Coppa America, vincendola!""
[...]
"Sto giocando al piccolo Dio e mi sta venendo pure alla grande."
PM Quote
Avatar
lumo (Member)
Expert


Messaggi: 412
Iscritto: 18/04/2010

Segnala al moderatore
Postato alle 2:25
Martedì, 29/03/2016
Se hai già le basi della programmazione butta nel cesso i libri, comincia a scrivere programmi, di qualsiasi tipo e con qualsiasi mezzo.
L' unico libro di C++ che ho letto aveva ancora #include <iostream.h>, il resto l'ho imparato scrivendo codice e trovando codice di qualità professionale in C++ (ne esiste open source: vai su github e trova).
Poi non vincolarti al C++ solo perché lo hai fatto a scuola, è pieno di linguaggi interessanti, magari trovi qualcosa di più divertente.

Template ribadisce bene che il linguaggio non è tutto e bisogna ottenere delle conoscenze trasversali e indipendenti dalla tecnologia, però agli inizi bisogna sporcarsi le mani e della teoria bisogna un po'  fregarsene. Puoi vedere 100 diagrammi UML e leggere 1000 spiegazioni del polimorfismo, ma se non hai mai scritto due classi non te ne fai nulla.

Comunque tanto per la cronaca la situazione del C++ come linguaggio didattico è abbastanza terribile: in ordine questi sono gli strati consecutivi che devi sapere per programmare in C++ nel 2016:

C <- per compatibilità (puntatori, malloc, ecc)
      ~~ qui in mezzo c' è circa il livello raggiunto a scuola
C++ fino a standard 2003
C++ standard 2011 -> livello da coder professionista con anni di esperienza
C++ standard 2014 -> in competizione con Mary Shelley per miglior frankenstein

PM Quote
Avatar
Template (Member)
Pro


Messaggi: 175
Iscritto: 09/12/2015

Segnala al moderatore
Postato alle 8:39
Martedì, 29/03/2016
Testo quotato

Postato originariamente da lumo:
Se hai già le basi della programmazione butta nel cesso i libri, comincia a scrivere programmi, di qualsiasi tipo e con qualsiasi mezzo.



Non le ha, le basi necessarie (mi rifiuto di ritenere valide le quattro cose che insegnano a scuola)...
Comunque, non condivido assolutamente la proposta di fregarsene della teoria: è un approccio che a lungo andare rischia di renderlo più un "praticone" che una persona realmente competente; inoltre, qualora lui decida in futuro di proseguire gli studi in questo campo, una scelta del genere lo farà trovare in una situazione di sicura difficoltà, perchè dovrà imparare da zero (cosa non facile, se hai già degli schemi consolidati) un approccio alla programmazione completamente diverso.

Condivido invece l'idea specifica espressa in questo periodo:

Testo quotato

Postato originariamente da lumo:
Puoi vedere 100 diagrammi UML e leggere 1000 spiegazioni del polimorfismo, ma se non hai mai scritto due classi non te ne fai nulla.



Perchè unire teoria e pratica è ovviamente necessario... ma prima la devi studiare, 'sta benedetta teoria :rotfl:



Testo quotato

Postato originariamente da lumo:
C <- per compatibilità (puntatori, malloc, ecc)
      ~~ qui in mezzo c' è circa il livello raggiunto a scuola
C++ fino a standard 2003
C++ standard 2011 -> livello da coder professionista con anni di esperienza
C++ standard 2014 -> in competizione con Mary Shelley per miglior frankenstein



Onestamente, credo che una visione realistica sia piuttosto:

~~ Incompetente totale
~~ Livello raggiunto a scuola
~~ Praticone di bassa lega
...
...
...
...
Basi del C fatte bene
Basi del C++
{Vari altri livelli del C++, che implicano l'acquisizione di competenze nell'ambito della programmazione generica, del design del programma...}
Aggiornamenti più recenti del C++



"Nel curriculum scrivete quello che sapete fare... e anche quello che non sapete fare! Tipo: "Già vescovo di Cracovia, partecipai alla Coppa America, vincendola!""
[...]
"Sto giocando al piccolo Dio e mi sta venendo pure alla grande."
PM Quote