When hiring for a technology role, conventional wisdom says nothing beats a candidate with experience, and many hiring managers might not put much stock in certifications in general. But the Oracle Java Certification exams are certainly an exception, because they are difficult exams that test you to the boundaries of every feature of Java, and passing one of these is a very strong indication that you have a thorough understanding of the topic.
OCP Oracle Certified Professional Java SE 8 Programmer Study Guide II, the new treatise by Jeanne Boyarsky and Scott Selikoff, is the second in a series of two books, the first of which (OCA Oracle Certified Associate Java SE 8 Programmer I) was released late last year. The book begins with a brief history of the exam and its evolution, and then moves on to tips for preparing and positioning yourself generally for the exam, logistics of the room, how to schedule the exam, what to bring and what to leave home, and how to check your score. Next up is a discussion of the various question formats you will encounter on the exam, and exam objectives.
The book proper is organized as a handbook of Java, and indeed is a good pedal to the metal way to learn Java 8 even for those who may not be planning to become certified. The books are clearly written and the discussions are complete, and well positioned to give experienced Java developers the background they require to pass these difficult exams.
Java is 20 years old now and by any standard is not an easy language to master. But this book provides excellent coverage of some of the most difficult concepts. After the introductions it covers the basics of object oriented design, including inheritance, interfaces, abstract classes. It then moves on to design patterns for designing clear code. The coverage of lambdas in Chapter 2 is clear and includes examples of valid and invalid expressions, with thorough explanations. Chapter 3 has an excellent and complete coverage of maps, collections, and the ever elusive topic of generics. Java 8 brought functional programming to the Java mainstream, and Chapter 4 includes one of the finest treatments I have seen in any book on the topic of lambdas, streams, and functional programming in Java. Next up is dates, including the new Java 8 date and time APIs, and localization. Subsequent chapters discuss exceptions, concurrency, I/O and NIO.2, and JDBC. No coverage of frameworks such as Spring is provided, but these are not on the exam. JavaScript, which Project Nashorn delivered as a first class member of Java, is also not covered on the exam, but is included in an online appendix.
The book prepares readers for the OCP 8 full exam 1Z0-809, as well as the OCP 8 upgrade exam 1Z0-810, for those who hold a OCP 7 certification, and the OCP 8 upgrade exam 1Z0-813, for those who hold a Sun/Oracle Java 6 or below Java certification. Oracle chose to include a number of extra topics in the 1Z0-813 upgrade exam not found on the other two OCP 8 exams. The book also includes an appendix geared to assist those taking the Java 6 version of the OCP 8 upgrade exam.
The book is replete with review questions and answers, and the answers generally provide a comprehensive discussion of the topic and potential pitfalls.
There is an initial assessment test followed by complete answers with explanations, and several sample exams as well. The exam assumes comfort with lambda expressions, and the book provides additional guidance for developers who may not be familiar with Lambdas and the other new idioms.
Each chapter starts with the exam goals of this topic, then treats the topic in depth, followed by a summary “Exam Essentials” section, bulleting the key takeaways of the chapter. Finally the chapter is rounded out with a robust set of review questions and answers.
The chapters are peppered with “Real World Scenario” insertions that discuss practical use cases.
This book is well written and clear, and serves as a comprehensive compendium of all things Java. It is suitable for readers wishing to become certified, as well as for professional programmers in any language wishing to learn Java in depth.
Interview with Book Co-author Jeanne Boyarsky
InfoQ: How important is certification to hiring managers?
It varies. Certification is more important in some countries and companies than others. However, even if the hiring manager you speak to doesn’t care about certification, the act of studying for the certification helps you answer interview questions more accurately, more confidently and faster. Also, the certification is something that can help set you apart. If there are two equivalent resumes and one has a certification and one doesn’t...
InfoQ: Does certification make you a better programmer?
Absolutely! You really understand Java more deeply. You learn when to apply different techniques. You become more familiar with certain idioms. You also become much more proficient in spotting errors which speeds up coding at your actual job more than you might expect.
InfoQ: Can you discuss briefly the difference between scopes of the OCA and OCP exams?
For those experienced developers, there used to be an exam called the SCJP. (Sun Certified Java Programmer.) When Oracle bought Sun, they changed the name to the OCJP (Oracle Certified Java Programmer.) Then they tried to standardized the names of the exams between the database and development worlds. This resulted in the exam being split into two. The OCA is an easier exam that covers the basics of Java. For example, it covers ArrayList, but not HashMap. The OCP covers topics in more depth and adds many more topics such as concurrency and JDBC.
InfoQ: As a hiring manager, when should I be looking for an OCA certified and when should I seek an OCP certified?
I think an OCA is for an intern level candidate. Or maybe an entry level candidate who studied a bunch of languages in school and is just getting started in Java. The problem is that OCA level knowledge isn’t enough to actually do Java development. Which makes it a stepping stone to the OCP. Don’t get me wrong. It is a great first step and a great accomplishment for someone new to Java.
InfoQ: Java 9 has been scheduled for GA release in March 2017. Will you be maintaining updates to the OCA and OCP guides?
Scott and I hope to write a Java 9 version of both books. The book is selling well so we imagine the publisher will be interested in working with us on an updated version for Java 9. Do keep in mind that study guides don’t print until the certification objectives are published. Java 8 itself came out in early 2014 and the first exam study guides came out in early 2015. So you are talking late 2017/early 2018 for Java 9 study guides. In the nearer term, Scott and I keep an eye on the exam objectives and post updates on our blog: http://www.selikoff.net/oca and http://www.selikoff.net/ocp. If Oracle decided to add an exam objective, we’d cover it there.
InfoQ: Why did you decide to write the book?
Wiley approached me about writing a certification book. I've been active in the certification space for a while including tech editing a book on the Java 7 version of the exam. It seemed like a great opportunity. I knew writing a book was a lot of work so I immediately approached Scott Selikoff, a fellow Java expert who I blog with, to co-author. I think we made a great team!
InfoQ: What was your favorite chapter to write?
Definitely chapter 4 of the OCP book. I really enjoyed writing about functional programming APIs and idioms. It's a different way of thinking so it is really important to have a good mental model. there's also a ton of edge cases and opportunities for trickery making it fun to write.
Scott's favorite was Chapter 7: Concurrency, in part because the material can be used to improve performance in every day applications.
InfoQ: What's with the Nashorn online-only appendix?
The beta exam included some objectives on Nashorn - the JavaScript engine within Java - on the upgrade exam, but not the primary exam. I don't think it should have been on the exam at all. In fact, you can see our thoughts on why it shouldn't be on the exam in the online only appendix. After the beta, Oracle decided not to include the topic after all. Since we had already completed the chapter and Wiley had already paid for the beginnings of it being edited, we decided to put it in the bonus materials online.
InfoQ: What was the easiest part of the book to write?
Definitely the flashcards. When writing a chapter I start with a list of key points I want to cover. This includes all of the things I can think of that Oracle might try tricking an exam taker on. Combined, these facts make for great flashcards.
InfoQ: Is working with a co-author like pair programming?
Not really because it is mostly asynchronous. Scott and I did have a lot of discussions when outlining and negotiating what should be in each chapter. We also both read each other's chapter for clarity and consistency and made lots of suggestion. Scott and I also bounced a lot of ideas off of each other via phone, email and IM. Plus having a co-author is good for keeping you on track. You get to feel accountable to someone. And of course, it is less work than doing the whole thing yourself! I really enjoyed working with Scott on this project and we quickly found a rhythm.
About the Book Authors
Jeanne Boyarsky, OCA/OCP 8, has worked as a Java developer for a bank in NYC for 13 years where she developers, mentors and conducts training. In her free time, she is a senior moderator at CodeRanch and works on the forum code base.
Scott Selikoff, OCA/OCP 8, has been a professional Java Enterprise developer for over 15 years. He currently operates Selikoff Solutions, LLC, which provides software consulting services to businesses in the tri-state New York City area.