DEV Community

Simon Harrer
Simon Harrer

Posted on • Originally published at Medium on

How to learn Java

Photo by John Schnobrich on Unsplash

Quite often, I’m asked: Hey Simon, how to learn Java? Here are the top five resources I typically recommend. Happy reading. Happy learning!

Top 1: Head First Java

Head First Java by Kathy Sierra and Bert Bates

I’d recommend starting with Head First Java. I did the same 13 years ago and I still think this is the best book to start learning Java. It’s not your usual textbook, so be prepared for having actual fun learning Java. Be surprised how much you’ll know after having worked through that book.

Top 2: Java by Comparison

Java by Comparison by Simon Harrer, Jörg Lenhard and Linus Dietz

Next, I blatantly recommend reading the book I co-authored: Java by Comparison. We’ve taught Java for over six years at University, and from that experience, we’ve written Java by Comparison. Our audience in mind has been students knowing enough Java to write simple programs but lacking practice and a mentor that can guide them towards cleaner and more readable code. It features a unique before/after approach comparing bad code to better code, so you can learn step-by-step to transform code into even better code. It’s the book I wished I had when I finished reading Head First Java.

Top 3: Effective Java

Effective Java: Third Edition by Joshua Bloch

Now, we move on to the book on Java, the classic item-style book that provides uncountable insights how to use Java the right way: Effective Java. Just read that. It’s simply mandatory when you want to call yourself a professional Java developer.

Top 4: Head First Design Patterns

Head First Design Patterns by Eric Freeman and Elisabeth Robson

When your programs start to become bigger, you’ll start to feel pain when organizing your code in methods, classes, and packages. That’s when you need to learn about software design. I began my journey with Head First Design Patterns. It features a similar learning style as Head First Java but focuses on how to design your classes instead.

Top 5: Functional Programming Java 8

And last but not least, with more and more people adopting a more functional programming style in Java and everywhere else, I recommend watching the unique Venkat Subramaniam explaining how to program in a functional way in Java 8. Happy watching!

These top 5 resources to learn Java originally appeared on Feel free to browse all the other topics there as well.

Top comments (0)