Java 我应该为 SCJP 准备多长时间?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/1769821/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
How long should I prepare for SCJP?
提问by Zenzen
Ok I know this might sound a bit silly, as it depends on the person, but on average how much time should I spend on preparing for SCJP? I already have some experience with Java (a few small and medium projects for my university, from implementing a simple "ships" game to some client-server stuff).
好吧,我知道这听起来可能有点傻,因为这取决于个人,但平均而言,我应该花多少时间准备 SCJP?我已经有一些 Java 经验(我大学的一些中小型项目,从实现一个简单的“船舶”游戏到一些客户端 - 服务器的东西)。
I was thinking about taking it around jun-july '10 so I'd have around 7-8months, is it enough/too much/not enough?
我正在考虑在 10 年 6 月至 7 月左右服用它,所以我有大约 7-8 个月的时间,是否足够/太多/不够?
Also I've been looking for a good book, is there anything better than: "Sun Certified Programmer for Java 6 Study Guide" by Kathy Sierra and Bert Bates? And what about some practical questions (like "implement this and this" or "write a piece of code which does...")?
另外,我一直在寻找一本好书,有什么比 Kathy Sierra 和 Bert Bates 的“Sun Certified Programmer for Java 6 Study Guide”更好的书吗?那么一些实际问题呢(比如“实现这个和这个”或“写一段代码来……”)?
Ah and is it really worth it (I'd spend my own money). I'm not asking if it will make me a better programmer (as I've seen such a thread on stackoverflow alread) but do the employers even care about it?
啊,这真的值得吗(我会花自己的钱)。我不是问它是否会让我成为一个更好的程序员(因为我已经在 stackoverflow 上看到过这样的一个线程),但雇主们甚至关心它吗?
回答by digiarnie
I've never known being certified to help greatly but I don't live in the US or a hot bed of the IT industry. Someone else may be able to shed more light on this topic, but I can only assume that in a more vibing city for IT such as Silicon Valley or perhaps NY, it may look a little more impressive if two or more candidates are evenly matched. But if you're weak in interviewing skills or thinking on the spot etc, being certified might not help too greatly.
我从来不知道获得认证可以提供很大帮助,但我不住在美国或 IT 行业的温床。其他人可能会更清楚地说明这个话题,但我只能假设,在硅谷或纽约等 IT 更具活力的城市,如果两个或更多候选人势均力敌,它看起来可能会更令人印象深刻。但如果你在面试技巧或现场思考等方面比较薄弱,获得认证可能帮助不大。
The book you mentioned sounds good and will probably be sufficient. I've always enjoyed the head first series too and in your case perhaps the Head First Javamight be worth a look (also Kathy Sierra and Bert Bates).
你提到的那本书听起来不错,可能就足够了。我也一直很喜欢Head First系列,在您的情况下,Head First Java可能值得一看(还有 Kathy Sierra 和 Bert Bates)。
Some other posts relating to SCJP may be of help too:
其他一些与 SCJP 相关的帖子也可能有帮助:
回答by luvieere
From the Sun Certified Professional Wikipedia page, I understand that SCJP is a prerequisite to a number of the other Java-related certifications, so indeed I would say it really isworthed. Not only it will look good on your resume, but it will open a path of new certification opportunities and allow you to gain better chances of employment in the long run, not only due to certification, but also due to the experience you will gain.
从Sun认证的专业维基百科页面,我的理解是SCJP是一些其他的Java相关认证的前提条件,所以真的,我会说这真的是worthed。它不仅会在您的简历上看起来不错,而且会开辟一条新的认证机会之路,让您从长远来看获得更好的就业机会,这不仅是因为获得了认证,还因为您将获得的经验。
For an extensive discussion upon this matter, you could take a look at thisforum post.
有关此问题的广泛讨论,您可以查看此论坛帖子。
回答by Randell
Although it took me a long time to prepare for the SCJP exam (because I was working during the day that time), I think 7 months is long enough and perhaps too long depending on your mad skills.
虽然我花了很长时间准备SCJP考试(因为那天我在白天工作),但我认为7个月足够长,也许太长取决于你的疯狂技能。
The only resource I had that time was Sun Certified Programmer for Java 5 Study Guide by Kathy Sierra and Bert Bates. I think it was all the resource I needed. Although I have to admit that I had to read the chapters again and again and answered the quizzes and practice exam multiple times to make sure I got it in my head.
当时我唯一拥有的资源是 Kathy Sierra 和 Bert Bates 编写的 Sun Certified Programmer for Java 5 Study Guide。我认为这是我需要的所有资源。虽然我不得不承认我不得不一遍又一遍地阅读这些章节,并多次回答测验和练习考试,以确保我能把它记在脑海中。
As far as I know, questions such as "implement this and this" or "write a piece of code which does..." is for the SCJD exam, not SCJP. This is also mentioned in the book by Sierra and Bates, together with other information about the exam.
据我所知,诸如“实现这个和这个”或“编写一段执行……的代码”之类的问题适用于 SCJD 考试,而不是 SCJP。Sierra 和 Bates 在书中也提到了这一点,以及有关考试的其他信息。
回答by Telcontar
I prepare it for about 3 Months for 1.4 Java Version SCJP with an O'Reilly book (not an Head First sadly) I think that the SCJP Exam for the 1.5 specification is harder thank's to generics.
我用 O'Reilly 的书为 1.4 Java 版 SCJP 准备了大约 3 个月(遗憾的是不是 Head First)我认为 1.5 规范的 SCJP 考试更难,感谢泛型。
Anyway, the most important is to focus during the test, almost all questions have a trick,as you could see on the preparation book mock test.
无论如何,最重要的是考试时要集中注意力,几乎所有问题都有技巧,正如您在准备书模拟考试中看到的那样。
回答by Jon
It really depends on what you're doing the certification for. If you just want to passthe exam you could probably do it in around three months.
这实际上取决于您进行认证的目的。如果你只是想通过考试,你可能会在三个月左右完成。
However, if you're studying to really get an in depth understandingof the JDK and the intracacies then I'd say more like six to nine months.
但是,如果您正在学习以真正深入了解JDK 和内部结构,那么我会说更像是六到九个月。
The book you mentioned should be fine, but make sure you do example programs and really explore the concepts presented to you in each chapter. One site I would definitely recommend is JavaCertificate.com:
你提到的那本书应该没问题,但请确保你编写了示例程序并真正探索了每章中呈现给你的概念。我肯定会推荐的一个站点是 JavaCertificate.com:
http://www.javacertificate.com/
http://www.javacertificate.com/
It's worth spending the money to do the practice questions and the mock exams, but don't do this too early on.
花这笔钱做练习题和模拟考试是值得的,但不要过早地这样做。
I highly recommenddoing the SCJP, it will put you ahead of most of the mediocre Java hackers out there. Unfortunately, most employers I know of are not that aware of the certification - nor it's benefits. I really wish Sun would grade the certification you get in the end - 90% and plus would be Level 1, 80 - 90% would be Level 2 etc...
我强烈推荐你做 SCJP,它会让你领先于大多数平庸的 Java 黑客。不幸的是,我认识的大多数雇主并不了解认证——也不是它的好处。我真的希望 Sun 对您最终获得的认证进行评分 - 90% 和以上将是 1 级,80 - 90% 将是 2 级等等......
回答by Ken
In the Parachute book, the author tells of how he likes showing off résumés to his friends, who remark that "This résumé will never get anyone hired!", to which he responds "Oh, but it already did!". The lesson is that every employer is different.
在《降落伞》一书中,作者讲述了他是多么喜欢向朋友炫耀简历,他们说“这份简历永远不会让任何人被录用!”,他回答说“哦,但它已经做到了!”。教训是,每个雇主都是不同的。
So the real question is not whether the SCJP will help you get a job, but whether it'll help you get a job at one of the places you want to work. Google has a lot of pretty smart programmers who use Java, for example, and of all the people I know who work there, zerohave taken the SCJP, so it's probably not a big concern there.
所以真正的问题不是 SCJP 是否会帮助你找到工作,而是它是否会帮助你在你想工作的地方找到工作。例如,谷歌有很多非常聪明的程序员使用 Java,在我认识的所有在那里工作的人中,零都参加了 SCJP,所以这可能不是一个大问题。
Now, some more personal (i.e., less universal) feedback:
现在,一些更个人化(即不太普遍)的反馈:
It would not help you if you were to interview at my company, and in fact might hurt (especially if you call attention to it), if it looks like you're onlya Java programmer. We need good programmers, not good Java programmers.
如果你去我公司面试,这对你没有帮助,事实上可能会伤害(特别是如果你引起注意),如果看起来你只是一个Java 程序员。我们需要优秀的程序员,而不是优秀的 Java 程序员。
I've not taken the SCJP, but I suspect it's like every other standardized test: it's as much about your SCJP-taking ability than your Java ability. When you interview, we're going to look at the code you've already written (open-source projects are great), and the code you write during the interview. What Sun thought of you is not our concern. (We can't exactly call up Gosling in a year and say "Dude, you told us this loser knew Java! You totally owe us one year of dev time".)
我没有参加过 SCJP,但我怀疑这和其他所有标准化考试一样:与您的 Java 能力相比,这与您的 SCJP 学习能力同样重要。当您面试时,我们将查看您已经编写的代码(开源项目很棒),以及您在面试期间编写的代码。Sun 对您的看法与我们无关。(我们不能在一年内给 Gosling 打电话说“老兄,你告诉我们这个失败者知道 Java!你完全欠我们一年的开发时间”。)
Some people have suggested that it'll make you look good over another candidate, if all else is equal. First, all else is never equal when it comes to interviews. In fact, I've rarely interviewed somebody and been neutral: it's either an immediate "No" or an emphatic "Yes". Second, unless it's a really tiny company, everybody needs more great programmers, so if two "Yes"s walk in the door at the same time, we'll hire them both. Yes, even today, in this economy.
有些人建议,如果其他条件相同,它会让你看起来比其他候选人更好。首先,在面试方面,其他一切都永远不会平等。事实上,我很少采访某人并且保持中立:要么是直接的“不”,要么是强调的“是”。其次,除非它是一家非常小的公司,否则每个人都需要更多优秀的程序员,所以如果两个“是”同时进门,我们就会同时雇用他们。是的,即使在今天,在这个经济中。
So figure out where you want to work (a specific place, or a type of place), and see if the SCJP will help you there. There are lots of other ways to get good at Java in the time you might save. First of all, writing real Java programs. :-) Bonus if you open-source them so everybody can see the cool stuff you've done. Double bonus if you write a blog about all the gory details. Second, learn something other than Java. If you spend 6 months learning Haskell, for example, I guarantee it'll significantly help your Java.
所以弄清楚你想在哪里工作(一个特定的地方,或一种地方),看看 SCJP 是否会在那里帮助你。在您可以节省的时间里,还有很多其他方法可以让您精通 Java。首先,编写真正的Java程序。:-) 如果你开源它们,那么每个人都可以看到你所做的很酷的事情,那就是奖励。如果你写一篇关于所有血腥细节的博客,双倍奖励。其次,学习Java以外的东西。例如,如果您花 6 个月时间学习 Haskell,我保证它会对您的 Java 有很大帮助。
回答by GreenMatt
Views on certification certainly seem to be a mixed. Some employers say they won't hire if you don't have one; others don't care; and others seem downright hostile toward certs. So, having one could help, but not necessarily. My viewpoint is that if you're using it to improve your skills then get it. If your skills are already at a point where the certification is easy, then it's only worthwhile if you're convinced it will help you get the sort of job you want... or if your employer is requiring you to get it.
对认证的看法似乎是喜忧参半。一些雇主说,如果你没有,他们就不会雇用;别人不在乎;和其他人似乎完全敌视证书。因此,拥有一个可能会有所帮助,但不一定。我的观点是,如果你用它来提高你的技能,那么就得到它。如果您的技能已经很容易获得认证,那么只有当您确信它会帮助您获得想要的工作……或者您的雇主要求您获得它时,才值得。
As for the time to spend on preparing, this varies also. Some factors:
至于花在准备上的时间,这也各不相同。一些因素:
- How much you already know
- How much time you have
- How well you want to perform on the test
- 你已经知道多少
- 你有多少时间
- 您希望在考试中表现如何
I'd think 3 - 6 months of studying should be adequate to pass, probably less if you're already good with Java. From my own experience, I had only a passing familiarity with Java, but studied toward an SCJP a couple times. I had no deadline and wanted to "ace" the test, so was thinking 6 - 8 months of study time. However, life would present distractions and I'd suspend studying for a bit. I wasn't using Java regularly, so I would have to start over somewhat when I resumed. Eventually life presented the ultimate distraction (a child) and I still haven't gotten that SCJP. (However, I'm starting to use Java regularly, so that may change.)
我认为 3 到 6 个月的学习应该足以通过,如果您已经精通 Java,则可能更少。从我自己的经验来看,我对 Java 只是暂时的熟悉,但对 SCJP 学习了几次。我没有截止日期,想要“王牌”考试,所以想了 6 到 8 个月的学习时间。然而,生活会让人分心,我会暂停学习一段时间。我没有经常使用 Java,所以当我恢复时我不得不重新开始。最终生活呈现了最终的分心(一个孩子),我仍然没有得到那个 SCJP。(但是,我开始定期使用 Java,所以这可能会改变。)
JavaRanchis another good site to use for SCJP preparation.
JavaRanch是另一个用于准备 SCJP 的好站点。
回答by Cervo
It took me 3 weeks to prepare for the Java 6 exam, I have 0 professional Java programming experience. For someone who uses the language daily (like a java programmer) it should be even easier. I was very excited to get it over with as soon as possible, so I ordered the Kathy Sierra SCJP Sun Certified Programmer for Java 6 Study Guide at http://www.amazon.com/SCJP-Certified-Programmer-Java-310-065/dp/0071591060and one day shipped it to me so that I received it on a Saturday. As soon as it came, I started reading. That took about two weeks as the book is an 800 page monster with some self tests in the book that both give you good practice and teach you some specific details that the book did not mention in the actual chapter (a lot you can guess but not all...). For the last week I reviewed all the 2 Minute Drills and re-read the chapters that were API heavy. Also there are a lot of tables (important string methods, thread methods, file API methods, and concurrency). I also took the two master exams included in the book. I took them in study mode and attempted the question, then if it said wrong, I went and tried to figure out why it is wrong, then I went to the reference/hints if I needed. On the day of the exam I reviewed the File/String/Collections API an hour prior to the exam and took it.
我花了 3 周时间准备 Java 6 考试,我有 0 次专业 Java 编程经验。对于每天使用该语言的人(如 Java 程序员)来说,它应该更容易。我很高兴尽快完成它,所以我订购了 Kathy Sierra SCJP Sun 认证程序员 Java 6 学习指南http://www.amazon.com/SCJP-Certified-Programmer-Java-310- 065/dp/0071591060有一天,我把它寄给了我,所以我在星期六收到了它。一到,我就开始阅读。这花了大约两周的时间,因为这本书是一个 800 页的怪物,书中有一些自我测试,既可以给你很好的练习,也可以教你一些书中没有在实际章节中提到的具体细节(很多你可以猜,但不是全部...)。上周,我复习了所有 2 分钟练习,并重新阅读了 API 重的章节。还有很多表(重要的字符串方法、线程方法、文件API方法和并发)。我还参加了书中包含的两门硕士考试。我把他们带到学习模式并尝试了这个问题,然后如果它说错了,我会去试图找出它为什么错了,然后如果我需要,我会去参考/提示。
I scored 90% so that's GREAT considering I do not have any Java work experience at all and prepared in 3 weeks. It should be much easier for any professional Java developer to prep/take. Although I have known of Java since it came out, and I used it for the occasional graduate and undergraduate program in college so I'm not totally new. Also, I know other C languages so I am used to much of the control structures, etc... However if I can figure out the API/language workings in three weeks enough to get a 90% any experienced java programmer should have no problem figuring out enough to pass. Still that book is giant, the 2 hours of daily train riding to work was a big help in getting the reading done.
我得了 90% 的分数,考虑到我根本没有任何 Java 工作经验并且在 3 周内准备好了,这很好。任何专业的 Java 开发人员都应该更容易准备/接受。尽管自从 Java 出现以来我就知道它,并且我偶尔会在大学的研究生和本科课程中使用它,所以我并不完全陌生。另外,我知道其他 C 语言,所以我习惯了很多控制结构等......但是,如果我能在三周内弄清楚 API/语言的工作原理足以获得 90% 的经验,那么任何有经验的 Java 程序员都应该没有问题弄清楚足以通过。那本书仍然很大,每天乘坐 2 小时的火车上班对完成阅读有很大帮助。
Some people say you have to write a hundred small programs to figure things out. But that book is pretty good on details. The most important thing to write programs about (maybe I wrote 10) are the constructors/initializer blocks/static initializer blocks/to find out exactly what is inherited and to cement the order. And when casting a sub class as its parent, it is important to see what happens when you access the variables/overloaded methods. While the overloaded methods are simple and what is expected, accessing variables is not so straight forward. Trust me, write a few programs about it, especially where the super type/sub type have instance variables with the same name.
有人说你必须写一百个小程序才能搞定。但那本书在细节上相当不错。编写程序最重要的事情(也许我写了 10 个)是构造函数/初始化块/静态初始化块/准确找出继承的内容并巩固顺序。并且在将子类转换为其父类时,重要的是要查看访问变量/重载方法时会发生什么。虽然重载的方法很简单并且符合预期,但访问变量并不是那么简单。相信我,写一些关于它的程序,特别是在超类型/子类型具有同名实例变量的地方。
I think the main thing I got out of SCJP is a broad overview of the language. Java is a beast, the API/language is huge. Typically I just used the parts of the language I needed for each project/activity in Java and looked up the API as I went. Some key words (like transient) I just did not know. Also some interview trivia (like if you override equals what else must you override) I did not know (at least according to what a friend told me). Also I had no idea about things like the internationalization classes Locale, Calendar, DateFormat, NumberFormat, and Date. Really if I was writing serious Java software, I would probably use Calendar for date arithmetic needs. I don't think it will help me land a Java job as everyone seems to want Java experience prior to even giving you an interview. But if I ever do get an interview, the knowledge I gained from preparing the exam would definitely help me to better answer the questions (though I'm sure a lot of the specific API details will fade with time). Also now I feel more confident with Java. Still I can't say that I can just whip up a Java program on the white board that fully works because the API is very complex. A language like C is pretty small, include stdio.h/stdlib.h/string.h and memorize 30 functions and you can do a lot. Java has way more packages/classes to include and way more API. Also with expressions there are a ton of rules, promotions, casting, autoboxing, etc. which would be really easy to mess up. Though C has precedence hell, with the right parenthesis you can get away with a lot. Java is more strict on things (ie if(0) is an error). But the exam is worth it just for some additional trivia, although the exam is a bit frustrating, and if you look at the book it pretty much tells you that the exam deliberately picks tricky questions and edge cases in an attempt to confuse you. It will deliberately give bad indentation and other stuff to try to be tricky. I hate that because rather than focusing on you knowing the material reasonably, it focuses on trying to confuse you.
我认为我从 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 并记住 30 个函数,你可以做很多事情。Java 包含更多的包/类和更多的 API。此外,表达式还有大量规则、促销、转换、自动装箱等,这些很容易搞砸。尽管 C 有优先级地狱,但使用右括号可以避免很多问题。Java 对事物更严格(即 if(0) 是一个错误)。但是为了一些额外的琐事,考试是值得的,虽然考试有点令人沮丧,如果你看这本书,它几乎会告诉你,考试故意选择棘手的问题和边缘案例,试图让你迷惑。它会故意给出糟糕的缩进和其他东西,以试图变得棘手。我讨厌这样,因为它不是专注于您合理地了解材料,而是专注于试图混淆您。
One thing of note, don't get thrown by the Master exam. I tried to take one in exam mode, and they gave 75 questions in 1.5 hours and I nearly decided to postpone the exam. The real exam is 60 questions and you get 3 hours. Also the questions on the actual exam are MUCH easier than on the master exam. My master exam score was 37%.... My last two times I just did it in study guide mode, attempted each question/if answer was wrong tired again/viewed reference once with the A exam and once with the B exam... I did fine on the exam and I am really really happy that I did not postpone it over the study guide, because now it is over and I can relax....
需要注意的一件事是,不要被硕士考试所抛弃。我试着在考试模式下参加一个,他们在 1.5 小时内给出了 75 个问题,我几乎决定推迟考试。真正的考试是 60 个问题,你有 3 个小时。此外,实际考试的问题比硕士考试容易得多。我的硕士考试成绩是 37%....我最近两次只是在学习指导模式下做,尝试每个问题/如果答案错了又累了/在 A 考试和 B 考试中查看了一次参考资料.. . 我考试考得很好,我真的很高兴我没有因为学习指南而推迟考试,因为现在考试结束了,我可以放松了....