Effective Java – Programming Language Guide

I just read, or possibly re-read, Effective Java: Programming Language Guide by Joshua Bloch.  This is a classic book in Java, and deservedly so.  I’ve already changed a lot of my Java development practices because of reading the book, from using final a lot more to being more careful in my implementations of toString() and hashCode().

Effective Java is very similar in structure to Peter Haggar’s Practical Java: Programming Language Guide, but the focus is different.  Practical Java focuses more on details of Java development, explaining the difference between arrays and Vectors (it’s also a little old, obviously) and the difference between primitives and wrapper classes.  Bloch assumes a higher level of development prowess in his readers, so he starts a bit higher, but then gets to more complicated (and often under-discussed) topics like threading and serialization.

While I was reading Effective Java, I felt that I had read it before.  Perhaps that is due to the similarity to Practical Java.  Perhaps I had borrowed it years ago.  Perhaps I had read enough snippets when using it as a resource that it was familiar.  Or maybe it’s just that the advice inside makes so much sense and was so well written that it seemed not to be new.

I’m really glad that I read Effective Java this month; my code is already better for it, and isn’t that the main reason we read technical books?

About Lance Finney

Father of two boys, Angular/TypeScript developer, Ethical Humanist, and world traveler (when I can sneak it in). Contributor to Grounded Parents.
This entry was posted in Books, Programming. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s