Core Java for the Impatient Review

I dived into Android development last year. Not having written Java in… I don’t even know (which means forever), nor having ever worked with Java professionally, I decided to get a book that I can read on my free time to quickly get up to speed on Java and its features that I wasn’t familiar with.

I went with this book, befittingly titled Core Java for the Impatient.

The book covers Java SE 8 and does a good job of going through all of the core features of Java SE 8. One thing to note about this book is that it is not for beginners who are just starting out to learn how to code. It does not teach you how to code nor holds your hand on basic programming topics like a variable, array, and etc. Instead, it assumes that you already know how to write code, and will explain how to translate that knowledge to Java.

Because of that, the book will be excellent for an experienced software developer who needs to get a quick introduction to Java to either take on a Java project or get acclimated to Android development. Even if you’re not coming from an Object Oriented programming language, there’s a section in the book that covers OOP in a concise and direct manner.

I read the book cover to cover, and after having worked with Android development for about a year, I realize that reading the book cover to cover probably wasn’t the best idea. Java, as we all know, is very verbose. Especially for me, coming from an elegant and concise language like Ruby, I was abhorred at how much code I had to write to do seemingly simple things. Java 8 is where Java makes an effort to become more concise and elegant. For example (I could be totally wrong on this as I’m unfamiliar with the history of the Java language), lambdas were finally introduced in Java 8. Same with collections, streams, and etc. Now these are all very nice features that would be great to use in normal Java development, however, they aren’t very helpful in Android development.

Majority of Android development is still stuck on pre Java 8. Therefore, you won’t be able to leverage many of the nice features introduced in Java 8. For example, the current Android projects that I’m working on still leverages the retrolambda library to utilize lambdas as the Java version that we’re using does not have that feature. Nor can we use Streams, collect method on a collection, and etc to make our code more concise.

It’s nice to be aware of these new features in Java 8, but as someone who primarily (or more like begrudgingly) writes Java because of Android development, I don’t see the point of reading through the whole book if I can’t utilize the features stated in the book. So read through them for your own curiosity, but understand that you might not be able to utilize many of what you learn in your actual projects.

Overall, if you need to quickly get up to speed on Java, this is a great book to do so. If you’re interested in a copy, buy it here. If you’re more impatient, they also have another book titled “Java SE8 for the Really Impatient”

About the Author Chris Jeon

Software developer currently focusing on Android development.