Hello Tomas,
Those are *great* questions and I will try to address them one by one.
First, I don't see any other certification study guides as competitors. There is a big difference in the teaching approach from each guide and that is clearly visible if you take a look at a sample from each book. As teachers, we understand that each person has a preference on which didactics approach they prefer, so while some developers will love the way some guides presents some ideas, others will find our approach to a conversation about Java more appealing.
I invite you to take a look at a sample at the Amazon Cloud Reader (just send a sample and open on the web
.
Having said that, it is time to explain our approach, right? We try to give as much examples as possibles, so instead of saying "but if that variable was final, the other part of the code would not compile", we will try to show you that variation of the example, where the variable is final, and the code will not compile. Avoiding abstractions (explanations without examples) is a way to help visually seeing and understanding what will happen, instead of relying in the student's memory. I believe you will find the sample will show you a little bit of that.
The other difference is that we are trying to explain why and how the language works. Instead of being just a guide to the certification as in "get the paper, celebrate, end of history", we want you to own the language. To be able to talk to Java haters, to Scala lovers, to Ruby lovers, to C# lovers, no matter what, and discuss in a polite way what and *when* something is good or bad in the language we choose to code in. Understanding the "whys" is the minimum requirement for a good developer, passing the certification is always nice, but not necessarily a proof of that understanding.
So our goal with the book is for the student to become a better developer than I was when I passed the exam for the first time (back in 2001? 2002?). Those who understand the language will know how to write good code in their real life, and that's what we want with the book: certified good developers.
---
If you look at the description of both tests you will see that there is not much difference between 7 and 8. The amount of topics change not much, but lambda and the new java API are key for developers who want to be good in Java 8. For instance, using Date or Calendar in Java 8 (except for backward compatibility bridges) sounds at least weird. So while there is too much new to study, there is a lot to gain. I always recommend the 8 version, since I am trying to improve Java education, not just trying to get developers to get a certification.
As a note, since there is extra *API*, there is a lot more to memorize in the new Date api.
As for employers, as we don't see them asking "what was your grade?" (last time I did it, mine was 100), or "which one did you take?" (as for the language certifications, I took it 2 of the old and 2 of the new ones, including 7 and 8), we don't see a reason to choose one or another. Again, when you talk to the employer, mention how much you have learned through the process of the certification. What you will learn through the book and the study process is 100 times (no real math done here, it is an approximation) more important than the number you got in the end. There are so many reasons why a good developer would not get a good grade (nervous breakdown, good/bad days and so on), but what he has learned in the process... that makes him incomparable to other developers who do not understand what they are doing, and why.
---
Summing up, I believe understanding decisions and consequences of the language is the goal here, and our book will try to make you do so. If you are free to pick, pick Java 8
and learn as much as you can. Do not be a Java user, own the language.