Twenty-five years after its creation, Java is still the most popular programming language according to the latest TIOBE index. Who would have thought that the language invented by Sun would have such a destiny when it was created in 1995?
Today, knowing how to program in Java language has become almost indispensable. Why? Simply because the language that now belongs to Oracle allows you to do everything. It is thus possible to create desktop applications, Web applications or mobile applications via Android, which is crushing the smartphone market. The question of the need to learn Java does not therefore arise in 2019.
Books to learn Java are numerous and it is therefore very difficult to find your way around such an important choice. In addition, the Java language has evolved a lot since the release of Java 8 with the introduction of Lambdas and Streams. Similarly, the modularity introduced with Java 9 has also changed the map and it is therefore important to choose the right books to start on the right foot in your Java learning. Finally, there are some timeless books whose content applies regardless of the version of Java.
To help you find your way around, I suggest you discover a selection of the 6 best books to learn programming in Java language and acquire good practices for developing Java applications.
Java: The Complete Reference, Eleventh Edition
The author of “Java: The Complete Reference, Eleventh Edition” Herbert Schildt is simply one of the greatest authors of books on programming. He has written best-selling books on Java, C, C++ and C#. His book is a must-read that is in its 11th edition. It covers the latest innovations introduced from Java 8 up to Java 11.
This is probably one of the best books for developers from beginner to intermediate in Java. The concepts of Java are clearly presented and it is easy to build skills from scratch with this book. It is therefore to be put in the hands of all beginners wishing to discover Java.
Java in a Nutshell: A Desktop Quick Reference 7th Edition
“Java in a Nutshell” is also a classic book for anyone who wants to learn how to program in Java. This 7th edition loses nothing in quality and covers the entire Java language with a particular focus on the new features introduced from Java 9 to Java 11. The goal is for more experienced programmers to find their way around and take full advantage of the latest developments in the Java platform.
Written by Ben Evans and David Flanagan, this book is full of examples that will allow you to write modern Java code using the best practices of the moment. The first part of the book will help beginners to gradually show skills with Java. The second part focuses on the core concepts of Java and its APIs, always keeping a pragmatic approach so that you can really put all the examples presented into practice in your daily work.
In summary, this book is therefore intended for Java developers of all levels. It will teach you the basics of object-oriented programming in Java, take advantage of Generics and the powerful Java Collections API. Java 8 Lambdas and Streams are also widely covered. I/O management is also detailed as well as good practices for writing high-performance concurrent applications while taking care to properly manage memory in Java. Finally, the part on Java 9 and Java 11 should be read by Java developers wishing to update their knowledge on the new possibilities of the JDK in terms of application modularization in particular.
Book on Amazon : “Java in a Nutshell: A Desktop Quick Reference 7th Edition”
Java 9 Modularity: Patterns and Practices for developing maintainable applications
The long-awaited modularization of the JDK finally came with Java 9, which was necessary to enable the Java platform to move up a gear and prepare for its future. However, this modularization introduces a certain complexity for which developers are not necessarily prepared. The book “Java 9 Modularity: Patterns and Practices for developing maintainable applications” is therefore essential to allow the developer to discover JPMS (Java Platform Modularization System) in depth.
Once the discovery of how JPMS works is complete, the book aims to show you the best patterns and practices for developing robust and maintainable modular Java 9 applications. This book can also be addressed to developers from other languages who would like to open their minds to modularization in Java. I’m thinking of the C# developers of Microsoft’s.NET platform who might want to discover what’s being done in the neighbor’s house.
Java 9 Programming By Example: Your guide to software development
Once the theory around the Java programming language is complete, the novice developer is confronted with a kind of wall. How to cross the gap between the theoretical and the practical part with concrete cases from the real world? How to take advantage of all the new practices and APIs in the Java world to write better quality Java applications?
To help you overcome this gap, the book “Java 9 Programming By Example” will be your ideal companion. Based on an example-based approach, this book will even allow Java beginners to get into the big bath through practice. Ideal for learning in the best conditions. Beginners and advanced Java developers will also benefit by discovering how to use the latest features of Java 9, with a particular focus on modularity and HTTP 2.0.
Another positive point of the book is also that it offers you to discover best practices to separate the code from your applications into modules. This desire to focus on real-world practices is also reflected in the part of the book devoted to the use of the Spring framework, whose knowledge is now essential for any Java developer.
Book on Amazon : “Java 9 Programming By Example”
Modern Java in Action
The best-seller “Java 8 in Action”, which presented the latest innovations of Java 8, has been updated by the publisher, who chose to call his new work “Modern Java in Action”. By always giving pride of place to the discovery of the use of Lambdas and Streams introduced with Java 8, this new version aims to show you how to create modern applications in Java.
The book thus covers Java 9 and Java 10, which includes the latest features of the JDK, providing excellent support for reactive programming in Java. This new programming mode is gaining in popularity due to the many advantages it brings and it is therefore essential that a self-respecting Java developer knows its fundamentals. This book will give you this opportunity and allow you to write robust and maintainable applications in a new way. To be more precise, in a modern way!
Book on Amazon : “Modern Java in Action: Lambdas, streams, functional and reactive programming”
Effective Java 3rd Edition
Written by the famous Joshua Bloch, the book “Effective Java” is probably one of the greatest best-sellers in the history of Java books. Its content is timeless and every Java developer must have read it. Applying the main principles of this book will necessarily make you a better Java developer. This 3rd edition updates the examples in the book to keep track of developments in Java 7, 8 and 9.
In addition, the new features introduced by the latest versions of Java deserved new dedicated items to allow Java developers to understand what to do and what not to do. This new edition therefore deals, among other things, with Lambdas, Streams, functional interfaces, method references or new APIs such as Optional and java.time as well as new methods added to the Collections.
To put it simply, “Effective Java 3rd Edition” is a must-read to put in the hands of all Java developers. So there is only one thing, if it has not already been done, it is to get it for you!
Book on Amazon : “Effective Java 3rd Edition”
The large number of books dealing with Java programming is a strength but also a weakness when it comes to making a choice. This article will have allowed you to discover a selection of the 6 best books to learn to program in Java whatever your level since they are aimed at both beginners and more experienced developers.
Feel free to react with comments by sharing the books you find most appropriate to learn how to program in Java.