People ask me what books I recommend to learn Java. And I have a few books that I thoroughly recommend, but they are not aimed at beginners.
I re-read those books aimed at beginners, and came to the conclusion that they would confuse more than help, and when they help, they don't help people become productive fast.
"Java For Testers" helps.
All code for Java For Testers is tested on Windows, Mac and Linux (JDK 1.7, 1.8 and OpenJDK 1.7)
This book is for people who want to learn Java. Particularly people on a team that want to learn Java, but who aren't going to be coding the main Java application i.e. Testers, Managers, Business Analysts, Front End Developers, Designers, etc.
If you already know Java then this book may not be for you.
It is aimed at beginners.
I cover 'just enough' to get people writing tests and abstraction layers, but I don't really go down into a lot of detail. For example, I cover the basics of Inheritance, but don't really cover Interfaces in detail. I explain the concept of Interfaces, because we need to know it to understand Collections, but not how to write them.
Why? Because I want to cover enough to get people started, and working. I don't want to overload them. Once they are on their way, and have gained some experience. Then, when they are ready, they should have the basic knowledge to let them understand the additional concepts.
Java Developers coding production applications in Java need to learn Java differently from other people on the team.
Throughout my career I have written thousands of lines of Java code, but I have rarely had to compile the code into an application. Yet, when we learn Java, one of the first things we learn is 'javac' and the 'main' method.
Most of the code I write is wrapped up in a JUnit @Test method.
Everytime I have taught Java to testers or other people on the team, I start with a JUnit @Test method and show them how to run tests from the IDE.
Testers, and other people on the team use java differently, and I think we need a different order and approach to learning Java.
This is a high level view of the topics the book covers:
You can find links to buy from Amazon and our ebook store on JavaForTesters.com