Deep into the Basics: Tackling Sun's SCJP 1.4 Exam This SCJP expert says even experienced Java programmers may fail the 1.4 exam if they're not well prepared.
by Marcus Green
4/6/2004 --
Exam
#CX-310-035:
Sun Certified Programmer for the Java 2 Platform 1.4
Java programming skills are in high demand. Despite the hype and publicity
for alternatives such as C#, a search on any job board will usually show more
programming jobs asking for Java than anything apart from C++. The Sun Certified
Java Programmer (SCJP) certification -- a one-exam title -- is a baseline qualification
from Sun Microsystems used to demonstrate a knowledge of the language.
While few job advertisements specify the SCJP as an essential qualification,
it can be a powerful additional tool in persuading employers to offer an interview.
In this article I share some insight on the 1.4 version of the SCJP exam (CX-310-035)
as well as suggest several preparation resources.
Exam Basics
This exam features 61 questions, with 120 minutes to complete the exam. Most
people report that they have enough time to attempt all of the questions. The
pass mark is 52 percent, or 32 questions. You can take the SCJP 1.4 exam at
Prometric testing centers worldwide. The official objectives for this exam can
be found here.
A typical question on this exam asks you to read through some code, then offers
you four or five options to choose from. You will need to check one or more
options indicating what you think will happen if one were to try to compile
and run the code. The questions will indicate how many options to select. A
few questions ask you to type text into a field, but these are in the minority.
With the SCJP exam, you may find that while some of the topics are quite common
place, they may be presented in a strange format. Or, to put it more bluntly:
"What would happen If I take this piece of stupid code I would never write
and attempt to compile and run it?" For example, you may get questions
that involve multiple nested for loops with break statements within methods
with parameter names that shadow variables declared at class level.
Tip: For many questions, you'll be presented with a chunk of code
and you will have to work out in your head how the Java system would process
that code. Be prepared to become a "human Java compiler" to get
these questions correct.
Those familiar with the SCJP 1.2 exam objectives will notice the exam no longer
covers the graphical or I/O libraries -- these were dropped with the move to
JDK 1.4. Possibly to make up for this, the exam now goes into greater depth
on the subjects of threading and garbage collection, topics that even experienced
Java programmers may not know well enough for this exam.
The exam has never covered any networking, Web or database libraries -- if
you want to show off your knowledge of those subjects, you will need to pass
this exam first and then move on to one of the several other Sun certifications
for which the SCJP is a prerequisite, such as Sun's Developer and Web Component
Developer credentials.
-- advertisement (story continued below) --
How Hard Is this Exam?
It is very possible for a genuinely experienced and knowledgeable Java programmer
to fail this exam. It covers areas that programmers may have never needed to
investigate but that are at the core of the language. For example, it places
an emphasis on understanding the way threading works -- not just the syntax,
but details such as the unpredictable nature of some threading code and the
platform dependence of threading. An example of another potentially tricky area
is the requirement to understand the subtleties of signed and unsigned shifting
of integers.
Passing the exam does not mean you are a good Java programmer, it just means
you have an in-depth knowledge of the core of the language, which seems a good
place to start to me.
Tip: If you have a background in another language such as C++,
some questions may deliberately try to trap you with false friends, such as
giving a list of keywords that includes words that work in C++ but not Java.
Preparation Resources
One nice thing about preparing for the SCJP is that there are some excellent
resources available for candidates -- many of them free.
The granddaddy of resources is JavaRanch.com.
The heart of JavaRanch.com is the discussion forum, which covers many different
Java topics (although there is a strong specialty in the SCJP exam). At JavaRanch.com,
you'll find a forum where people report their experiences with taking the real
exam, giving you an excellent idea of the balance of topics covered. If you
have a concern, the chances are good that someone in these forums will be able
to answer your question.
JavaRanch.com also features links to a variety of free SCJP practice questions
online. One of the best for these is www.danchisholm.net,
a truly impressive site containing links to hundreds of questions, including
questions set up by topic so you can concentrate on areas where you may be weak.
You'll also want to check out JavaCertificate.com,
a fine site with a nice interface and good questions.
When you've exhausted the free resources, you can start looking into the many
books and commercial exam simulators available. One book you'll see referred
to often is the "K&B" book, a nickname for "Sun
Certified Programmer & Developer for Java 2 Study Guide (Exam 310-035 &
310-027)," based on the author's names, Kathy Sierra and Bert Bates.
Sierra and Bates were involved in creating the real exam, and thus have some
insight into the internals of the exam. They approach the topic with some humor
and a great deal of experience.
If you want to go for more concise (and cheaper!) coverage you could (warning:
personal plug coming up!) choose "Java
2 Programmer Exam Cram," by Bill Brogden and myself. This book focuses
exactly on what you need to pass the exam, features test-taking strategies,
timesaving study tips and a special Cram Sheet that includes tips, acronyms,
and memory joggers. Bill and I have been writing about this exam for more than
six years.
Another option is "A
Programmer's Guide to Java Certification: A Comprehensive Primer, Second Edition,"
by Khalid Mughal and Rolf Rasmussen. This book takes yet another approach --
it is much denser, and it puts an emphasis on using UML diagrams to explain
the details. Of the three books, I suspect this one is the one is most likely
to find a place on your bookshelf as a reference once you have passed the exam.
For practice questions, I recommend Whizlabs,
which offers a simulator containing more than 600 questions for $59.95, as well
as Enthuware, which offers JQPlus, also
with more than 600 questions for $25. You could also try (warning: another personal
plug!) Certkey for Java
2 , which gives you access to 420 mock questions and answers.
As for instructor-led training, I am not convinced that any of the "classroom"
courses are truly of value for money in terms of making a big difference in
your ability to pass the exam. I do like the idea of the Whizlabs online
training, which appears to offer some of the benefits of a "live tutor,"
but with the lower cost of communicating over the Web and not having to physically
move to another venue.
How Long Does it Take To Prepare?
Of course, the answer to this question is "it depends," but on average
I would allow between three and six months, assuming you already have some Java
experience.
The key to passing the exam is to understand what topics are covered and to
take plenty of quality mock exams so you know what to expect. A good quality
mock exam will predict your grade on the real exam to within one or two percentage
points, letting you know when you are ready.
My Take on the Exam
Overall, this exam sticks to the basics -- which you would certainly need in
almost any Java programming job -- but it expects you to understand those basics
very well. As mentioned, some of the exam questions come into the category
of: "What will happen if you try to compile this unusually stupid piece
of code you would never dream of writing." However, if you can answer these
types of questions, you really will understand the basics of the language. It
also covers some areas that you may think you know but can have oddities
and subtleties that can cause problems in real-world programming. Most people
who study and pass this exam will end up knowing more about the important topic
of threading than they did before.
In short, just because you already program in Java, do not think you can pass
this exam easily. However, with a little study, you will improve your knowledge
of the basics and take the first step on the ladder of Sun Java certifications.
Marcus Green has been working with PCs since 1986 and with Internet technologies
since 1992. He has written extensively on Sun's Java Programmer exam, and is
the co-author of several books, including "Java
2 Programmer Exam Cram (310-035)." He also runs a Web site about the SCJP
exam, jchq.net. He has written database-backed
Web sites using Perl, PHP, and JSP, and he uses Linux as his default operating
system.
There are 31 user Comments for “Deep into the Basics: Tackling Sun's SCJP 1.4 Exam” The current user rating is:
Page 1 of 4
4/7/04: S S from MN says:
I toke the exam and passed. It's easy to pass the exam since the passing score is only 52%. If you have experience with Java programming for about 40 hours, you can pass the exam. SUN should make the passing score higher than 52%. It's hard though to score higher than 85% since some of the questions are really tricky, and need to be read two or three times to get it correct.
4/7/04: Matt from Singapore says:
The passing score is very low, and it probably keeps the number of people passing at a reasonable level. I agree with SS' comments that getting anything over 85% is difficult. Understanding the non-deterministic behavior of threaded programs was very heavily tested on my exam. Being able to trace program flow and thread interactions will make the difference between failing and getting a good score.
4/7/04: Tamer from USA says:
I passed the exam lat June with a score of 88%, I didn't use javaranch.com, or anything other than the book of Kathy and Bert, it took me 6 months to do the exam, I had no Java experience, I started learning programming 3 months before preparing for the exam.
The exam is not easy, and you have to be well-prepaired, if you know java very good, you may get 60% at max., so you really have to focus on the exam objectives and preparation tools, the exam is real tricky.
4/8/04: Barry from Switzerland says:
I can certainly vouch for Marcus' Certkey and jchq.net, they helped me achieve my 90% score.
Barry (bartender on www.javaranch.com)
4/16/04: Joel from Qatar says:
They really need to up the cut off score. It sounds like a smart marketing strategy to get programming newbies to become Java certified instead of MCSD (C#/C++/VB) certified. Honestly, I think anyone who gets less than a 80% should, in all honesty, take the test over again to show Java proficiency.
BTW, isn't this the fourth month of the year and not the fifth?
5/3/04: William from US says:
What's the difference between:
1. Sun Certified Programmer for the Java 2 Platform 1.4
and
2. Sun Certified Programmer for the Java 2 Platform 1.2
?
Which one is better to take?
Thanks
5/13/04: Anonymous says:
The exam is HARD don't beleve these people
5/19/04: kaos says:
Actually a friend of mine said you need to get high scores or companies won't take you seriously(eg. if you barely passed)..
7/14/04: Anonymous from Malaysia says:
I agree that SCJP exam treats you like a human compiler. Passing the exam show that you have captured some basis of Java, but not means that you are a "Can Do" Java Programmer in the industry. It prompt that you are a dedicated person and have the entry ticket toward Java Certificates Door. For those who have passed, please review
it when you have time, else you waste your time and money.
The certificate will give you an opportunity to be interviewed, but not equivalent to "Hired". For those who scored below 80,
please focus more time on your weak area to increase you base. I think this is all I want to say. Good luck and with good will...
7/14/04: spiderman2 from Italy says:
if(SCJP.equals(Human Compiler)){
System.out.println("Test on core basis.");
if(score>=80){
System.out.println(
"You have capture enough basis.");
}else{
System.out.println(
"Keep on practise.");
}
}
//SCJP Not Guarantee Job Offered/Retrenchment.
Home | Microsoft® | Cisco® | Oracle® | A+/Network+ | Linux/Unix | MOS | Security | List of Certs Advertise | Contact Us | Contributors | Features | Forums | News | Pop Quiz | Tips | Press Releases | RSS Feeds Search | Site Map | Redmond Media Group | TechMentor Conferences | Tech Library Webcasts This Web site is not sponsored by, endorsed by or affiliated with Cisco Systems, Inc., Microsoft Corp., Oracle Corp., The Computing Technology Industry Association, Linus Torvolds, or any other certification or technology vendor. CiscoÆ and Cisco SystemsÆ are registered trademarks of Cisco Systems, Inc. Microsoft, Windows and Windows NT are either registered trademarks or trademarks of Microsoft Corp. OracleÆ is a registered trademark of Oracle Corp. A+Æ, i-Net+T, Network+T, and Server+T are trademarks and registered trademarks of The Computing Technology Industry Association. (CompTIA). LinuxT is a registered trademark of Linus Torvalds. All other trademarks belong to their respective owners.
Reprints allowed with written permission from the publisher. For more information, e-mail editor@certcities.com