What does it mean to pass the SCJP Exam

The Certified Java Programmers Exam acts as a pre-requisite to several other Java Programmer exam, these in include the Sun Certified Java Developer exam and the Sun Certified Web Component Developer Exam. This means you must have passed the programmer exam before you are allowed to take these exams. Strangely it is not a pre-requisite for the Java Web Architects exam, though you would be well advised to have taken the programmers exam first as that exam does require a wide knowledge of Java related technologies.

I have been reading debates four years as to the value of the Java Programmers exam. In various newsgroups one person will ask if the Sun Certified Java Programmers Exam is worth taking and one or more other people will say (for example) “it is a waste of time because it does not prove you are a good Java Programmer”, or “It is a waste of time because it will not get you a job as a Java Programmer”. Well it is certainly true that it does not prove you are a good Java programmer and on its own it will probably not get you a job as a Java Programmer (and I suspect it rarely if ever did). However it never pretended to do those things, it has other benefits and it is not a waste of time.

The Sun Certified Java Programmers Exam is designed to demonstrate that you have met a fairly detailed test of basic knowledge of the essentials of the Java programming language. Note the combination of detailed and basic in that description. The topics that are covered are mainly the essentials of the language, that is subjects that you are likely to use sooner or later in a career as a Java programmer. However you need to know these essentials in some depth, and this depth occasionally means answering a question similar to “what would happen if you wrote this extremely unlikely piece of code you would never write in the real world and then attempted to compile and run it”. Whilst it may be frustrating to come across a question in this format, if you can answer it correctly it does mean you really understand what is happening in the language. Apart from these types of question, you can be confident that the process of studying for the exam will teach you more about aspects of Java you will use in the real world as a programmer.

How To Study

Write lots of small programs

Write lots of small programs of your own. I cannot overemphasis the value of this. They can be trivial programs that do not do anything except explore the ideas you are trying to learn. It can be very useful to use a debugger to track the changes in values in your programs but the plain JDK from the command line will address most learning issues. You can get a very good debugger by downloading the NetBeans development environment.

Only study the objectives

You will have a lifetime of “real world” Java programming to learn the rest of the language, for the purpose of passing the exam just study the objectives. All the topics in this book are in the exam. Part of the problem is knowing to what depth you need to learn each topic. You can get some help here by reading the Sun Certification Results forum at People who have passed the Sun Certification exams tell of their experience and often give some more clues as to what subjects will come up on the exam.

Take mock Exams

Good mock exams can be a very good indicator of how well you are prepared for the real exam. I have seen numbers that indicate that the score people get on the real exam is within plus or minus 3 % of the score they get on my mock exams. There should be no need to fail the real exam, if you are not ready a good mock exam will tell you and you can postpone until you are ready (and save the cost of doing the exam). You can find links to free mock exams at my web site at in the FAQ section and you can find links in the FAQ at JavaRanch. Despite the high quality of the freely available mock exams I still recommend the commercial products. This is because they give you a good interface, large number of questions and are very reasonably priced. Two products I have heard consistently good feedback on are J@Whiz and JQPlus.

Will Certification get me a job?

It is unlikely that simply passing the Java Programmer Certification exam will get you a job. Employers place a huge emphasis on commercial experience which can be a problem, as how can you get commercial experience until you have actually got a job? The value of the Certification exam is that if an employer has to chose between two candidates who are approximately the same in other respects, the certified programmer will have the edge. Being certified is particularly important if you work for a company that sells on your services as a consultant/contractor. The clients buying the service find the idea of certified staff being comforting.

Purchasing and Booking the exam

In order to book you exam you need to purchase a voucher from Sun. This is a rather ordinary looking piece of paper that contains the magic number that allows you to book. In the US the exam costs $150 and the cost is approximately proportional in other parts of the world.

Once you have have your voucher you need to locate your most convenient test center, an good way to do this is to use the web site at Test centers tend to be training organisations that have a relationship with Sylvan Prometric and have a room set aside with machines for conducting exams. They will generally be administering tests many different technologies so will probably know very little about the Java exam you are taking.

Actually Taking the Exam

The exams delivered on windows machines, normally in a room set aside especially for taking exams. You are required not to talk to any other people taking exams but they will probably be taking different subjects anyway. Ensure you arrive early for the exam as you do not want to to be flustered when you start the exam. You will need to bring along two forms of ID, one with a photo. You are not allowed a calculator in the exam but you should be provided with a sheet of paper and pencil for making notes. If you are taking the JDK1.2 exam this can be useful for working out how LayoutManagers will work. You are not supposed to take this away from the exam. If you have a mobile phone make sure you turn it off, if it were to ring it will put you off and it would make you very unpopular with anyone else taking the exam.

You will have the opportunity to take a test exam to get yourself familiar with the style of the real exam. I recommend you take this as it can help you relax and become familiar with the interface of the system. When I took the exam it was a bunch of questions about astronomy. I know very little about astronomy, but that doesn't matter as the point of the exercise was to get me familiar with the style of the system that is delivering the exam. Once you have taken the test exam you will be ready for the real thing.

In order to take the real thing you need to read and agree to a document that amongst other things says that you will not disclose the contents of the questions to other people. This is to ensure there is not a leak of questions that will encourage people to try to pass the exam by memorisation. You can read this agreement off line at the link given below. I recommend you read this off line because the clock is running when you get a chance to read it during the exam. You will also get a short questionnaire on your Java programming background. Don't linger long over this as it is not contributing to your score.

Once you are into the exam proper you have 120 minutes. People rarely complain that time is an issue when taking the exam. People do however get flustered and fail to read questions fully or correctly. The people at Sun Education put a great deal of effort into making the questions easy to understand and within the scope of the objectives. However, when you are under pressure it is easy to jump to conclusions or miss a point in a question.

The interface to the exam includes the ability to mark questions you are not certain of so you can go back to them later and re-consider your answer. I recommend you take advantage of this ability. Also I recommend you take advantage of all the time allowed. If you have completed the exam quickly go over each question again. With only 60 questions, one question can mean the difference between passing and not passing. You can scroll backwards and forwards between questions and until you decide to score your exam you can change your answer to any question.

Most questions will be of the checkbox style multi choice style, but some will ask you to key in a short amount of text into a text entry field. Do not add any additional quote characters unless you are absolutely certain. The exam system does not do any complex parsing of these answers so it is important to only key in the characters expected. You will be told how many options you need to select for each question.

When you are truly happy with your set of answers you can click the button to have your attempt scored. This is the part where you may find yourself holding your breath. However you should get your result before you expire. The results will indicate if you have passed or not. You should get a print out before you leave the test center to confirm the result, and a breakdown of your score by topic. You will not get a breakdown to indicate how you scored on each question.

After a few weeks you should receive the real qualification certificate, an agreement to sign about using the logo and a lapel badge.

The Lapel Badge

This is a scan of the badge with a ruler next to it in inches so you can get an idea of the scale.

JDK1.2 vs JDK1.4

In August 2002 Sun introduced the Sun Certified Java Programmers Exam for JDK 1.4. This was a fairly significant update to the objectives as it removed all mention of GUI (AWT) programming and all mention of I/O. The removal of GUI programming was understandable as many Java programmers are programming for the web whereby the GUI is constructed from HTML rather than AWT or Swing. The removal of I/O related objectives was more surprising as sooner or later most programmers will have to write and read from the disk. The pass mark for the JDK 1.4 exam is 52%, whereas the pass mark for the JDK 1.2 exam was 60%. The feedback so far is that the questions are not noticeably harder so you can assume that it is probably slightly easier to pass the Jdk 1.4 exam.

In place of these objectives it seems there is greater emphasis on the essentials such as threading and control structures. The objectives for the JDK1.4 exam include new objectives. These include specifically mentioning the wrapper classes, the assertion mechanism introduced with JDK 1.4 and the hashcode method.

I believe that it is not vitally important which version of the exam you take, the important thing is to pass the exam. Most employers do not have an in depth knowledge of what is involved in the exam and just accept that passing it shows you know the essentials of the language. The JDK1.4 exam does seem to involve a narrower range of topics. The I/O and AWT classes on the JDK1.2 exam are fairly large topics so you may consider the 1.4 exam attractive because of this.

How this book was created

This book was created using OpenOffice and StarOffice. StarOffice from Sun Microsystems is the commercial version of the freely available and downloadable application suite. The files were edited interchangeably under Linux, Win98 and Win XP. The screen captures were performed using The Gimp image manipulation tool, both Linux and windows versions. Emacs was used to edit and indent sample code and the Sun JDK was used for compilation and test. The HTML exported from StarOffice was cleaned up with a Perl script and the HTML tidy utility.

This book was updated during summer/fall 2002 from the version that was written for the JDK 1.2 exam, which in turn was an update to the version written for the JDK 1.1 version of the exam.

Marcus Green
Leeds, Yorkshire
October 2002

For Sarah

Other resources

Book your exam online

Locate a test centre

The “Non disclosure agreement”

Check your results online