招聘技术角色时,传统的观点说没什么能比侯选者的经验更重要,一般来说,许多招聘主管可能不会太关注认证。但是,Java 认证考试是个例外,因为它们非常的难,考察了 Java 的每个特性,通过了它们之中的一个就能够有力地证明你对该主题有深入的理解了。
OCP Oracle Java SE 8 专业程序员认证学习指南 II 是 Jeanne Boyarsky 和 Scott Selikoff 的全新著作,是该系列图书的第二本,第一本(OCP Oracle Java SE 8 助理程序员认证 I)已经在去年出版发行了。该书首先介绍了该考试的简史和发展,然后是通常你自己要针对考试、考场所做的准备及安排,如何安排考试时间,要带什么来带什么走,如何查分数等。接下来讨论了你将在考试中遇到的题型,以及考试目标。
该书完全是按照 Java 手册来编排的,目的让未打算参加认证的人也可以用它来学习 Java 8。这本书写得非常清晰完整,很合适需要通过这些考试的有经验的 Java 开发人员。
Java 现在有 20 年了,从任何标准来看它都是门不易精通的语言。而这本书充分覆盖了其中最难的概念。在简介之后,介绍了面向对象设计的基础,包括继承、接口、抽象类。然后是整洁的代码的设计模式。在第 2 章清晰地讲述了 lambda,包括有效表达式和无效表达式的示例,并做了深入的解释。第 3 章细致地讲解了 map、collection,以及一直以来都很难以让人理解的泛型。Java 将函数式编程引入到了 Java mainstream 中,我看过很多讲解 lambdas、streams 和函数式编程的书,这本书的第 4 章对此的讲解是比较好的。然后是日期相关的内容,包括 Java 8 中新的 date 和 time 的 API 和本地化。后续章节讨论了异常、并发、IO 和 NIO.2,以及 JDBC。该书未涉及 Spring 之类的框架,但这些并不在考试范围内。JavaScript(Nashorn 项目是作为 Java 的一级成员交付的)也未在考试范围内,但在联机附录中可以找到它。
这本书不仅是适用于已有 OCP 7 认证准备参加 OCP 8 的升级考试 1Z0-810 的读者,也适用于准备参加 OCP 8 完整考试 1Z0-809 的读者,以及已有 Sun/Oracle Java 6 或更低 Java 认证准备参加 OCP 8 升级考试 1Z0-813 的读者。Oracle 决定,在 1Z0-813 升级考试中包括另外两个 OCP 8 考试中所没有的一些额外主题。这本书还给出一个附录,对 Java 6 版本的 OCP 8 升级考试会有所帮助。
该书有丰富的复习题和问答,而且这些问题通常还会针对相应主题和潜在的陷阱进行广泛的讨论。
在具有答案及解析的问题之后有一个初步的评估测试,以及几个试题。这个考试假定你是熟悉 lambda 表达式的,书中也为不熟悉 lambda 和其他新方言的人提供了额外的指导。
每一章都是以相应主题的考试目标开始的,然后深入地阐述该主题,在“考试要点”之后总结了本章的知识点。这些章节的最后是一套完备的复习题和答案。
这些章节中穿插了很多“现实世界场景”,讨论了实际的应用案例。
这本书写得非常清晰明了,对 Java 的所有内容都进行了全面的概括。它适用于希望去过认证的读者,也适用于想要深入了解 Java 的任何语言的资深程序员。
InfoQ 很荣幸采访了该书的合著者 Jeanne Boyarsky。
InfoQ:认证对于招聘主管来说有多重要?
这很难说。在某些国家和公司看来认证会更重要一些。然而,即使你所提到的招聘主管不重视认证,为了认证而学习也能帮你更加准确、更加自信和更加快速地回答面试问题。另外,这个认证能让你更加突出。假设有两份相似的简历,一个有认证,而一个没有……
InfoQ:认证能让你成为更好的程序员吗?
当然!你会真正对 Java 有更加深入的理解。你会学会应用不同技术的时机。你会更熟悉特定的方言。你还能更加熟练地检查错误,使你实际编码的速度超出预期。
InfoQ:您能简单说明一下 OCA 和 OCP 考试范围的不同吗?
对于经验丰富的开发人员来说,曾经有过一门称为 SCJP 的考试(Sun 认证的 Java 程序员)。Oracle 收购 Sun 的时候,把它的名称改为了 OCJP(Oracle 认证的 Java 程序员)。然后他们试图标准化数据库和开发领域考试的命名。于是,考试被分为了两类。OCA 是一门比较简单的考试,涵盖了 Java 的基础。例如,它涵盖了 ArrayList,但没有 HashMap。OCP 涵盖的主题更加深入,并增加了很多的主题,比如并发和 JDBC。
InfoQ:我作为一名招聘主管,应该何时去找通过 OCA 认证的人,何时去找通过 OCP 认证的人呢?
我认为 OCA 是一个实习生的水准。或许入门级的候选者在学校学过一堆的语言,而 Java 仅仅是刚入门。问题是 OCA 水平的知识还不足以去做实际的 Java 开发。这种水平可以成为向 OCP 进阶的基石。不要误会我的意思。它是一个很好的开始,对于不熟悉 Java 的人来说这是一项了不起的成就。
InfoQ:Java 9 已经在为 2017 年 3 月的 GA 版做安排了。您会维持 OCA 和 OCP 指南的更新吗?
Scott 和我希望去编写一本 Java 9 的版本。这本书现在卖得很好,所以我们希望出版社对 Java 9 的版本更新会有兴趣。记住,直到认证目标发布之前不要去出版学习指南。Java 8 是在 2014 年年初推出的,而第一份考试学习是在 2015 年年初出版的。所以在 2017 年或 2018 年年初讨论 Java 9 的学习指南还为时尚早。在最近的时间里,Scott 和我会密切关注考试目标并在我们的博客上更新,地址为 http://www.selikoff.net/oca 和 http://www.selikoff.net/ocp 。如果 Oracle 决定增加考试目标,我们应该会涵盖它。
InfoQ:是什么原因让您决定来写这本书呢?
Wiley 曾经为一本正在写的与认证有关的书找过我。我积极地参与了一段时间,还做了一本 Java 7 考试用书的技术编辑。看起来这个机会非常地不错。我知道写一本书需要做大量的工作,所以我立即去找 Scott Selikoff 一起来写,他是一名 Java 专家。
InfoQ:你最喜欢去写哪些章节?
当然是 OCP 这本的第 4 章了。我真的非常享受去写函数式编程 API 和方言的相关内容。它是另一种思维方式,所以它对于拥有一个良好的心智模式真的很重要。有大量极端的情况和陷阱,这让你写起来非常的有趣。
Scott 喜欢第 7 章:并发,有一部分原因是这些内容可以用来提升日常应用的性能。
InfoQ:Nashorn 只是联机附录,有什么用吗?
在升级考试的 beta 考试中包括了一些 Nashorn(Java 内部的 JavaScript 引擎)相关的目标,但在主要的考试里没有。我认为它完全不用考。实事上,你在联机附录中会看到我们为什么认为它不应该考试的想法。在 beta 考试之后,Oracle 最终决定不再考这一主题了。因为我们已经完成了这一章,Wiley 已经开始编辑它了,为此已经付出了心血,所以我们决定把它作为额外的内容放到网上。
InfoQ:这本书中最容易写的是哪一部分?
那肯定是 flashcards 了。写这一章时,我是从希望涵盖的一些要点开始入手的。这包括所有我能想到的 Oracle 可能会为应试者下套的地方。同时,这些知识也可以让你写出更好的 flashcards。
InfoQ:与合著者一起是像结对编程一样开展工作吗?
不完全是,因为我们通常是分开来做的。Scott 和我在列提纲商量什么应该放到哪一章里时进行了很多的讨论。为保持清晰一致我们都阅读了另一个人写的其他章节,并提了很多的建议。Scott 和我还通过电话、电子邮件和即时通讯工具的沟通激发出了许多的想法。再加上有一个合著者能让你很好地跟踪进度,你会觉得要对另一个人负责。当然,工作量上肯定也要比自己去做所有事要少啊!我真的很享受与 Scott 的合作,我们很快就找到了节奏。
关于本书作者
Jeanne Boyarsky,通过了 OCA/OCP 8 认证,作为一名开发人员曾为纽约一家银行工作过 13 年的时间,她在这里做过开发人员、导师并进行过培训。在空闲的时间里,她是 CodeRanch 的高级版主,从事代码库论坛方面的工作。
Scott Selikoff,通过了 OCA/OCP 8 认证,已经做过超过 15 年的专业 Java 企业开发人员了。他目前在经营 Selikoff Solutions 有限责任公司,该公司为纽约区三个州的企业提供软件咨询服务。
查看英文原文: http://www.infoq.com/articles/OCP-Java-SE-8-Programmer-Study-Guide-Book-Review
评论