招聘技术角色时,传统的观点说没什么能比侯选者的经验更重要,一般来说,许多招聘主管可能不会太关注认证。但是,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。
这很难说。在某些国家和公司看来认证会更重要一些。然而,即使你所提到的招聘主管不重视认证,为了认证而学习也能帮你更加准确、更加自信和更加快速地回答面试问题。另外,这个认证能让你更加突出。假设有两份相似的简历,一个有认证,而一个没有……
当然!你会真正对Java有更加深入的理解。你会学会应用不同技术的时机。你会更熟悉特定的方言。你还能更加熟练地检查错误,使你实际编码的速度超出预期。
对于经验丰富的开发人员来说,曾经有过一门称为SCJP的考试(Sun认证的Java程序员)。Oracle收购Sun的时候,把它的名称改为了OCJP(Oracle认证的Java程序员)。然后他们试图标准化数据库和开发领域考试的命名。于是,考试被分为了两类。OCA是一门比较简单的考试,涵盖了Java的基础。例如,它涵盖了ArrayList,但没有HashMap。OCP涵盖的主题更加深入,并增加了很多的主题,比如并发和JDBC。
我认为OCA是一个实习生的水准。或许入门级的候选者在学校学过一堆的语言,而Java仅仅是刚入门。问题是OCA水平的知识还不足以去做实际的Java开发。这种水平可以成为向OCP进阶的基石。不要误会我的意思。它是一个很好的开始,对于不熟悉Java的人来说这是一项了不起的成就。
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决定增加考试目标,我们应该会涵盖它。
Wiley曾经为一本正在写的与认证有关的书找过我。我积极地参与了一段时间,还做了一本Java 7考试用书的技术编辑。看起来这个机会非常地不错。我知道写一本书需要做大量的工作,所以我立即去找Scott Selikoff一起来写,他是一名Java专家。
当然是OCP这本的第4章了。我真的非常享受去写函数式编程API和方言的相关内容。它是另一种思维方式,所以它对于拥有一个良好的心智模式真的很重要。有大量极端的情况和陷阱,这让你写起来非常的有趣。
Scott喜欢第7章:并发,有一部分原因是这些内容可以用来提升日常应用的性能。
在升级考试的beta考试中包括了一些Nashorn(Java内部的JavaScript引擎)相关的目标,但在主要的考试里没有。我认为它完全不用考。实事上,你在联机附录中会看到我们为什么认为它不应该考试的想法。在beta考试之后,Oracle最终决定不再考这一主题了。因为我们已经完成了这一章,Wiley已经开始编辑它了,为此已经付出了心血,所以我们决定把它作为额外的内容放到网上。
那肯定是flashcards了。写这一章时,我是从希望涵盖的一些要点开始入手的。这包括所有我能想到的Oracle可能会为应试者下套的地方。同时,这些知识也可以让你写出更好的flashcards。
不完全是,因为我们通常是分开来做的。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