I recently passed the Programmer Certification exam with a 98% (I got one question wrong). First I just wanted to thank everyone at JavaRanch for the incredible service that they offer other programmers and aspiring programmers. I really appreciate the resources that everyone connected with this site provide, and even all those who have asked great questions. I also (especially) want to thank Marcus Green and others of his ilk who have I am sure put in hundreds of hours helping others (and me). I feel particularly compelled to thank Marcus because I once flamed him for one of his responses to a newbie; he wrote me back apologizing and explaining that he had just had one of those killer days, and the newbie's question was the last straw... I would recommend Marcus' mock exams and tutorials as the best single thing someone can do to insure that they are ready for the exam. If you have a good score on his exams, you are ready for the exam and you will do fine. My background is that I am a teacher and have taught Java for a year. I studied very hard for about three months prior to the exam; I have a slightly compulsive personality, and (as usual) studied far more than I needed to pass the exam; BUT I gained an incredible amount of knowledge by doing so, and feel I actually have a deep understanding of Java as a result. My suggestion to others is that you take into account your own personality; if you just want to pass, study any one of the recommended books, keep on eye on the discussion groups at this site, and take Marcus' mock exams, and you will probably pass. I purchased the JQ+ practice system; it is incredible, but is OVERKILL by a few orders of magnitude. I now know more than any human should know about Java and some of its really obscure features (but I also now understand many of the important features of the language). If you can get a consistent 85 - 90% on the JQ+ tests, you should approach 100% on the actual exam. I also purchased the SUN on-line study program, and I feel that it was a waste of time and money. The explanations of the correct answers were often incorrect, misleading, or offered no real help at all (A, B C and D are wrong because E is the correct answer). Save your money, and shame on SUN. The identifier names appear to have been generated by a random Unicode generator (class Xablgh extends Zuleua), and make the questions needlessly difficult to follow. Thank heavens the real exam was clearly worded and had reasonable identifier names. As for the exam, I thought it was very fair, clearly worded, and best of all, the questions were asked in a logical order; all questions on the same topic were grouped together (for example threads) in a progression that followed the stated objectives. This eliminated much of the frustration of determining what you are even trying to look for, which is inherent in exams which are randomly organized. For the most part you could start answering each question with a clear mental image of the kind of problem you were facing. There were several questions which required very careful scrutiny (where a single access modifer in a bunch of code made all the difference), but even those tested generally important language concepts. My suggestion, if none of the answers look right, go back and check EVERY word in the code. Some simple things that you can do to improve your score; know all the file I/O constructors, and be sure you understand thread synchronization and simple deadlock situations (if you understand the questions on M. Green's exams, you know enough). I did get a few questions on AWT and the layout managers; including parts of two questions which required some basic knowledge of the resize behavior of the GridbagLayout manager. Finally, the one question that I got wrong! I know exactly which one, and agonized back and forth between the right and wrong answer (now I know which was which). In my defense, it was the only bad question on the exam, really. It had two answers that differed only in spelling! One used an abbreviation and the other did not. I racked my brain for other identifiers in the same class, but it turns out that the class has examples of both extraordinarily long method names and other methods with short abbreviated names. In the end I guessed wrong. The site where I took the exam was quiet, the machine worked well, the sample code windows (unlike the SUN practice course) were easy to place alongside the answers, they gave us an erasable plastic pad so I did not have to worry about not enough room to scratch my thoughts, ... in short it was almost a relaxed atmosphere to take an exam. I hope this long description is of some benefit to anyone who is about to take the exam. I have tried to describe some of the things I was worried about before I took it, and, if this helps it is a small partial payment for all the help that others have provided at this site. Good luck.
Quick public reply to Andres in case others don't know about the Marcus Green mock exams; go to Google or other search site: find: Marcus Green + java and you should find references to at least three mock exams + tutorials; the commonly held belief is that if you take the second mock exam just before you think you are ready to take the real exam, and if you pass that mock with an 80 - 90 or more, you are ready.
Jerry, I have to disagree on your statement about JQ+ and it is an overkill. The fact that you got 98% is more than proof that JQ+ did its job. It covers alot of aspects. Keep in mind that the sun questions could be absolutely anything on Java 2. YOu may have got an easy pick, but my guess is the JQ+ prepared you well for the exam. If you go back through the forum postings - there are many postings about how JQ+ added to there score.