I migliori testi per imparare il Java

I

INTRODUZIONE

Quali sono i migliori libri per apprendere il JAVA ?

Arrivano spesso messaggi dove ci chiedono quali siano le migliori risorse cartacee per apprendere Java. Abbiamo quindi deciso di dedicarci un articolo. I testi che vi consiglio sono tutti rigorosamente in lingua inglese e i motivi sono i seguenti:

  • spesso i testi italiani sono delle macabre traduzioni e non testi in lingua originale. Senza fare nomi, in un noto libro italiano sono presenti anche i comandi della linea di comando git tradoti in italiano, come:
$ git accantona
  • nonostante, come italianCoders, stiamo lanciando un’iniziativa di divulgazione contenuti in italiano, i libri tecnici nella nostra lingua sono quasi tutti superficiali e non paragonabili ai testi scritti dai migliori autori al mondo in inglese
  • leggere in inglese è sempre un buon esercizio visto che le risorse ufficiali in questo mondo sono tutte in lingua inglese

Una piccola premessa prima di iniziare la nostra recensione: non si tratta di una classifica, credo che il miglior libro non esiste. Prima di scegliere una risorsa occorre sempre riflettere sul livello e il target: un libro X può essere il testo di riferimento per apprendere la programmazione OOP, mentre il libro Y per il multi-thread.

 

LISTA

 

Java: A Beginner’s Guide
8th Edition  (Herbert Schildt)

libro

Il vero e unico manuale ufficiale Java: 720 pagine di amore per un javista incallito come me. Se stai cercando un manuale di riferimento da tenere in ufficio o un libro che permetta ad un principiante di esplorare in maniera completa il linguaggio SUN da 0 è il libro che fa per te. Nella sua ultima versione, la ottava, è uno dei pochi testi ad oggi aggiornati a Java 11.

CONSIGLIATO per :
  • Principianti che vogliono apprendere le basi del linguaggio
  • Studenti che stanno frequentando corsi universitari Java
  • Professionisti che cercano un manuale di riferimento da tenere in ufficio
NOTE positive:
  • Veramente completo, nelle sue 720 pagine descrive in maniera dettagliata le numerose features del Java.

 

EFFECTIVE JAVA (JOSHUA BLOCH)

libro

Sono un po’ di parte: questo è il mio libro preferito di questa lista. Joshua Bloch è uno dei Java architect più celebri al mondo: ha progettato e sviluppato molte features del core di Java ed èil padre di molte pubblicazioni, prima tra tutte Effective Java. Esiste un’enorme differenza tra la conoscenza di una feature e la comprensione di quando e come usarla per creare un’applicazione efficiente e manutenibile. Effective Java risponde alla seconda esigenza spiegando le migliori best-practices e mostrando come scrivere codice leggibile e ben strutturato. In questo libro troverete molte rivisitazioni dei pattern del GoF e tecniche che sono state fonte di ispirazione della maggior parte di jJava architect del mondo.

CONSIGLIATO per :
  • Principianti che vogliono apprendere le basi del linguaggio
  • Developer che vogliono studiare design pattern e best practices in java
  • Developer che hanno già le basi del linguaggio e vogliono apprendere tecniche per migliorare il loro modo di scrivere codice
NOTE positive:
  • Diviso in item non propedeutici tra di loro; questo vuol dire che potete saltare tra un item e l’altro a seconda delle esigenze
  • Aggiornato alle ultime features di java 8
  • Una delle bibbie del clean code in Java

 

HEAD FIRST DESIGN PATTERN (FREEMAN & ROBSON)

libro

Conosci sufficientemente il Java e sei alla ricerca del santo graal del clean code? Vuoi approfondire le basi della OOP e dei principi SOLID? Sicuramente Head First Design Pattern fa per te. Se non hai mai latto un libro della serie “Head First” non sai cosa ti sei perso: ogni libro della serie utilizza un approccio meta-cognitivo all’apprendimento che permette al lettore di non annoiarsi ed apprendere con meno fatica il contenuto dei libri usando immagini divertenti e giochi. Non è il classico noioso manuale, è davvero divertente e rinfrescante. Adoro leggere la serie “Head First”.

CONSIGLIATO per
  • Developer che vogliono studiare design pattern e best practices in Java
  • Developer che vogliono apprendere le basi della OOP e dei principi SOLID
NOTE positive:
  • Divertente
  • Esempi ben fatti che permettono al lettore di apprendere velocemente concetti complessi
  • Una delle bibbie del clean code in Java

 

Java 8 Lambdas: Pragmatic Functional Programming (richard warburton)

libro

Quando nel 2014 uscì Java 8 fu una vera e propria rivoluzione per i Java developer. Si passò da una programmazione procedurale ad un approccio funzionale con gli stream di Java 8, furono introdotte le attese lambda, furono aggiunte molte facility per la programmazione concorrente e tanto altro ancora. Questo è il libro perfetto per chi conosce il Java delle classiche edizioni e vuole fare un passo avanti verso le edizioni recenti del jdk.

CONSIGLIATO per
  • Developer che conoscono il java “classic” ma non hanno ancora appreso la programmazione funzionale in java con gli stream di java 8
NOTE positive:
  • Veloce e ben fatto, dopo la lettura di questo libro sarai pronto a scrivere codice poco verboso e meno incline al bug con le facility e feature di Java 8

 

da quale partire?

Andiamo per step:

  • Innanzitutto fatevi le basi classic del linguaggio ignorando in un primo momento le features introdotta da Java >= 8.  In questa fase Java Beginner Guide e Effective Java sono i più adatti
  • Una volta che avete le basi del Java occorre non focalizzarsi solo su costrutti e features, ma bisogna apprendere per bene le tecniche di progettazione OOP seguendo le best practices note e i relativi design pattern. Effective Java e Head First Design Pattern saranno i tuoi migliori amici in questa fase
  • Una volta che avete le basi forti della OOP e del linguaggio, affacciatevi al mondo di Java 8: programmare con gli stream vi sembrerà strano all’inizio, ma dopo poco non potrete farne a meno. Java 8 Lambda è il libro giusto per aggiornare le tue basi Java al nuovo approccio di sviluppo funzionale introdotto da Java 8.

 

Insomma, dopo tutti questi spunti non posso fare altro che augurarvi una buona lettura cari amici Javisti.

A proposito di me

Dario Frongillo

Software architect con un forte background in Java, Architettura REST, framework Spring , Database Design,progettazione e sviluppo di SPA e RIA Web application con framework Javascript. Attualmente mi occupo di sviluppo soluzioni software in ambito Banking e Finance: in particolare progettazione e sviluppo di applicativi web based per la realizzazione di sistemi di trading, interfacce con i mercati finanziari e di servizi real time.

Gli articoli più letti

Articoli recenti

Commenti recenti