Here are 55 books that Effective Java fans have personally recommended if you like
Effective Java.
Book DNA is a community of 12,000+ authors and super readers sharing their favorite books with the world.
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.
C++ is a tricky, beastly language, and there are no end of ways to program either incorrectly or inefficiently with it. Meyer's 1991 book set the bar high for similar books to come, providing great, detailed explanations about the language's pitfalls and how to avoid them. After reading Effective C++, though, you might find yourself wondering why you are coding in C++: The tips reveal so many insidious ways to shoot yourself in the foot, and worse, sometimes in a way that you won't even notice that your little toe is missing.
Effective C++ and the two follow-ons are essential reading for anyone working in C++. Nowadays you can purchase a digital edition that provides 140 total ways—adding in 50 additional tips from More Effective C++ and 40 from Effective STL.
"Every C++ professional needs a copy of Effective C++. It is an absolute must-read for anyone thinking of doing serious C++ development. If you've never read Effective C++ and you think you know everything about C++, think again." - Steve Schirripa, Software Engineer, Google "C++ and the C++ community have grown up in the last fifteen years, and the third edition of Effective C++ reflects this. The clear and precise style of the book is evidence of Scott's deep insight and distinctive ability to impart knowledge." - Gerhard Kreuzer, Research and Development Engineer, Siemens AG The first two editions of…
It is April 1st, 2038. Day 60 of China's blockade of the rebel island of Taiwan.
The US government has agreed to provide Taiwan with a weapons system so advanced that it can disrupt the balance of power in the region. But what pilot would be crazy enough to run…
Computers have fascinated me since my childhood, having fond memories of my dad's ZX81, but even so I played around I was never truly captured by the programming until I recognized it as a way of writing rather than raw engineering. Through my studies of media sciences I found my fascination with how language can shape perception, and through my work in developer advocacy, I found how communities are shaped as well. Now I am fascinated with how different programming languages can shape thinking, having had the opportunity to solve problems at large companies in nonmainstream languages.
Smalltalk is not as common or popular as it once was, but the influence its design had on programming is hard to overstate.
Reading this book has changed how I think about object orientation, and how I design systems, learning the patterns of Smalltalk makes it clear what object oriented design is really intended to achieve.
This classic book is the definitive real-world style guide for better Smalltalk programming. This author presents a set of patterns that organize all the informal experience successful Smalltalk programmers have learned the hard way. When programmers understand these patterns, they can write much more effective code. The concept of Smalltalk patterns is introduced, and the book explains why they work. Next, the book introduces proven patterns for working with methods, messages, state, collections, classes and formatting. Finally, the book walks through a development example utilizing patterns. For programmers, project managers, teachers and students -- both new and experienced. This book…
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.
During my first few weeks of JavaScript coding, I encountered what seemed to be an endless number of head-scratching moments: "I'm slowly reading the few lines of code I just wrote, it seems fine, so why isn't it doing what it looks like it should be doing?" Even more insidious at times than C++, JavaScript contains a number of fairly clever constructs, including things like hoisting, duck typing, and a loosey-goosey argument passing mechanism. This concise tome of fewer than 175 pages helped get me past those first few months, and as an author-stated goal, it helped me "learn to think in JavaScript."
Most programming languages contain good and bad parts, but JavaScript has more than its share of the bad, having been developed and released in a hurry before it could be refined. This authoritative book scrapes away these bad features to reveal a subset of JavaScript that's more reliable, readable, and maintainable than the language as a whole-a subset you can use to create truly extensible and efficient code. Considered the JavaScript expert by many people in the development community, author Douglas Crockford identifies the abundance of good ideas that make JavaScript an outstanding object-oriented programming language-ideas such as functions, loose…
A Duke with rigid opinions, a Lady whose beliefs conflict with his, a long disputed parcel of land, a conniving neighbour, a desperate collaboration, a failure of trust, a love found despite it all.
Alexander Cavendish, Duke of Ravensworth, returned from war to find that his father and brother had…
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.
When learning a new language, you'll want to avoid the mistake of assuming that you can adapt your old way of doing things to your new language (like I first tried many years ago). Even though Java and Ruby are both object-oriented languages, the "right" approach to implementing things is dramatically different between the two. Practical Object-Oriented Design in Ruby makes it easy to learn how to apply object-oriented design and to implement the code properly in Ruby, making your system easier to change as it grows.
The Complete Guide to Writing Maintainable, Manageable, Pleasing, and Powerful Object-Oriented Applications
Object-oriented programming languages exist to help you create beautiful, straightforward applications that are easy to change and simple to extend. Unfortunately, the world is awash with object-oriented (OO) applications that are difficult to understand and expensive to change. Practical Object-Oriented Design, Second Edition, immerses you in an OO mindset and teaches you powerful, real-world, object-oriented design techniques with simple and practical examples.
Sandi Metz demonstrates how to build new applications that can "survive success" and repair existing applications that have become impossible to change. Each technique is illustrated…
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.
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.
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…
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.
This tour of programming is a humorous reminder that we should always question our assumptions.
This book presents example after example of very simple Java programs all of which behave differently than you expect. It's both humbling and so provocative that you have to go into an editor and see if their claims are true.
"Every programming language has its quirks. This lively book reveals oddities of the Java programming language through entertaining and thought-provoking programming puzzles."
--Guy Steele, Sun Fellow and coauthor of The Java (TM) Language Specification
"I laughed, I cried, I threw up (my hands in admiration)."
--Tim Peierls, president, Prior Artisans LLC, and member of the JSR 166 Expert Group
How well do you really know Java? Are you a code sleuth? Have you ever spent days chasing a bug caused by a trap or pitfall in Java or its libraries? Do you like brainteasers? Then this is the book for…
The Duke's Christmas Redemption
by
Arietta Richmond,
A Duke who has rejected love, a Lady who dreams of a love match, an arranged marriage, a house full of secrets, a most unneighborly neighbor, a plot to destroy reputations, an unexpected love that redeems it all.
Lady Charlotte Wyndham, given in an arranged marriage to a man she…
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!
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.
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.
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!
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,…
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!
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.
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…
This book follows the journey of a writer in search of wisdom as he narrates encounters with 12 distinguished American men over 80, including Paul Volcker, the former head of the Federal Reserve, and Denton Cooley, the world’s most famous heart surgeon.
In these and other intimate conversations, the book…
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.
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.
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…