Luca Rossi ha scritto:
Visto che siamo in tema, te la sentiresti di consigliarmi qualche libro più "avanzato" per quando diventerò più bravo? Sempre a livello junior però, per ora... (P.S il mio obbiettivo è imparare bene Java in generale, ma sono particolarmente interessato allo sviluppo per Android)
Parto dalla questione finale, visto che hai parlato di Android. In Android la conoscenza "ampia" di un linguaggio come Java NON è la cosa più importante. Tra l'altro, da un certo po' di tempo si può sviluppare per Android anche con Kotlin, un altro linguaggio per la JVM che come Java è "tipizzato staticamente".
Diciamo che in Android al 90% è importante la piattaforma (concetti, API, tool di sviluppo, ecc..) e solo per il 10% è importante il linguaggio. Lo dico meglio in altro modo: se conosci poco/niente le lambda expression, le enum, le annotation, le asserzioni (e sicuramente altro), in Android, come si dice, puoi "campare" lo stesso. Discorso ben diverso se invece ti interessa Java per sviluppare applicazioni desktop e/o web/enterprise.
Riguardo ai libri più "avanzati" ce ne sono una quantità enorme. E lo dico subito: sono solamente in
inglese.
Eccone alcuni, cerco di elencarli per complessità/difficoltà sebbene non sia proprio facile classificarli così:
- Java I/O, 2nd Edition — O'Reilly Media
- Java Generics and Collections — O'Reilly Media
- Java 8 Lambdas — O'Reilly Media
- Mastering Lambdas: Java Programming in a Multicore World — McGraw-Hill Education
- Java 8 in Action — Manning (c'è una nuova edizione in Manning Early Access Program)
- Effective Java, 3rd edition — Addison-Wesley Professional
- Java Concurrency in Practice — Addison-Wesley Professional
Nota: ti ho elencato questi perché li possiedo tutti e li ho già letti.
E non ho considerato ambiti ancora più specifici come lo Unit testing, Networking, Game development, ecc.. e pure altro su framework/librerie ancora più avanzate (JavaFX, Spring, JPA, Hibernate, ecc...).