This book started life as a set of training notes written for new graduate intake in the Foreign Exchange IT department of Deutsche Bank. One of us (Ben), looking at the existing books on the market, found a lack of up-to-date material aimed at inexperienced Java developers. So he resolved to write that missing book.
With the encouragement of Deutsches IT management team, Ben traveled to the Devoxx conference in Belgium to look for inspiration on additional topics. There, he met three IBM engineers (Rob Nicholson, Zoe Slattery, and Holly Cummins), who introduced him to the London Java Community (LJC—Londons Java User Group).
The following Saturday was the annual Open Conference organized by the LJC—and it was at that conference that Ben met one of the leaders of the LJC, Martijn Verburg. By the end of the day—fueled by their mutual love of teaching, technical communities, and beer—theyd resolved to collaborate on the project and what would become The Well-Grounded Java Developer was born.
In this book, we hope that the theme of software development as a social activity rings out clearly. We believe that the technical aspects of the craft are important, but the more subtle concerns of communication and interaction between people are at least as important. It can be hard to explain these facets easily in a book, but that theme is present throughout.
Developers are sustained throughout their careers by their engagement with technology and the passion to keep learning. In this book, we hope that weve been able to highlight some of the topics that will ignite that passion. Its a sightseeing tour, rather than an encyclopedic study, but thats the intention—to get you started and then leave you to follow up on those topics that capture your imagination.
Over the course of the projects lifespan, the emphasis moved slightly away from being purely a bridging guide for graduates (it still largely achieves this goal) to becoming a guide for all Java developers wondering, What do I need to know next? Wheres my future heading? I want to care again!
We take you from the new features of Java 7 through to best practices of modern software development and the future of the platform. Along the way, we show you some of the highlights that have had great relevance to us on our own journey as Java technologists. Concurrency, performance, bytecode, and classloading are the core techniques that fascinated us the most. We also talk about new, non-Java languages on the JVM (a.k.a. polyglot programming) because they will become more important to many developers in the years to come.
Above all, this is a journey thats forward-looking, and puts you and your interests front and center. We feel that becoming a well-grounded Java developer will help to keep you engaged and in control of your own development and will help you learn more about the changing world of Java and the ecosystem that surrounds it.
We hope that the distilled experience that youre holding in your hands is useful and interesting to you, and that reading it is thought-provoking and fun. Writing it certainly was!