Credo che siano pochi i programmatori in linguaggi tipo C, C++, C# e Java che non abbiano almeno una volta nella vita letto o anche solo sfogliato un libro di Herbert Schildt. Costui è uno dei massimi esperti mondiali su questi linguaggi, ed abbina, oltre ad un’elevata conoscenza tecnica della materia, delle indubbie doti divulgative. La sua fama tra i lettori di qualsiasi lingua è riconducibile anche al fatto di utilizzare un inglese estremamente facile da comprendere, senza parole difficili o slang particolari.
Tutta la trattazione è dedicata al linguaggio in quanto tale. Tutti gli esempi sono del tipo Console Application, e non viene mai utilizzato Visual Studio, se non nelle primissime pagine dove si parla degli ambienti di sviluppo utilizzabili per scrivere programmi C#.
Le immagini quindi sono rarissime, e tutte concentrate all’inizio del libro.
L’approccio al linguaggio è da puristi, come d’abitudine da parte di questo autore.
Chi si aspetta procedure guidate con screenshot presi da Visual Studio (sullo stile di altre collane di testi, come la “Step by Step” della Microsoft) rimarrà quindi deluso.
Bisogna però ammettere che concentrandosi solo sulle peculiarità del linguaggio consente un’elevata focalizzazione proprio su quest’ultime, senza farsi distrarre da altri aspetti di contorno, come potrebbe essere quello dell’ambiente di sviluppo utilizzato e la conseguente creazione di progetti, solutions, deploy ecc.
Il 14esimo e penultimo capitolo è uno dei migliori capitoli introduttivi dedicati a LINQ. Nelle sue 46 pagine l’autore fornisce delle solide e chiare basi su questo argomento, come anche su tutte quelle nuove feature di C# 3.0 che LINQ si porta appresso, ovvero “Lambda Expressions”, “Extension Methods”, “Anonymous Type” e “Object Initializers”. Per chi già conosce abbastanza C#, e quindi sarebbe poco interessato a tutto il resto, questo capitolo può essere una vera sorpresa, e da solo vale la spesa del libro (comunque non eccessiva, dato che il prezzo di copertina è uno dei più contenuti in circolazione).
L’impaginazione e il layout del testo inoltre sono quanto di meglio si possa trovare attualmente tra i testi di questo tipo, e tante case editrici dovrebbero prendere spunto da questa scelta McGraw-Hill.
Pagine larghe il giusto, carta liscia ma non troppo, ottima scelta del font per il carattere del testo e degli esempi di codice. Uso sapiente del grassetto, dei box, dei rimandi e delle frecce che commentano il codice.
Potrà sembrare una banalità, ma anche solo tenere in mano e sfogliare questo testo è un piacere.
Volendo proprio essere pignoli, per il codice degli esempi avrei utilizzato un carattere un po’ più piccolo e ridotto leggermente gli spazi.
Inoltre l’autore utilizza la formattazione del codice in cui la prima parentesi graffa è posizionata in linea, ed i costrutti condizionali, come l’IF, sono scritti in linea anch’essi.
Personalmente è un modo di scrivere il codice che trovo poco leggibile, ma appunto si parla gusti personali (magari altri lettori lo preferiscono così).
Ogni capitolo contiene alcuni piccoli box chiamati “Ask the Expert”, in cui, nella forma Domanda&Risposta vengono riportati interessanti piccoli approfondimenti su quanto spiegato (si risponde, in sostanza, ad ipotetiche domande che uno studente potrebbe porre).
Alla fine di ogni capitolo sono presenti una decina di domande (“Self Test”) con relative soluzioni riportate in appendice. Non sono domande tipo quiz, ma veri e propri esercizi, spesso con la richiesta/necessità di scrivere del codice, o di trovare errori in un esempio proposto, e così via (un po’ di tutto insomma). Il mio consiglio è di non trascurarli, dato che è ottimo modo per fissare i concetti appresi nel capitolo appena concluso.
Personalmente, per il capitolo su LINQ, prima mi sono studiato gli esempi di codice, cercando di immaginare cosa facessero e che scopo avessero, e poi mi sono letto il capitolo.
Ho trovato questo modo di fare molto efficace, piuttosto che leggere prima il capitolo e poi dedicarsi agli esercizi, cosa che in genere si fa normalmente.
Un altro consiglio è di leggere i capitoli in sequenza (a meno che si è interessati ad approfondire un solo argomento), dato che alcuni esempi vengono man mano portati avanti e migliorati man mano che i capitoli si susseguono.
Dopo aver letto questo libro, chi voglia approfondire C# seguendo lo stile di Schildt, segnalo il suo nuovo libro “C# 3.0 The Complete Reference”, sempre edito da McGraw-Hill.
Questa è la pagina dedicata al libro in questione.
dove è possibile scaricarsi il sommario dettagliato (9 pagine) e tutto il primo capitolo (38 pagine).
Sempre qui è possibile scaricarsi il piccolissimo (solo 16 kB) file del codice. una volta scompresso, si ottiene una cartellina con all’interno i file suddivisi per capitolo. Questi hanno un’estensione .lst, inutilizzabile con i consueti programmi in ambiente Windows. Consiglio di rinominarli tutti in .cs, in modo da poterli aprire con Visual Studio.
Ogni capitolo ha un proprio unico file con all’interno tutto il codice sorgente utilizzato negli esempi che, per i capitoli più corposi, può raggiungere le 1500 righe.
Per provare dal vivo gli esercizi, bisogna quindi estrapolare la parte di codice a cui si è interessati, creare una Console Application vuota, e copiarci il codice dell’autore.
PRO
La grande chiarezza di esposizione dell’autore, e la sua indubbia efficacia didattica, consentono di realizzare un ottimo testo per principianti semi assoluti, o come ripasso per chi conosce già un po’ l’argomento. Programmatori già esperti potranno ben apprezzare l’ottimo capitolo su LINQ. Tutti comunque godranno dell’ottima impaginazione, dell’eccellente cura realizzativa (zero refusi) e del codice sempre funzionante.
CONTRO
Nulla di particolare, se non il fatto di essere molto da “beginner”, ovvero non ci sono significativi approfondimenti di alcun tipo.
Voto complessivo: 9/10
Lettore: Principiante
Table of contents
1 - Chapter 1: C#: Fundamentals
39 - Chapter 2: Introducing Data Types and Operators
81 - Chapter 3: Program Control Statements
119 - Chapter 4: Introducing Classes, Objects, and Methods
153 - Chapter 5: More Data Types and Operators
197 - Chapter 6: A Closer Look at Methods and Classes
245 - Chapter 7: Operator Overloading, Indexers, and Properties
287 - Chapter 8: Inheritance
333 - Chapter 9: Interfaces, Structures, and Enumerations
361 - Chapter 10: Exception Handling
391 - Chapter 11: Using I/O
431 - Chapter 12: Delegates, Events, and Namespaces
463 - Chapter 13: Generics
505 - Chapter 14: Lambda Expressions, LINQ, and Other Advanced Topics
553 - Chapter 15: The Preprocessor, RTTI, Nullable Types, and other Advanced Topics
595 - Appendix A: Answers to Mastery Checks
621 – Index
Titolo: C# 3.0 - A Beginner's Guide
Autore: Herbert Schildt
Editore: McGraw-Hill
ISBN: 9780071588300
Pagine: 656
Prezzo: 39.99 $ (prezzo di copertina)
Data di uscita: Set. 2008