
Programmare è una vocazione, prima che un mestiere, una passione che nasce sin da quando si è ragazzi e va portata avanti con dedizione e tenacia. Nonostante tutto, approcciarsi la prima volta a questa attività non è facilissimo, soprattutto oggi, a causa della molteplicità di linguaggi diversi. Per questo motivo adesso elencheremo 5 libri per iniziare a programmare, 5 compendi considerati tra i migliori in rete. I libri sono in inglese, a parte quello scritto da Marino della Puppa, perché le traduzioni portano sempre dietro degli errori. Ecco i 5 libri per iniziare a programmare: Core Java Volume 1, Fundamentals di Horstmann e Cornell, The C Programming Language di Kernighan e Ritchie ( i famosi K&R), Learning Python di Mark Lutz, C++ di Marino della Puppa e Start Here! Learn Microsoft Visual C# 2010 Programming di Jophn Paul Mueller.
1. Core Java Volume 1: Fundamentals di Horstmann e Cornell
Questo libro rappresenta un’importante risorsa per l’apprendimento della programmazione Java; è ottimo per chi inizia a conoscere Java, e si completa molto bene in abbinamento al Java Tutorial presente sul sito della Sun. Questo libro dà anche al lettore la possibilità di migliorare e testare la propria conoscenza dell’argomento, con esempi pre-impostati. Questo volume, inoltre, si concentra sui concetti fondamentali del linguaggio Java, insieme alla basi della programmazione user-interface.
Nota sugli autori:
Cay Horstmann è nativo della Germania settentrionale e ha conseguito la laurea presso la Christian Albrechts Universitat di Kiel. Ha ottenuto poi un M.S. in scienze del computer alla Syracuse University e un Ph.D. in matematica presso l’Università del Michigan in Ann Arbor. Per quattro anni è stato VP e CTO di una startup internet, che diventò, da piccolo ufficio di tre persone, una compagnia pubblica. Ora insegna scienze del computer alla San Jose State University e nel tempo libero scrivi libri ed articoli sui linguaggi di programmazione.
Gary Cornell ha scritto e insegnato linguaggi di programmazione per venti anni ed è il cofondatore di Apress. Ha scritto diversi libri per programmatori professionali ed è stato cofinalista per un Jolt Award e ha vinto il premio Readers Choice della rivista Visual Basic. Ha un Ph.D. alla Brown University ed è stato, tra le altre cose, professore di matematica, oltre visiting scientist presso gli IBM Watson Labs.
2. The C Programming Language di Kernighan e Ritchie
Questo libro è la Bibbia della programmazione in C. Nelle sue 270 pagine sono raccolte le indicazioni utili per avviare un programmatore al linguaggio C, sul quale focalizza l’attenzione in modo chiaro, conciso e comprensivo. Chiunque lo abbia utilizzato riporta commenti positivi, grazie alla sua capacità di semplificare anche gli argomenti più complessi. Una parte del capitolo I, ad esempio, spiega in meno di 30 pagine i tipi di dati, le funzioni if/else, for, while, print, gli array e l’esame delle variabili.
Nota sugli autori:
Brian Kernighan ha lavorato presso i Bell labs insieme ai creatori di Unix Ken Thompson e Dennis Ritchie e ha contribuito allo sviluppo di Unix. È anche il coautore dei linguaggi di programmazione AWK e AMPL. Kernighan è professore presso il Computer Science Department della Princeton University.
Dennis Ritchie è morto nel 2011, all’età di 70 anni. Ritchie rappresenta una pietra miliare nel campo della programmazione e il suo lavoro ha avuto un impatto fondamentale sullo sviluppo della cultura informatica. Oltre ad aver scritto di ‘The C Programming Language’ con Kernighan, ha contribuito alla nascita di Unix.
3. C++ di Marino della Puppa
Il libro è ideale per apprendere le tecniche fondamentali per l’implementazione del software applicativo, instradare correttamente un programmatore C++ e offrire una panoramica esaustiva sulla programmazione object-oriented. La lettura è resa molto semplice e fluida da una suddivisione in brevi paragrafi e al termine di ogni unità didattica sono presenti alcuni esercizi. Oltre alla basi, all’interno del libro sono disponibili contenuti per sviluppare argomenti più complessi del linguaggio C++.
Nota sull’autore:
Marino della Puppa è laureato (1998) in Informatica presso lì Università Ca’ Foscari di Venezia e già dai tempi degli studi si è occupato di consulenze in vari ambiti dell’informatica. Tra le sue aree di specializzazione, ci sono le consulenze generali, l’analisi, progettazione e sviluppo di software proprietario, i corsi di formazione, le traduzioni tecniche dall’inglese all’italiano e il coordinamento di gruppi di lavoro.
4. Learning Python di Mark Lutz
Learning Python è un libro sul linguaggio di programmazione Python rivolto ai non esperti, ai novizi; nonostante la lunghezza possa spaventare all’inizio (1214 pagine!), gli argomenti filano via molto rapidamente, perché spiegati con leggerezza e in maniera molto chiara. Il codice di esempio è molto semplice e questa versione del libro si focalizza su Python 2, che è ciò che necessita chi si approccia ora a questo linguaggio di programmazione.
Nota sull’autore:
Mark Lutz è uno dei maggiori esponenti per quanto riguarda il linguaggio di programmazione Python, oltre ad essere un pioniere della medesima community. Lutz ha iniziato la promozione di Python sin dal 1992, e ha iniziato a scrivere libri sul tema dal 1995, per poi iniziare ad insegnarlo dal 1997. Mark Lutz possiede una laurea e un master in scienze del computer conseguiti presso l’Università del Wisconsin.
5. Start Here! Learn Microsoft Visual C# 2010 Programming di John Paul Mueller
Questo libro è ideale per chi non ha mai visto un codice di programmazione nella sua vita e vuole provare a scrivere un programma semplice senza dover andare necessariamente imparare prima a scrivere un codice. Il libro si adatta ad un analista che lavora con fogli di Excel e non ha grande interesse (o tempo) per creare Macro per la manipolazione dei dati, ma desidera imparare a costruire qualche semplice GUI per gestire il data entry.
Nota sull’autore:
John Mueller è un autore freelance e un editore tecnico, che ha prodotto 89 libri e 300 articoli finora. Gli argomenti variano dalle reti all’intelligenza artificiale e dalla gestione dei database alla programmazione heads-down. John ha messo a disposizione i suoi servizi di editing per le riviste Data Based Advisor o Coast Computer. Oltre al computer, John passa le sue giornate a contatto con la natura, nel suo giardino, lavorando a maglia o producendo vino.

Ottimo elenco, il Kernighan-Ritchie è mitico!
Io aggiungerei soltanto Thinking in Java e gli altri della serie Thinking…
Come già accennato da Emanuele, aggiungerei sicuramente “Thinking in C++” di Bruce Eckel, un testo che letteralmente apre la mente su alcuni aspetti della programmazione object oriented. Anche se spesso osteggiato da alcuni (ha fatto della sua attività di divulgatore e scrittore tecnico un vero e proprio business a livello mondiale), Eckel è sicuramente un ottimo autore e vale la pena leggere qualcuno dei suoi libri (consiglio anche “ANSI C made easy”). Sempre in ambito C++ aggiungerei anche il testo “C++ Programming Language” di Bjarne Stroustrup. Chi meglio di altri può spiegare i segreti di un linguaggio se non il suo stesso creatore?
Vorrei aggiungere una Nota, il link del libro Learning Python di Mark Lutz porta su Amazon in lingua inglese, su IBS è presente la versione italiana “Imparare Python” di Lutz Mark a € 54,90. Chi invece vuole leggerlo in lingua, il costo è di € 35.53.
Il costo purtroppo è una necessità comunicarlo perché i giovani non possono permettersi grossi investimenti, quindi sapere quanto preventivare è doveroso.
Saluti
Io avrei suggerito “C Programming: a modern approach” di K.N.King per il C.
E’ sempre un libro introduttivo ma perlomeno parla anche delle feature piu’ recenti del C fino al C99.
Il K&R e’ un classico ma per altri motivi.
Ciao a tutti, per quanto riguarda la programmazione in java, io consiglio il seguente libro:
http://www.amazon.it/Concetti-informatica-fondamenti-Java-Horstmann/dp/8850329563
l’ho comprato originale e l’ho usato per preparare gli esami di java per università, mi ci sono trovato davvero bene e lo reputo un ottimo libro, per i ragazzi che devono imparare da zero il linguaggio java!! 🙂
Io sono possessore dei primi due libri di questo elenco, che ho impiegato nel mio corso di studi – sono laureando in ingegneria informatica – e quindi esprimerò il mio parere soltanto su di loro.
Su quello di Horstmann niente da ridire; ho avuto modo di usare, regalare e consultare più di una sua opera e devo dire che le sue opere riescono sempre a presentare al lettore quello che a me piace definire il “risultato sublime”, ovvero chiarezza dei contenuti, linguaggio alla portata di tutti ma non per questo scarno o poco rigoroso, il tutto farcito da completezza dell’opera (nei suoi manuali sono trattati tutti gli argomenti degli esami OCA ed OCP della Oracle e personalmente all’università l’ho usato per ben 4 esami) e da una ricca collezione di esercizi.
Sul libro del C, sarò una voce un po’ fuori dal coro e dirò che non mi ci sono trovato molto bene. Attenzione, ripeto: IO non mi ci sono trovato bene. Ciò non significa che oggettivamente questo libro non sia un valido strumento. Perché, dunque, il mio disagio?
Non avevo avuto modo di studiare il C prima del corso di Sistemi Operativi. Ero quindi un perfetto neofita al quale serviva una trattazione profonda e minuziosa del linguaggio. Il KR non è un libro che risponde a questo requisito: i miei stessi professori in facoltà, pur definendolo un classico che chiunque studi il C DEVE AVERE, lo ritengono un libro che non tratta nel dettaglio il linguaggio e, leggendo attentamente la prefazione del testo, è possibile notare una frase degli stessi autori dove confermano che la trattazione è stata resa più sintetica e meno approfondita di quanto potrebbe essere necessario. Di fatti alla fine ho dovuto cercare altri testi (mi sono trovato molto bene con il Deitel & Deitel che partendo dalle basi arriva anche a concetti avanzati come le strutture dati in C).
Ciò non toglie che comunque è un’opera valida che io personalmente sfrutto ed impiego con fiducia come prontuario o rapido ripasso dei concetti più importanti.
Quello sul C e’ il mio preferito, ottimo anche quello su python.