The revised Sun Certified Java Programmer Exam

As of 5 October 2000 people taking the Sun Certified Java programmer exam will be given a revised version. This article goes over the details of these changes and speculates as to the reason and effects.

The objectives have Not changed

I hear a constant trickle of rumors from people who have heard from "a friend" that the objectives have changed. The objectives have not changed, they do not include anything new. For two years I have received emails from people who have heard that networking, swing or other topics are on the exam. They are not now and I suggest they will not be on the Programmer exam in the forseeable future. The objectives remain the same. You can read the objectives at

People who have taken the exam have suggested that there is a new emphasis on Threading and I/O. This makes sense as I/O is a very important topic. It is hard to write a useful program without some kind of I/O and just about all styles of Java programs from applets to server side code require it. Threading is a tricky topic, you can be a professional Java programmer without really grasping the subtleties.

The Pass mark has changed to 61%

The pass mark used to be 70% and is now 60 percent. This may be because the new question format makes it harder to pass and thus the passmark should be lowered.

New Snippet heavy question format

The new question bank contains more questions with code snippets. This may take the form of an entire class with question options that ask

What happens when you attempt to compile the following code (pick one option)?

1) Compile time error
2) Compilation but no output
3) Compilation and output of 69
4) Compilation and output of 96

Note that the question indicates how many of the answer options you should pick from

Mock exams are still valid

Because the objectives are the same any mock exam that was valid previously will still be valid. Even if a mock exam is light on examples that includes code snippets, as long as they address the issues covered by the objectives, taking good mock exams will help prepare you for the exam. To give an example, my own mock exams 1 and 2 contain around 50% of questions with code snippets where I suspect the real exam contains around 60 - 70% code snippets. My exam no 3 contains a much lower ratio of snippets but each question option tests part of one of the objectives and thus should still be a valuable learning aid. I try to include an explanation for the reasons for each answer to the question and a pointer to more learning material.

My questions do not tell you how many of the options to choose. I expect it will be a while before many of the freely available mock questions are tweaked for the new question format.

If you are pining for questions exactly in the new format, why not make some up yourself and post them on the web?

Why have Sun done this?

I have no special inside knowledge of how the people who create the exam think. However I have created hundreds of mock exam questions myself so I am aware of some of the issues. It is easier to create unambiguous snippet based questions. A bunch of code can be tested objectively to see if it compiles and exactly what is the output. It is easy to be unclear when asking direct conceptual questions. Ensuring the questions are clear is important as many candidates are from a background where the first language is not English. The sun questions have had a good reputation for clarity. Feedback from people who have taken the old or new version of the exam have not reported significant problems in understanding the meaning of questions.

Snippet based questions are harder to memorize and pass on to friends. Any publicly available certification will eventually have some question leak. It is much harder to leak questions that include chunks of code than it is to leak questions that are "yes/no" or "which of the following are true" style questions.

Some people attempt to pass the exam by trying to memorize the questions that come up. This seems to be a faulty approach on many levels. It is probably easier to learn the language properly than it is to memorize enough questions to be sure of passing the exam. I do not know the exact number of questions in the question bank but it is many hundreds. When you sign up for the exam you sign a confidentiality agreement that you will not pass on questions to others. Please respect this agreement. Making it easier for other people by giving out "real questions" will devalue your own certification and undermine its overall value.

Don't panic

If you know the topics on the objectives and you have written plenty of small programs you can pass the exam. It is not rocket science and you do not have to be particularly brilliant. You do have to study hard, play close attention to the topics and read the questions properly. If you think you can program in Java then with some study you can take and pass the exam.


Marcus Green October 2000