好吧,我知道这可能听起来有些愚蠢,因为这取决于人,但平均而言,我应该花多少时间来准备SCJP?我已经有了一些Java经验(我的大学有一些小型和中型项目,从实现一个简单的"船"游戏到一些客户端 - 服务器的东西).
我正考虑在7月7日左右拍摄它,所以我有大约7-8个月,是否足够/太多/不够?
此外,我一直在寻找一本好书,还有什么比Kathy Sierra和Bert Bates的"Java认证程序员Java 6学习指南"更好的了吗?那些实际问题呢(比如"实现这个和这个"或"编写一段代码......")?
啊,这真的值得(我自己花钱).我不是在问它是否会让我成为一个更好的程序员(因为我已经看到了stackoverflow上的这样一个线程)但是雇主是否还关心它?
我花了3个星期准备Java 6考试,我有0个专业的Java编程经验.对于每天使用该语言的人(如java程序员),它应该更容易.我很高兴能尽快完成它,所以我在http://www.amazon.com/SCJP-Certified-Programmer-Java-310-订购了Kathy Sierra SCJP Sun认证程序员Java 6学习指南065/dp/0071591060并且有一天将它发送给我,以便我在星期六收到它.一旦它来了,我就开始阅读.这花了大约两个星期,因为这本书是一本800页的怪物,书中有一些自我测试,它们都给你很好的练习,并教你一些特定的细节,这本书在实际章节中没有提到(很多你可以猜到但不是所有...).在过去的一周里,我查看了所有的2分钟练习并重新阅读了API重的章节.还有很多表(重要的字符串方法,线程方法,文件API方法和并发).我还参加了本书中的两门硕士考试.我把他们带到了学习模式并尝试了这个问题,然后如果说错了,我去试图找出它为什么是错的,然后我去了参考/提示,如果我需要的话.在考试当天,我在考试前一小时检查了文件/字符串/馆藏API并将其取得.
考虑到我根本没有任何Java工作经验并且在3周内准备好了,我的得分为90%.任何专业的Java开发人员都应该更容易准备/采取.虽然我知道Java已经出现了,但是我将它用于大学的偶尔的研究生和本科课程,所以我不是全新的.另外,我知道其他C语言,所以我习惯了很多控制结构等等......但是,如果我能在三周内找出API /语言工作,足以获得90%任何有经验的java程序员应该没有问题弄清楚足以通过.这本书仍然是巨人,每天乘坐2小时的火车去上班是一个很大的帮助.
有些人说你必须写一百个小程序来解决问题.但这本书在细节方面相当不错.编写程序最重要的事情(也许我写的10)是构造函数/初始化程序块/静态初始化程序块/找出确切的继承内容并巩固订单.在将子类作为其父类进行转换时,重要的是要查看访问变量/重载方法时会发生什么.虽然重载方法很简单,但预期的是,访问变量并不是那么简单.相信我,写一些关于它的程序,特别是在超类型/子类型具有相同名称的实例变量的情况下.
我认为我从SCJP中获得的主要内容是对该语言的广泛概述.Java是一种野兽,API /语言是巨大的.通常我只是使用Java中每个项目/活动所需的语言部分,并在我去的时候查找API.一些关键词(如瞬态)我只是不知道.还有一些采访琐事(如果你覆盖等于你必须覆盖的其他东西)我不知道(至少根据朋友告诉我的情况).我也不知道像国际化类Locale,Calendar,DateFormat,NumberFormat和Date这样的东西.真的,如果我正在编写严肃的Java软件,我可能会使用Calendar来满足日期算术需求.我认为它不会帮助我找到一份Java工作,因为每个人似乎都希望在获得面试之前获得Java经验.但是如果我接受过面试,那么我从准备考试中获得的知识肯定会帮助我更好地回答这些问题(尽管我确信很多具体的API细节会随着时间的推移而消失).现在我对Java更有信心.我仍然不能说我可以在白板上掀起一个完全有效的Java程序,因为API非常复杂.像C这样的语言非常小,包括stdio.h/stdlib.h/string.h和memorize 30函数,你可以做很多事情.Java有更多的包/类要包含更多的API.还有表达式,有很多规则,促销,铸造,自动装箱等等,这些都很容易搞砸.虽然C优先地狱,但右括号你可以侥幸逃脱.Java对事物更严格(即if(0)是一个错误).但考试是值得的,只是为了一些额外的琐事,虽然考试有点令人沮丧,如果你看这本书,它几乎告诉你,考试故意挑选棘手的问题和边缘案例,试图混淆你.它会刻意给出不好的缩进和其他东西,试图变得棘手.我讨厌这一点,因为它不是专注于你合理地理解材料,而是专注于试图让你迷惑.
有一点需要注意,不要被师父考试抛出.我尝试在考试模式中选择一个,他们在1.5小时内提出了75个问题,我几乎决定推迟考试.真正的考试是60个问题,你得到3个小时.此外,实际考试的问题比主考试更容易.我的硕士考试成绩是37%....我最后两次我只是在学习指导模式下,尝试了每个问题/如果答案错了再次/看了一次A考试参考和一次B考试..我在考试中做得很好,我真的很高兴我没有把它推迟到学习指南,因为现在已经结束了,我可以放松一下......
在降落伞书中,作者讲述了他如何喜欢向他的朋友们展示简历,他们说"这个简历永远不会让任何人受雇!",他回答说"哦,但它已经做了!".经验教训是每个雇主都不同.
所以真正的问题不是SCJP能否帮助你找到工作,而是它是否能帮助你找到你想去的地方工作.谷歌有很多谁使用Java,例如非常聪明的程序员,我知道谁在那里工作的所有的人,零采取了SCJP,所以它可能不是一个大问题在那里.
现在,一些更个人化(即不太普遍)的反馈:
如果你在我的公司面试,实际上可能会受到伤害(特别是如果你提请注意它),如果看起来你只是一个Java程序员,那对你没有帮助.我们需要优秀的程序员,而不是优秀的Java程序员.
我没有采用SCJP,但我怀疑它就像其他所有标准化测试一样:它与你的Java能力一样,关于你的SCJP摄取能力.在面试时,我们将查看您已编写的代码(开源项目很棒),以及您在面试中编写的代码.孙认为你的不是我们关心的问题.(我们不能在一年内完全召唤Gosling并说"Dude,你告诉我们这个失败者知道Java!你完全欠我们一年的开发时间".)
有些人建议,如果其他所有人都相同,它会让你看起来比其他候选人好.首先,在面试时,其他一切都是平等的.事实上,我很少采访某人并且保持中立:这既是立即的"否",也不是强调"是".其次,除非它是一个非常小的公司,每个人都需要更多伟大的程序员,所以如果两个"是"同时走进大门,我们将雇用他们两个.是的,即使在今天,在这个经济体中.
因此,找出你想去哪里工作(一个特定的地方,或一种类型的地方),看看SCJP是否会帮助你.在您可能节省的时间内,还有很多其他方法可以擅长Java.首先,编写真正的Java程序.:-)如果你开源他们,所以每个人都可以看到你做过的很酷的东西.如果您撰写关于所有血腥细节的博客,可获得双倍奖励.其次,学习Java以外的东西.例如,如果你花了6个月的时间学习Haskell,我保证它会对你的Java有很大的帮助.