Back to the bookshelf

Typographic jacket · original cover not fetched

FROM THE SHARED SHELF · 2006–2026 SAMPLE

Effective Java

Joshua Bloch

24 readers recommend it across 15 discussions

Topics are model-inferred labels.

Keep it on your reading list

THE WORD OF MOUTH

What made it worth passing on?

Original Hacker News comments, in the readers’ own words.

optymizer
I would split the books into two categories: those that improve the way you structure your code and deliver a software solution, and those that improve your technical understanding of the software platform and the computer you're using. The first are books like Pragmatic Programmer, Mythical Man Month, Code Complete, Design Patterns, talks by Alan Kay on software systems and OOP, even Game Engine Architecture etc. A lot of the content there is distilled experience which is much faster to learn from a book than gain the hard way on the job. The other books are practical deep dives. Here I would recommend a variety of books like Inside the Machine by Stokes, Computer Architecture by Hennessy, 21st Century C by Klemens, Crafting Interpreters by Nystrom, Compilers by Aho, Effective Java, Nature of Code by Shiffman, Ray Tracing Challenge by Buck, Hands on Hacking by Hickey, and others, depending on your interest and area of focus.
furstenheim
Effective Java by Joshua Bloch is really good. Some of the learnings only apply to Java, but most apply to any language. All the tips are very focused on how the code, APIs and even the languages evolve, trying to understand how your changes could confuse other developers. Compared to clean code, it's clear that it's written by someone who has done a lot of coding and seen the evolution, with a very pragmatic approach. Not just theoretical like Clean Code
michalbcz
Effective Java : Joshua Bloch In my 23s (2008) when I started my career as a Java Developer it was Effective Java. Applying that rules and talking about them with other colleagues makes me better and self-confident developer which other noticed. That leads to better salary negotiations in the future (and my job made me most money). After 10+ years it still helps, because I work mostly in enterprise environments when maturity is way lower and at the same time nowadays lot of juniors joining java community and they are even more junior than I was back in my start of career. For me there is no better way for your wealth building than real knowledge. Learn hard skills, nurture soft skills, work smart. Lot of investment opportunities are just gambling (with money of naive people), choose wisely.
nayuki
Understanding good idioms in Java, instead of learning from scattered pieces of folk knowledge: * http://www.oracle.com/technetwork/java/effectivejava-136174.... (http://www.oracle.com/technetwork/java/effectivejava-136174.html) * https://www.youtube.com/watch?v=V1vQf4qyMXg (a talk by the author) Corner cases in the Java programming language: * http://www.javapuzzlers.com/ * https://www.youtube.com/watch?v=wbp-3BJWsU8 (a talk by the author)
einpoklum
Although I liked Effective Java a lot, and it does contain a lot of advice relevant to many OO languages - it is the opposite of language agnostic: It's very Java-specific. Much of the content is irrelevant except in Java itself; and some of it is the opposite of "Effective language X". For example, it has a section named "Prefer lists to Arrays"; any C++ programmer will tell you the opposite (and that goes down to some of the arguments, such as Java not supporting generic arrays while C++ supports them). So - good book, but not for this purpose.
why-el
Effective Java. A very succinct collection of wonderful practices and ideas on how to code great software that you can finish in a couple of days, even if you are on a working schedule. Don't mind the "Java" in the title; I read the book regularly and it applies to pretty much any language capable of some OO. Check the table of contents, it will give you an idea of what to expect from the book.
Cardinal
It has to be Java Concurrency in Practice. Even though it has Java in its name I think every programmer should read this. Other books I absolutely loved are Effective Java 2 and Programming Interviews Exposed. I'm waiting for Amazon to ship me the second edition of the latter. Hackers and Painters is a classic I default to whenever I'm looking for inspiration.
jing
Here's a few I've really liked that have a broader subject matter than only what you asked for. I figure that if you like to read you'd like these books. --- NON-FICTION --- Darkness Visible A Mathemematician's Apology Omnivore's Dilemma Fermat's Enigma The Code Book Born to Run Judgement of Paris Siddhartha Killing Pablo The Victorian Internet Lone Survivor I Hope They Serve Beer in Hell Surely You're Joking Mr. Feynman Papillon Into Thin Air Born on a Blue Day Touching the Void Got Fight The Conquest of Happiness --- FICTION --- Switch Bitch Lost Horizon The Cuckoo's Egg The Simlarillion The Time Traveler's Wife The Alchemist The Count of Monte Cristo A Canticle for Leibowitz Neverwhere My Uncle Oswald Stories of Your Life and Others Invisible Cities Life of Pi Atlas Shrugged --- WALL STREET / FINANCE --- When Genius Failed Liar's Poker Buffett (Lowenstein) Bull! Black-Scholes and Beyond (textbook) Fixed Income Securities (textbook) The Road to Serfdom The Smartest Guys in the Room Fortune's Formula The Fourth Turning Inside the House of Money --- ENTREPRENEURSHIP / COMPUTERS (non-textbook) --- Masters of Doom It's Not About the Bike Dot. Bomb Founders at Work The PayPal Wars…

Also recommended in this reply

jm4
While slightly off topic, albertcardona may have a point here. This deserves some clarification. It may be that they specifically need Java if they're going to have some in house programmers maintain the application later, but if all they're really interested in is the JVM then you've got some options you may want to consider. I don't want to stray too far here, but one thing I've noticed about many Java people is that they have very narrow views of what's good. (Don't flame me. I'm a Java developer myself.) Maybe they're just playing it safe. It seems to be a common theme with Java. Basically, for several years now the prevailing attitude has been that Struts is the only game in town, but there is a world of other good options for the JVM. Anyway, back on topic... If you must go the Struts route do yourself a favor and use Struts 2. It's been a little while since I've been in the Java web development world, but when I was keeping up with it a lot of developers still hadn't moved on yet. It's light years ahead of Struts 1 and really not so bad to work with as far as Java web development is concerned.…

Also recommended in this reply

hello_moto
Kashif: 1) Head First Java 5 1) Effective Java The strategy here is to study both interchange; once you learned a topic from HF Java 5, check the best practice in Effective Java. 2) Head First JSP/Servlet 2) Any Struts 2 book You can start with the basic few chapters from HF JSP/Servlet and move on to Struts 2. If you found alien concepts in Struts 2, check back HF JSP/Servlet.

Also recommended in this reply