In your experience, are there any sections of the exam that are being approached in a different way by Oracle than the way Sun did it? What section do you think will generally require the most study? And finally, what sections did you enjoy writing about the most?
>> Are there any sections of the exam that are being approached in a different way by Oracle than the way Sun did it?
What I describe is from the limited understanding of how Oracle approached the exam in different way than Sun - I work/worked in neither of them or on exam preparation, so I don't know for sure. However, there are some obvious things I found which I share here from observing the exam for few years now.
Before OCPJP 7 came out, there was an attempt with an exam named SJPP (Sun Java Programmer Plus). The idea was, if I understood correctly, instead of multiple choice questions which may not quite completely relate to solving real-world programming problems, how about an exam that tests how well the candidate can write real programs for solving problems relevant for developing enterprise applications. However, it never came out. One reason, perhaps is, because it is difficult to automatically evaluate and grade reliably in such a programming-based exam.
For this reason, Oracle dropped the SJPP exam and went ahead with the old multiple-choice SCJP-like exam. However, they wanted the come up with an exam that tests the ability of the exam takers to solve real-world problems - in other words, those who take up the certification and clear the exam should be able to perform better in the real-world application projects. For this reason, they made OCPJP 7 both "broad and deep" - broader in the sense the exam covers more topics than the SCJP exam (in other words "OCPJP 7 != SCJP 5/6 + Java 7 features"!) which are required in enterprise applications (such as Localization, JDBC, etc). Also, topics such as design patterns, which are important for enterprise software.
The focus is on three topics: 1) How good is the candidate's understanding of language concepts that are relevant for solving real-world problems 2) Understanding how to exploit the power of the vast Java API (including some of the corner cases and nitty-gritty details) and 3) Understanding of underlying concepts for developing quality software, such as significance of type erasure and the problems it brings in, how to deal with multi-threading related problems such as deadlocks, livelocks, etc. In addition the OCPJP 7 exam covers topics such as NIO.2, try-with-resources statement, etc that were added in Java 7.
The "broader" part of OCPJP7 is clear when compared to SCJP 5/6, but often "deeper" part is not clear to OCPJP7 aspirants. The questions are made tougher in the OCPJP 7 exam and hence it will require more preparation time and effort than what was required for cracking the SCJP 5/6 exam.
Bottom-line for those preparing for OCPJP 7: Don't look at OCPJP 7 as just incremental improvement of its older version(s), and take it more seriously to prepare well for the exam (unless you're ready to throw away $300 in the dustbin).
>> What section do you think will generally require the most study?
For answering your question completely, I am posting it here as well:
In my opinion, concurrency is the topic that is toughest and takes most of the time when taking Upgrade to Java SE 7 Programmer (IZ0-805) exam.
As you may already know, IZ0-805 covers these high-level topics 1) language enhancements (such as diamond operator, try-with-resources, and switch based on strings) 2) design patterns (Singleton, Factory, DAO, ...) 3) JDBC (such as RowSet interfaces) 4) Concurrency (mainly java.util.concurrent utlities, threadpools, fork-join, ...) 5) Localization (resource bundles, formatting for locales, ...) 6) NIO.2 (APIs such as Path, Files, WatchService, ...).
Most of these topics are knowledge-based, for example, if we write JDBC programs, it is easy to understand the semantics and answer questions in the exam. With preparation, we can handle JDBC questions with ease. Similarly, there isn't too much difficulty to understand new features in Java 7.
However, Concurrency is a tough topic and its a slippery slope, and perhaps would require most time for preparation. Still, in the exam, we believe it would be difficult to answer all the questions on this topic correctly. The API appears to be deceptively small, but there are quite a few classes and interfaces in this package. However, the main difficulty is in understanding and using them correctly. It would take considerable time to learn to use Semaphores, CyclicBarriers, Phasers, etc correctly (and I admit I have made quite a few mistakes while learning them, and there are a few mistakes in the book as well).
Another topics that require considerable preparation is design patterns.
At sub-topic level, we would recommend writing programs to get a good grip on WatchService, RowSet interfaces, etc) - it is difficult to assimilate these APIs just by reading them.
>> And finally, what sections did you enjoy writing about the most?
We enjoyed most parts of writing the book especially, the chapters on design patterns, concurrency utilities, and generics and collections. We took up the task of writing the book in an incredibly tight schedule - we wanted the book to be out as soon as the beta exam becomes the final exam, and we missed that deadline only by a month or so. Given the fact that both of us (Tushar and myself) have a full-time demanding job, hyperactive kids in our respective homes, and short deadlines, we're extremely happy that our book came out to the market as the first book on OCPJP 7 exam preparation.
However, with the tight schedule, we couldn't get much time for reviews and rigorous checks, and quite a few mistakes slipped into the production version of the book - that is the major criticism of our book. We are thankful to our readers who were supportive of us as well as reported bugs. Now, we all the known mistakes are fixed in the book and the revised version with these fixes will be available soon (we'll keep our readers informed once we know the dates from our publisher).
However, the book in its current form is quite comprehensive, covers almost all topics in required depth, and uses an example-driven approach which makes the concepts easier to understand.
Writing a book that covers depth and breadth of topics under a very tight schedule was really an exciting experience. We are happy that the book is helping quite a few people in their preparation for their OCPJP 7 exam.