Book · 2001
Effective Java
by Joshua Bloch
Joshua Bloch's item-by-item case for writing Java the way the platform was designed to be used, with 90 independent recommendations that aged better than most of the language.
What does Reddit think of Effective Java?
r/learnprogramming contributes 14 mentions with cooler sentiment — it appears in long classics lists alongside SICP and Code Complete without getting the "this one specifically" treatment (↑257, ↑169). The mention peak was 2020 at 20, tapering since. This is a Java book in an era when Java's share of beginner mindshare has shrunk, and the numbers show it. r/Python has exactly 1 mention across all 7 years.
Community feedback & reader fit
Themes
- · Composition over inheritance
- · Java platform idioms and API design
- · Effective use of generics and lambdas
- · Item-by-item design rule enforcement
- · Practical object-oriented design in a typed language
Common praise
- + The "favor composition over inheritance" framing from Effective Java shows up in r/ExperiencedDevs discussions independent of any book citation (↑133).
- + r/cscareerquestions recommends it consistently for Java practitioners — the ↑72 comment is the cleanest endorsement in the data.
- + Each item stands alone, so you can read a chapter before a code review rather than from page one.
- + Bloch's credibility as a designer of Java's standard library makes the idioms read like documentation rather than opinion.
Common criticism
- − r/learnprogramming mentions it in list context (↑257, ↑169) without distinguishing it from other classics — not a ringing endorsement.
- − Yearly mentions dropped from 20 in 2020 to 2 in 2025, tracking Java's declining presence in junior and student discussions.
- − The book is only useful if you're writing Java; r/Python's 1 mention tells you everything about cross-language reach.
- − r/programming sentiment is flat neutral across 7 mentions — the senior crowd cites it without debating it, which is a mild form of dismissal.
Who it's for
You write Java professionally and keep running into inheritance chains you didn't start and can't easily unwind. The ↑133 r/ExperiencedDevs comment about legacy code with 3+ levels of inherited stuff describes the exact problem Effective Java was written to prevent. If you're learning programming generally and Java is one of several languages on the table, this isn't the right first book — the ↑257 r/learnprogramming list puts it alongside SICP, which signals the audience already knows what a class is. The book's 66 independent items mean you can dip into it by topic during a review without reading front to back.
Mentions over time
Which Reddit comments matter for Effective Java?
Top-upvoted quotes across the subreddits where this book is mentioned. Click through to read the full thread.
“As in all things in software, I think the advice in the book is largely situational. Did reading Uncle Bob make me a better programmer? I believe so. Do I dogmatically adhere to all these things in code reviews? No. Because "clean" is subjective and at the intersection of consistency and time spent …
“Here's my list of the classics: **General Computing** * But How Do It Know? - The Basic Principles of Computers for Everyone * The Elements of Computing Systems: Building a Modern Computer from First Principles * […
“SICP, Clean Code, Code Complete, [Effective Java](
“I haven’t read Shapiro, but effective Java popularized the phrase “favor composition over inheritance “. From memory inheritance is just another word for tight coupling which can get messy quick. Once you have legacy code with 3+ levels of inherited stuff it’s a total bear.
“A carpenter doesn't need a deep background in material science and similarly a background in CS theory is not really needed if you work as an application developer. Your database and libraries will take care of implementing most of your algorithms and data structure needs. Where you should be looki…
“This was a limited study of a very narrow slice of what "programming" involves: "We conducted a controlled experiment with 37 participants using electroencephalography (EEG) and eye tracking. We asked participants to comprehend up to 32 Java source- code snippets and observed their eye gaze and neu…
“If you just started you shouldn't need to have imposter syndrome. Be honest with your self about your skill level. Everyone are shaky in the beginning, and that is completely fine. The first job is when the real learning is starting. Projects that you do on your own or during education are always l…
“If you’re into java then Effective Java by Joshua Bloch
Convinced? Pick up Effective Java
Readers also mention
Books that share discussion threads with Effective Java — counted from the comments, not curated.
Code Complete
Steve McConnell
Steve McConnell's 900-page construction manual for software, ranked third on Reddit's canonical reading list and still cited 25 years after publication.
The Pragmatic Programmer
Andy Hunt
Two veterans hand you a checklist for the craft: don't write code you don't need, own your tools, and fix the broken window before someone else does.
Clean Code
Robert C. Martin
The book 536 Reddit threads cite when arguing about naming variables — revered by beginners, argued over by seniors.
Design Patterns
Erich Gamma
The 1994 Gang of Four catalog that named 23 object-oriented patterns, gave developers a shared vocabulary, and taught a generation to over-apply both.
Introduction to Algorithms
Thomas H. Cormen
The textbook four MIT professors wrote to settle every algorithms argument, cited by 254 Reddit commenters across 12 subreddits and still going.
Eloquent JavaScript
Marijn Haverbeke
Marijn Haverbeke's free online JavaScript book — variables to async in one volume — by someone who said he wouldn't wish a game-programming career on anyone.
Effective Java — frequently asked
Is Effective Java worth reading if I'm not primarily a Java developer?+
No, not really. The book is specifically about Java idioms — generics, exceptions, serialization, lambdas as they exist in the Java platform. The concepts (favor composition, design for immutability) translate, but the examples don't. r/Python has exactly 1 mention of it across 7 years. If Java isn't your language, Effective Java won't be your book.
What does Reddit think of Effective Java by Joshua Bloch?+
Warm but narrow. Nobody argues with it — they just move on.
Should I read Effective Java early in my Java career or after I have experience?+
After a year or two. The r/learnprogramming mentions (14 of them) put it on classics lists but don't describe it as a starter. The r/ExperiencedDevs comment at ↑133 explains composition vs inheritance in terms of legacy code debt — that context only lands if you've seen a three-level inheritance chain fail in production. Read it when those words have a personal meaning.
Is Effective Java still relevant in 2026 given how much the language has changed?+
Mostly yes. The third edition covers lambdas and streams, and the idioms around generics and exception handling haven't aged out. The mention drop from 20 in 2020 to single digits since 2023 tracks Java's shrinking beginner share more than the book's content. r/cscareerquestions as recently as June 2025 still recommends it for Java practitioners.