Something clicked recently and somehow made me enjoy the process of Java development a lot more than I have in the few years that I've actually been doing it professionally. With this comes a desire to actually engage in it a bit more academically and be more design-conscious of the decisions I am making on a day-to-day basis.
I am also tired of learning from tutorials and articles, and want to have a deeper engagement with the work I do.
This is a list of books on Java people online seem to value, and I intend to read them sometime in the near future.
- Test-Driven Development, by Kent Beck
- Java Concurrency in Practice, by Brian Goetz
- Working Effectively with Legacy Code, by Michael Feathers
- Refactoring: Improving the Design of Existing Code, by Martin Fowler
- Design Patterns, by Erich Gamma et al
- Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions, by Gregor Hohpe and Bobby Woolf
- Code Complete, by Steve McConnell
- A Philosophy of Software Design, by John Ousterhout
- Clean Code, by Robert C Martin
- Effective Java, by Joshua Bloch
- Modern Java in Action: Lambdas, streams, functional and reactive programming, Raoul-Gabriel Urma, Mario Fusco, Alan Mycroft
- The Phoenix Project: A Novel about It, Devops, and Helping Your Business Win by Gene Kim
- Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems, by Martin Kleppmann
- Security Engineerin- Ross Anderson
- Threat Modelling: Designing for Security, by Adam Shostack
- The Pragmatic Programmer by Andy Hunt and Dave Thomas
- Extreme Programming Explained, by Kent Beck
- The Mythical Man Month by Fred Brooks
- Peopleware, by Tom DeMarco and Tim Lister
- The Tao of Programming, by Geoffrey James
- The C2 Wikis