As a developer, it’s of the highest importance to expand, improve and refine your skills. After all, a software developer should always strive for true craftsmanship. One way of doing that? Read books!
There’s an abundance of great – and less great – online resources which can be used to facilitate this process. However, with these type of resources, you often jump from one tutorial to the other. Each time you have to deal with a different author whose opinionated view and approach can differ from the previous author’s. This might leave you unnecessarily confused and it might prove more difficult this way to get a good overview of the subject you’re studying. This is why books still are very relevant and useful when learning new subjects related to software development. Books offer authors with – almost always – a proven track-record, a consistent view, a consistent approach and a full and in-depth coverage of the subject.
Below, you’ll find a list of both recent (and also some older) books that are very relevant to junior (java) software developers at the start of their professional career, willing to hone their skills. Happy reading!
Java Programming Books
Books with a high focus on the Java programming language itself.
[su_box title=”Effective Java: Third Edition” box_color=”#72a71f”]
A great book containing a collection of best practices for (the) Java (platform). It’s focused on craftsmanship, best practices. Not syntax.
Java has changed dramatically since the previous edition of Effective Java was published shortly after the release of Java 6. This Jolt award-winning classic has now been thoroughly updated to take full advantage of the latest language and library features. The support in modern Java for multiple paradigms increases the need for specific best-practices advice, and this book delivers… Read more on Amazon
- Author: Joshua Bloch
- ISBN-13: 978-0134685991
[su_box title=”Head First Java, 2nd Edition” box_color=”#72a71f”]
A fun, visual beginners book to get a better understanding of the essential building blocks of the Java programming language (SE). Although being an older book, it’s still relevant to this day.
Learning a complex new language is no easy task especially when it’s an object-oriented computer programming language like Java. You might think the problem is your brain. It seems to have a mind of its own, a mind that doesn’t always want to take in the dry, technical stuff you’re forced to study… Read more on Amazon
- Author: Kathy Sierra and Bert Bates
- ISBN-13: 978-0596009205
Software Refactoring Books
Books with a high focus on writing good code, not just any code. Applicable to all object-oriented programming languages.
[su_box title=”Clean Code: A Handbook of Agile Software Craftsmanship” box_color=”#72a71f”]
A book that shows the importance of writing readable, good code, also learning you how. Every junior software developer should read this book in combination with Refactoring.
Even bad code can function. But if code isn’t clean, it can bring a development organization to its knees. Every year, countless hours and significant resources are lost because of poorly written code. But it doesn’t have to be that way… Read more on Amazon
- Author: Robert C. Martin
- ISBN-13: 978-0132350884
- Follow-up books in the same series: The Clean Coder and Clean Architecture
[su_box title=”Refactoring: Improving the Design of Existing Code” box_color=”#72a71f”]
Contains a collection of techniques (known as refactorings) to improve the structural integrity and performance of existing software programs. Every junior software developer should read this book in combination with Clean Code.
Significant numbers of poorly designed programs have been created by less-experienced developers, resulting in applications that are inefficient and hard to maintain and extend. Increasingly, software system professionals are discovering just how difficult it is to work with these inherited, non-optimal applications… Read more on Amazon
- Author: Martin Fowler
- ISBN-13: 978-0201485677
Software Design Books
Books with a high focus on designing and structuring flexible and maintainable code-bases.
[su_box title=”Object-Oriented Analysis & Design” box_color=”#72a71f”]
A learning (not a reference) book for beginners on how to write flexible software (not just code), focused on the Java platform. Yet again, an older book, book still highly relevant.
Tired of reading Object Oriented Analysis and Design books that only makes sense after you’re an expert? You’ve heard OOA&D can help you write great software every time-software that makes your boss happy, your customers satisfied and gives you more time to do what makes you happy. But how?… Read more on Amazon
- Author: Brett D. McLaughlin and Gary Pollice
- ISBN-13: 978-0596008673
[su_box title=”Head First Design Patterns (Java 8 edition)” box_color=”#72a71f”]
Using a highly visual approach, this book teaches developers how to create functional, elegant, reusable, and flexible software. This book is similar to the Design Patterns book of the Gang of Four, but has an easier entry-level.
At any given moment, someone struggles with the same software design problems you have. And, chances are, someone else has already solved your problem. This edition of Head First Design Patterns—now updated for Java 8—shows you tried-and-true, road-tested patterns… Read more on Amazon
- Author: Eric Freeman and Elisabeth Robson
- ISBN-13: 978-0596007126
[su_box title=”Domain-Driven Design Distilled” box_color=”#72a71f”]
Domain-Driven Design (DDD) software modeling delivers powerful results in practice, which is why developers worldwide adopt it. DDD places the software project’s primary focus on the core domain and the domain logic. This book offers a brief introductory into DDD, focused on non-technical readers. Can be used as a pre-read for the Implementing Domain-Driven Design book.
The book guides you through each core DDD technique for building better software. You’ll learn how to segregate domain models using the powerful Bounded Contexts pattern, to develop a Ubiquitous Language within an explicitly bounded context, and to help domain experts and developers work together to create that language. Whether you’re a developer, architect, analyst, consultant, or customer, this book helps you truly understand it so you can benefit from its remarkable power… Read more on Amazon
- Author: Vaughn Vernon
- ISBN-13: 978-0134434421
[su_box title=”Implementing Domain-Driven Design” box_color=”#72a71f”]
Domain-Driven Design (DDD) software modeling delivers powerful results in practice, which is why developers worldwide adopt it. DDD places the software project’s primary focus on the core domain and the domain logic. This book focuses on developers and should be read after reading Domain-Driven Design Distilled.
Implementing Domain-Driven Design presents a top-down approach to understanding domain-driven design (DDD) in a way that fluently connects strategic patterns to fundamental tactical programming tools. Vaughn Vernon couples guided approaches to implementation with modern architectures, highlighting the importance and value of focusing on the business domain while balancing technical considerations. Read more on Amazon
Soft Skills For Developers Books
Books with a high focus on essential soft skills of a software developer. A modern developer is so much more than a code-monkey, hence it’s important to know how to not act like one.
[su_box title=”Practices of an Agile Developer: Working in the Real World” box_color=”#72a71f”]
A very relevant book for developers working – or starting to work – in an agile team.
These are the proven, effective agile practices that will make you a better developer. You’ll learn pragmatic ways of approaching the development process and your personal coding techniques. You’ll learn about your own attitudes, issues with working on a team, and how to best manage your learning, all in an iterative, incremental, agile style… Read more on Amazon
- Author: Venkat Subramaniam
- ISBN-13: 978-0974514086
[su_box title=”Soft Skills: The software developer’s life manual” box_color=”#72a71f”]
Although the author can have a very lone-wolf / survival-of-the-fittest view on certain subjects – which I don’t share – this book was at the very least an interesting read.
Soft Skills: The software developer’s life manual is a unique guide, offering techniques and practices for a more satisfying life as a professional software developer. In it, developer and life coach John Sonmez addresses a wide range of important “soft” topics, from career and productivity to personal finance and investing, and even fitness and relationships, all from a developer-centric viewpoint… Read more on Amazon
- Author: John Sonmez
- ISBN-13: 978-1617292392