Book Review – Learn Java in One Day and Learn It Well
Chan, Jamie (2016). Learn Java in One Day and Learn it Well. Kindle edition.
Reviewing the book ‘Learn Java in One Day and Learn it Well’ by Jamie Chan has been a pleasure. This book is an introduction to the fundamentals of the Java language, plus some more. It assumes no prior coding experience and can serve as a primer for newcomers to programming as well as existing programmers who are new to Java.
Some general highlights of the book:
This book covers all of the introductory topics of Java Standard Edition. It jump starts the readers into learning Java by covering a lot of introductory topics. Then, it guides them through each of the fundamental concepts. While the details are brief (so that the reader is hopefully able to complete the book in a day), they are detailed enough to impart a proper understanding.
The author has written in a dialog format and has kept the language simple. This makes the book easy and relaxing to read.
The book has a project at the end. Doing this project will cement the reader’s understanding of all of the concepts that have been taught in the book.
Some specific highlights of the book:
One of the highlights of the Java language is that it is platform independent. The book starts with explaining how this concept is implemented in Java. It also explains what a JVM is. Thus, the reader starts with a firm foundation.
Students frequently struggle with performing the preliminary work that is needed for writing Java code. The book does a very good job in explaining how to do this by using the NetBeans IDE.
At this point, the book covers something that is expected from any book on computer programming – a “Hello World” program! The book shows how such a program can be coded in the NetBeans IDE. It also gives a very helpful overview of the structure and the components of a typical Java code.
Primitive data types and basic operators get an adequate treatment in the book. The book then covers some of the important methods of the String class. This is followed by an overview of the important methods of the Array class. All of this helps the user write code that extends the basic “Hello World” program.
At this point, the reader will naturally want to write interactive code. Happily, the book introduces the reader with an explanation of the way inputs can be taken from the user and the results displayed back.
At this point the book also explains how Boolean operators can be used in a Java code. The explanation is brief, but to the point. Decision making constructs as well as looping constructs find a prominent place in the book. Full-fledged programs show these concepts in action.
Many students of Java struggle with the concept of exception handling. Thankfully, this book provides a sufficiently detailed explanation of this concept.
Java supports the Object Oriented Programming System. While the book does not cover the fundamental concepts of that paradigm, it does show how concepts like encapsulation and inheritance are supported by Java. Not only this, the book also explains how to create a class that has data and methods using the Net Beans IDE.
Simply creating a class is obviously not sufficient! The book explains instantiation using various kinds of constructs. Static methods and different types of formal arguments are also discussed.
As expected, the book covers concepts like inheritance and overriding. One of the highlights of the book is that it covers the concept of annotation in detail. The difficult concept of polymorphism is explained using a simple and short piece of code.
Abstract methods and interfaces form the cornerstones of any practical Java code. The book has dedicated two full chapters to these concepts. Moreover, instead of simply providing short unclear explanations, this book provides a complete clarity of these concepts.
The book goes beyond what you would expect from a book that is supposed to cover only the basics. It covers all of the important portions of the Collections framework as well as File Handling. The book ends up its chapters with a very well chosen set of advanced concepts of Java like generics, bounded types and lambda expressions. The concept of lambda expression is very hard to understand. Not only does this book explain the concept well, it also provides a well annotated illustrative program.
The chapter on a practice project at the end of the book is like an icing on the cake! While the requirement of the practice project has been kept deliberately simple, the entire source code has also been given along with an explanation of all of the important portions of the code. This chapter will go a long way in cementing the reader’s understanding of the concepts learned in the book.
On the one hand, this book is an excellent guide for busy people who want to have a fast paced but sufficiently deep understanding of Java. On the other hand, it is an excellent guide for software engineers who want to work on Java. One of the minor shortcomings of the book was an absence of quizzes. But, the full-fledged pieces of code along with the project at the end of the book more than compensate for this. I would highly recommend this book as the first introductory book on Java.
Sourav Sahay is a technology expert with nearly 2 decades of experience in the software industry. He is a published author too. His book on C++ titled ‘Object Oriented Programming with C++’ came out in 2 volumes and has been published by the prestigious Oxford University Press. It has sold more than 50,000 copies worldwide. He is currently writing his second book, which is on Internet of Things. This book will also be published by the Oxford University Press and is slated to hit the stands next year.