Fans pick 47 books like Java Puzzlers

By Joshua Bloch, Neal Gafter,

Here are 47 books that Java Puzzlers fans have personally recommended if you like Java Puzzlers. Shepherd is a community of 12,000+ authors and super readers sharing their favorite books with the world.

When you buy books, we may earn a commission that helps keep our lights on (or join the rebellion as a member).

Book cover of Structure and Interpretation of Computer Programs

Yehonathan Sharvit Author Of Data-Oriented Programming

From my list on become a great developer.

Why am I passionate about this?

I boast a two-decade-long career in the software industry. Over the years, I have diligently honed my programming skills across a multitude of languages, including JavaScript, C++, Java, Ruby, and Clojure. Throughout my career, I have taken on various management roles, from Team Leader to VP of Engineering. No matter the role, the thing I have enjoyed the most is to make complex topics easy to understand.

Yehonathan's book list on become a great developer

Yehonathan Sharvit Why did Yehonathan love this book?

This book profoundly changed how I approach functional programming. I found its deep dive into core concepts like recursion, abstraction, and modularity incredibly insightful. The exercises pushed me to think critically and refine my problem-solving process.

Despite being an older book, its content remains relevant and valuable to me.  I consider it the best pragmatic introduction to functional programming.

By Harold Abelson, Gerald Jay Sussman, Julie Sussman

Why should I read it?

2 authors picked Structure and Interpretation of Computer Programs as one of their favorite books, and they share why you should read it.

What is this book about?

As others have gone into, this is a great programming book for many reasons, and is a must-read for anyone who is interested in software design. Rather than waste time reaffirming the excellent positive reviews of this book, I wanted to cover something that I have not seen in the reviews: namely that there are multiple publishers for this book (as it is an "open source" book). At the time of writing, there is this McGraw-Hill publication, and, for 40% less, an MIT press edition. While I have not seen the McGraw-Hill version in person to see what quality benefits…


Book cover of Beautiful Code

Christian Clausen Author Of Five Lines of Code

From my list on reads with your hands on the keyboard.

Why am I passionate about this?

My life has been about programming for as long as I can remember. Learning to code was a way to connect with my dad and express my creativity at a young age. Since I grew up with code, it became the way I understood the world; often I could look at a process or program and immediately see its source code in my mind. I developed a very strong sense of aesthetics searching for “perfect code,” which for me was code that was not only error-free but resistant to errors. My studies, research, and career is about moving myself and all programmers closer to that goal: Software that never fails.

Christian's book list on reads with your hands on the keyboard

Christian Clausen Why did Christian love this book?

Continuing down the engineering part of this mini-curriculum, we have a collection of interesting ideas, each written by a different author, all of them inspiring.

Some of the chapters in this book I have reread more times than I can count, because the ideas are so original and intriguing that my fingers start to tingle.

By Andy Oram, Greg Wilson,

Why should I read it?

1 author picked Beautiful Code as one of their favorite books, and they share why you should read it.

What is this book about?

How do the experts solve difficult problems in software development? In this unique and insightful book, leading computer scientists offer case studies that reveal how they found unusual, carefully designed solutions to high-profile projects. You will be able to look over the shoulder of major coding and design experts to see problems through their eyes. This is not simply another design patterns book, or another software engineering treatise on the right and wrong way to do things. The authors think aloud as they work through their project's architecture, the tradeoffs made in its construction, and when it was important to…


Book cover of Types and Programming Languages

Christian Clausen Author Of Five Lines of Code

From my list on reads with your hands on the keyboard.

Why am I passionate about this?

My life has been about programming for as long as I can remember. Learning to code was a way to connect with my dad and express my creativity at a young age. Since I grew up with code, it became the way I understood the world; often I could look at a process or program and immediately see its source code in my mind. I developed a very strong sense of aesthetics searching for “perfect code,” which for me was code that was not only error-free but resistant to errors. My studies, research, and career is about moving myself and all programmers closer to that goal: Software that never fails.

Christian's book list on reads with your hands on the keyboard

Christian Clausen Why did Christian love this book?

Having worked with an untyped functional language the next logical step is to add types on top, and how to get a better understanding than by implementing the type system yourself.

This book takes you through all the interesting kinds and variations of type systems, and you get to implement them yourself using one of my absolute favorite languages (OCaml).

By Benjamin C. Pierce,

Why should I read it?

1 author picked Types and Programming Languages as one of their favorite books, and they share why you should read it.

What is this book about?

A comprehensive introduction to type systems and programming languages.

A type system is a syntactic method for automatically checking the absence of certain erroneous behaviors by classifying program phrases according to the kinds of values they compute. The study of type systems—and of programming languages from a type-theoretic perspective—has important applications in software engineering, language design, high-performance compilers, and security.

This text provides a comprehensive introduction both to type systems in computer science and to the basic theory of programming languages. The approach is pragmatic and operational; each new concept is motivated by programming examples and the more theoretical sections…


Book cover of Distributed Algorithms An Intuitive Approach

Christian Clausen Author Of Five Lines of Code

From my list on reads with your hands on the keyboard.

Why am I passionate about this?

My life has been about programming for as long as I can remember. Learning to code was a way to connect with my dad and express my creativity at a young age. Since I grew up with code, it became the way I understood the world; often I could look at a process or program and immediately see its source code in my mind. I developed a very strong sense of aesthetics searching for “perfect code,” which for me was code that was not only error-free but resistant to errors. My studies, research, and career is about moving myself and all programmers closer to that goal: Software that never fails.

Christian's book list on reads with your hands on the keyboard

Christian Clausen Why did Christian love this book?

The building blocks of software are algorithms, so here our journey continues after you have established a deep understanding of programming languages.

Modern software is predominantly distributed, and since this book doesn't assume much it is the perfect introduction to algorithm analysis, concurrency, and distributed systems. And the best part is that you can just jump in and build these algorithms yourself.

By Fokkink,

Why should I read it?

1 author picked Distributed Algorithms An Intuitive Approach as one of their favorite books, and they share why you should read it.

What is this book about?

The new edition of a guide to distributed algorithms that emphasizes examples and exercises rather than the intricacies of mathematical models.

This book offers students and researchers a guide to distributed algorithms that emphasizes examples and exercises rather than the intricacies of mathematical models. It avoids mathematical argumentation, often a stumbling block for students, teaching algorithmic thought rather than proofs and logic. This approach allows the student to learn a large number of algorithms within a relatively short span of time. Algorithms are explained through brief, informal descriptions, illuminating examples, and practical exercises. The examples and exercises allow readers to…


Book cover of Effective Java

Jeff Langr Author Of Modern C++ Programming with Test-Driven Development: Code Better, Sleep Better

From my list on doing it right in your programming language.

Why am I passionate about this?

I love computer programming books almost as much as I love computer programming. As a high school student in 1980 I remember typing in really frustrating source code from the book BASIC Computer Games. Was programming meant to be a black art? Was code supposed to be an impenetrable mess of buried intent? When I started getting paid to program, I was happy to see that the answer to both questions was "no." I began to seek and enjoy books that espoused the "right" way to code in a given language. Here is a handful of books that have helped me and countless others learn to produce correct, clear, and maintainable code.

Jeff's book list on doing it right in your programming language

Jeff Langr Why did Jeff love this book?

When seeking a book on how to use a language effectively, getting one written by someone who helped design and implement the language is usually a great idea. With Effective Java, you get a book written by someone who contributed a significant amount to the language: Joshua Bloch had a lot to do with the design of the Java 5.0 features circa 2004, which is where Java moved for me from "inelegant" to "hey I can finally make things look good in this language." Bloch goes into considerable and passionate depth about each of the 90 items in the 2018 edition and will help you ensure you don't make the mistakes that can lead to defective or bad code.

By Joshua Bloch,

Why should I read it?

1 author picked Effective Java as one of their favorite books, and they share why you should read it.

What is this book about?

Since this Jolt-award winning classic was last updated in 2008, the Java programming environment has changed dramatically. Java 7 and Java 8 introduced new features and functions including, forEach() method in Iterable interface, default and static methods in Interfaces, Functional Interfaces and Lambda Expressions, Java Stream API for Bulk Data Operations on Collections, Java Time API, Collection API improvements, Concurrency API improvements, and Java IO improvements.



In this new edition of Effective Java, Bloch explores new design patterns and language idioms that have been introduced since the second edition was released in 2008 shortly after Java SE6, including Lambda, streams,…


Book cover of Microservice Patterns: With examples in Java

Laurentiu Spilca Author Of Spring Security in Action

From my list on a technical shelf of books for a Java Engineer.

Why am I passionate about this?

My passion for computer science started while spending my free time gaming in my young adult days, leading me to experiment with C++ and then dive into enterprise-level Java applications during high school. My enthusiasm for Java propelled me to teach and share my knowledge through Java and Spring tutorials on YouTube. I also frequent conferences where I exchange ideas on various software topics. My constant wish to contribute further to the community is filled by writing technical books. This mix of teaching, creating, and constant learning fuels me and pushes me further into the tech world. I really hope you will enjoy this selection of technical books! 

Laurentiu's book list on a technical shelf of books for a Java Engineer

Laurentiu Spilca Why did Laurentiu love this book?

To be honest, I did not expect to learn something new from this book, given the fact that I have been working on enterprise-level applications since high school, which mostly follow a microservice architecture. 

Still, I have to admit that in Richardson's discussion on decomposition strategies, inter-service communication, and managing distributed data, I still got some valuable insights into dealing with such an architecture. Particularly, the saga pattern for managing transactions was definitely a game-changer for me.

By Chris Richardson,

Why should I read it?

1 author picked Microservice Patterns as one of their favorite books, and they share why you should read it.


Book cover of Rich Forests, Poor People: Resource Control and Resistance in Java

Carol J. Pierce Colfer Author Of The Longhouse of the Tarsier: Changing Landscapes, Gender and Well Being in Borneo

From my list on Indonesian life and policy.

Why am I passionate about this?

I worked in Indonesia much of the time between 1979 and 2009, with people living in forests. As an anthropologist, my work was initially ethnographic in nature, later linking such insights to policies relating to forests and people – as I worked at the Center for International Forestry Research in Bogor (1995 – the present). Although later in my career, I worked in forests all over the tropics, my real love remains with Indonesia, where I worked the longest and learned the most. My most recent research was in 2019, when I returned to the first community I studied ethnographically in 1979-80.

Carol's book list on Indonesian life and policy

Carol J. Pierce Colfer Why did Carol love this book?

Although I have done very little ethnographic research in Java, I worked closely with Javanese transmigrants in West Sumatra. Peluso’s book provided me with additional understanding of the world from which these folks were likely to have come.  It also provided useful historical and contemporary material on Indonesian policies relating to forests that were very useful for me to know. The book has become a classic in the field!

By Nancy Lee Peluso,

Why should I read it?

1 author picked Rich Forests, Poor People as one of their favorite books, and they share why you should read it.

What is this book about?

Millions of Javanese peasants live alongside state-controlled forest lands in one of the world's most densely populated agricultural regions. Because their legal access and customary rights to the forest have been severely limited, these peasants have been pushed toward illegal use of forest resources. Rich Forests, Poor People untangles the complex of peasant and state politics that has developed in Java over three centuries. Drawing on historical materials and intensive field research, including two contemporary case studies, Peluso presents the story of the forest and its people. Without major changes in forest policy, Peluso contends, the situation is portentous. Economic,…


Book cover of Practical Design Patterns for Java Developers: Hone your software design skills by implementing popular design patterns in Java

Jeanne Boyarsky Author Of OCP Oracle Certified Professional Java SE 17 Developer Study Guide: Exam 1Z0-829

From my list on becoming a better Java developer.

Why am I passionate about this?

I’ve always enjoyed mentoring folks whether new or experienced in programming. Whether it is teaching an intern or a high school robotics student, or onboarding an experienced Java developer, it brings me joy to see people learn. I also love to read. Being able to recommend some of my favorite books can help even more people absorb all of this information.

Jeanne's book list on becoming a better Java developer

Jeanne Boyarsky Why did Jeanne love this book?

By contrast to my previous 20-year-old book recommendation, this one is brand new.

When I was learning Java, we used the (now classic) “Gang of Four” book for Patterns. For design patterns, language syntax does matter. Miro covers the Gang of Four patterns and new ones using the same categories – creational, structural, and behavioral.

Miro also adds concurrency and anti-patterns which weren’t in the original GoF. I like that he includes review questions. This is very key info to know and mastering it with a modern book is very useful. Plus Miro includes examples of that pattern in the JDK itself.

By Miroslav Wengner,

Why should I read it?

1 author picked Practical Design Patterns for Java Developers as one of their favorite books, and they share why you should read it.

What is this book about?

Unravel the power of Java design patterns by learning where to apply them effectively to solve specific software design and development problems

Key Features Decouple logic across objects with dependency injection by creating various vehicles with features Finalize vehicle construction by chaining handlers using the Chain of Responsibility Pattern Plan and execute an advanced vehicle sensor initiation with the Scheduler PatternBook Description

Design patterns are proven solutions to standard problems in software design and development, allowing you to create reusable, flexible, and maintainable code. This book enables you to upskill by understanding popular patterns to evolve into a proficient software…


Book cover of Java Persistence with Hibernate

Laurentiu Spilca Author Of Spring Security in Action

From my list on a technical shelf of books for a Java Engineer.

Why am I passionate about this?

My passion for computer science started while spending my free time gaming in my young adult days, leading me to experiment with C++ and then dive into enterprise-level Java applications during high school. My enthusiasm for Java propelled me to teach and share my knowledge through Java and Spring tutorials on YouTube. I also frequent conferences where I exchange ideas on various software topics. My constant wish to contribute further to the community is filled by writing technical books. This mix of teaching, creating, and constant learning fuels me and pushes me further into the tech world. I really hope you will enjoy this selection of technical books! 

Laurentiu's book list on a technical shelf of books for a Java Engineer

Laurentiu Spilca Why did Laurentiu love this book?

Mastering a tool like Hibernate is essential when dealing with Spring Boot and databases, as it can simplify the development process if used correctly.

I was particularly impressed by how the authors tackled complex concepts like caching, lazy loading, and transaction management, making them accessible and relatable to persons with zero to no experience, and also making sure that someone with experience does not get bored either.

I found that managing entities correctly and knowing how to deal with JPQL automatically results in a cleaner, more scalable, and performant code base. 

By Christian Bauer, Gavin King, Gary Gregory

Why should I read it?

1 author picked Java Persistence with Hibernate as one of their favorite books, and they share why you should read it.

What is this book about?

DESCRIPTION

Persistence-the ability of data to outlive an instance of a program-is central to modern applications. Hibernate, the most popular provider of the Java Persistence standard, offers automatic and transparent object/relational mapping, making it a snap to work with SQL databases in Java applications.

Java Persistence with Hibernate, Second Edition explores Hibernate by developing an application that ties together hundreds of individual examples. It digs into the rich programming model of Hibernate, working through mappings, queries, fetching strategies, transactions, conversations, caching, and more and provides a well-illustrated discussion of best practices in database design and optimization techniques. This revised edition…


Book cover of 97 Things Every Java Programmer Should Know: Collective Wisdom from the Experts

Jeanne Boyarsky Author Of OCP Oracle Certified Professional Java SE 17 Developer Study Guide: Exam 1Z0-829

From my list on becoming a better Java developer.

Why am I passionate about this?

I’ve always enjoyed mentoring folks whether new or experienced in programming. Whether it is teaching an intern or a high school robotics student, or onboarding an experienced Java developer, it brings me joy to see people learn. I also love to read. Being able to recommend some of my favorite books can help even more people absorb all of this information.

Jeanne's book list on becoming a better Java developer

Jeanne Boyarsky Why did Jeanne love this book?

When trying to become a better Java developer, there is so much to learn.

97 Things covers, well 97, of them in a series of brief essays. What’s cool is that the essays were written by different people so you get lots of points of view on what is important. Topics range from language (comments, fat jars) to the ecosystem (benchmarking, frequent releases) to the language-agnostic (definition of done and breaking down problems.)

Note that two of these are mine. The book is thin at just over 200 pieces. And since each “thing” is short, it’s easy to read on the go.

By Kevlin Henney, Trisha Gee,

Why should I read it?

1 author picked 97 Things Every Java Programmer Should Know as one of their favorite books, and they share why you should read it.

What is this book about?

If you want to push your Java skills to the next level, this book provides expert advice from Java leaders and practitioners. You'll be encouraged to look at problems in new ways, take broader responsibility for your work, stretch yourself by learning new techniques, and become as good at the entire craft of development as you possibly can

Edited by Kevlin Henney and Trisha Gee, 97 Things Every Java Programmer Should Know reflects lifetimes of experience writing Java software and living with the process of software development. Great programmers share their collected wisdom to help you rethink Java practices, whether…


Book cover of Structure and Interpretation of Computer Programs
Book cover of Beautiful Code
Book cover of Types and Programming Languages

Share your top 3 reads of 2024!

And get a beautiful page showing off your 3 favorite reads.

1,593

readers submitted
so far, will you?

5 book lists we think you will like!

Interested in computer programming, object-oriented programming, and software?

Software 61 books