Since the Java programming language was introduced by Sun Microsystems in 1995,
it has developed very quickly. Java is object-oriented and well designed for re-use,
but where it really scores is in Web site development. Enterprise Java is a complete
range of technologies covering the client side (Java Server Pages, servlets, applets);
the middle-tier business layer (Enterprise Java Beans); and back-end, possible
legacy databases (Java Database Connectivity), plus all the connecting communications
technologies, including RMI and CORBA.
Of course, it can't do any of these things unless it's in the hands of a competent
professional. This is where Sun's Certified Java Programmer (SCJP) exam comes
into play. It will test your knowledge of not only the Java language, but also
threads, layout managers and more. If you're looking to become a well-rounded
Java programmer (or want to move up to Sun's Developer certification), this
is the exam for you.
Exam Basics
The SCJP exam -- now covering the Java 2 Platform -- is aimed at programmers
already experienced in using Java. It covers the following topics:
Declarations and access control
Flow control and exception handling
Garbage collection
Language fundamentals
Operators and assignments
Inheritance, overloading and overriding
Threads
The java.awt, java.lang and java.util packages
For a complete list of objectives tested, click here.
According to Sun, the exam currently features 59 questions, with a pass rate
of 61 percent. The fee is $150 (U.S.), and you have two hours to complete the
exam. If you fail and have to retake it, you pay the fee again and you get a
different random selection of questions. This means it's going to be just as
difficult every time you take it, so it's best to prepare properly and get it
right first time.
The SCJP Experience
The exam is administered by Prometric testing centers (www.2test.com).
When you arrive at the test center, you have to produce proof of identity --
something with your signature and photograph on it. You'll leave all your belongings
in a locker, then you're shown into a cubicle with your computer, on top of
which is a camera watching you all through the exam. This way, the testing center
ensures sure you don't have any crib sheets, place a call to a friend or send
semaphore messages out the window. A little indicator at the side of the screen
shows you how much time remains. One nice thing about this exam is that the
testing software allows you to review questions you've already answered, or
any that you left blank -- in other words, you can go back.
The questions themselves come in three styles:
Multiple-choice with one correct answer.
Multiple-choice with several correct answers.
Questions requiring a typed response.
-- advertisement (story continued below) --
Many questions involve studying a chunk of code eight to 20 lines long and
deciding what the outcome will be -- whether it will compile, produce run-time
errors, or its output's numerical value. Each is time-consuming and demands
detailed attention; I found that I couldn't relax for a moment during that two
hours. In fact, this is the only exam I've ever taken where I was still shaking
with nerves at the end.
This is a rigorous exam. For example, with the multiple-choice/multiple-answers
questions, all the correct statements must be selected and none of the wrong
ones -- otherwise you simply get no credit at all. When I took the exam last
year, there were no clues given about how many options you should choose: It
could be anything from zero to all. Lucky for you, that's been changed -- the
current version now tells you how many to choose so you'll know when to stop
sweating and proceed to the next question.
With this exam, you can't rush: Don't assume the first thing that looks correct
really is. Always look at the other choices -- you may find one subtly different,
but that subtlety is what's going to make the difference as to whether you pick
up a vital point or chuck it all away.
At the end of the exam, you'll get an overall score, plus your score for each
of the major objective sections. This breakdown helps if you need to brush up
your skills for a re-sit or just want to improve after you've passed.
What To Watch Out For
In general, this exam is rather fair, but there are some things that can trip
you up. For example, the exam is rather artificial in asking questions about
the java.util, lang and awt packages without allowing access to the documentation.
You wouldn't do this in real life. But, as these packages are so commonly used,
it's actually quite helpful in speeding up your practical programming skills.
Tip: A lot of predefined classes come with the software development kit, and
you have to learn your way around them. That way, you can save yourself a lot
of time and effort when writing real programs. Related classes are grouped in
packages. For example, the java.io packages contain all the classes related
to input and output. Packages awt, lang and util are the only ones you need
to know for the exam, but others are equally essential for practical work.
You might be surprised to see advanced topics -- such as threads -- in a language-fundamentals
exam like the SCJP, but one of the hallmarks of Java is that multi-threading
is actually part of the language itself, rather than coming directly from the
platform. As a competent Java programmer, you should be able to define and start
threads, protect data against corruption when two or more threads try to access
it at once, and know how threads can communicate with each other.
This exam also tests your knowledge of layout managers, which are part of the
java.awt package. As a SCJP, Sun expects you to know how to break down a complex
GUI into a collection of nested panels, each using its own layout manager. You
must also master how the layout manager will affect the size and arrangement
of components within a panel
Another area to know: Memorize the inheritance hierarchy of exceptions -- otherwise,
you won't be able to answer the questions on overriding and catch clauses.
And don't be surprised if you're asked about shift operators. In real life,
it's only when you interface with hardware that you use these. Even so, you
should know the effect each operator has on the magnitude and sign of the various
data types.
How I Prepared
I started my study of Java by sending myself on a purely theoretical training
course. Then I dipped into six or more textbooks, practiced some mock exam questions
and wrote a few little programs. I practiced the mock questions until I was
averaging 80 percent correct and then booked my exam. In the final week before
the exam,I read two chapters per day of my exam-revision book and did the tests
at end of chapters.
Sun offers a variety of instructor-led courses to teach the fundamentals of
Java. Its five-day course, "SL-275: Java Programming Language," is
a very good introduction to the language; object orientation and UML; and the
tools, facilities and characteristics of Java. If you come from a C++ or other
object-oriented background, this course is suitable.
Tip: One of the things you learn in SL-275, though it's
not on the exam syllabus, is the javadoc tool. This is a real boon to practical
software development. This tool makes it really easy to re-use your own software
and keep its documentation up to date. You just "recompile" your
source code with the javadoc tool -- it's as quick to bring your documentation
up to date as it is to make your final successful compilation of your modified
code.
Sun provides other courses catered to those at different starting points:
SL-110, Java programming for non-programmers.
SL-210, Migrating to Object Oriented programming with Java technology.
SL-265, Java Technology for structured programmers.
Unfortunately, none of these courses coincides exactly with the syllabus of
the programmer's exam. It's recommended that, after taking the SL-275 course,
you spend a full three months with Java before attempting the SCJP. This is
a realistic expectation -- you'll need time to digest all the new knowledge
enough to be able to see through the subtleties of the questions.
If you have good self-discipline and are working on a budget, you can self-study
with books. My favorite is "Complete
Java 2 Certification Study Guide, Second Edition" by Simon Roberts,
Philip Heller and Michael Ernest (Sybex 2000). There are mock exam questions
at the end of every chapter, and the accompanying CD contains an exam engine
that will generate a 60-question exam on demand, using a format very similar
to the real thing (the fact that this book is partially written by the lead
author for the actual exam may have something to do with this). A few of the
exam questions have almost trick answers, and this book will help you to get
used to the way Sun phrases things. With it, you can bone up well enough to
pass the exam without much hands-on work (I'm sure Sun hates me saying that,
but this book is that good!). However, the book can get boring, so you're really
better off combining it with some practical work. Grab a textbook with a lot
of examples programs, run them, experiment and modify them and see what happens
(don't neglect to write some programs from scratch, too!). "Java:
How to Program," by Deitel and Deitiel, Prentice Hall, is an excellent
book for this purpose. It features a lot of programs (all of which work!) on
its accompanying CD. Other good books include "SAMS Teach Yourself Java
2 in 21 Days," (but avoid the 24-hour version!) and "Thinking in Java,"
by Bruce Eckel (Prentice Hall, 2000).
To do your own practical work, you need the Java 2 software development kit.
You can download this free from java.sun.com.
Also, it often comes on the CD accompanying books. It's easy to install, and
you'll soon be up and running.
Several Web sites are useful in preparing for the exam. Start with java.sun.com
for live expert chats, forums and tutorials. Next try www.gamelan.com,
which has tutorials -- some of them aimed specifically at preparing you for
the programmer's exam -- plus quizzes and news items. There's also www.javaranch.com
and www.jchq.net, to name a few.
How the Exam Relates to Real Life
Does the exam help train good programmers? I think so. It helped me get a firm,
precise foundation knowledge of the language, so now I know what Java can do
and I know where to start with a particular problem. I previously learned C
and C++ on the job in a haphazard, need-to-know way, and I still feel shaky
in my grasp of the fundamentals. I can write a Java program much more quickly
than a C++ program because of my better foundation in that language -- all thanks
to this exam. Best of luck with your SCJP experience.
What's your take on the SCJP exam? Post your comments below!
Dr. Christine Connolly, SCJP, is a freelance Java trainer. She has developed computer programs for scientific and engineering applications in a variety of languages including Fortran, Pascal, C, C++ and Java, and is an experienced teacher and lecturer. She has recent business experience developing a research idea into a commercial product.
There are 34 user Comments for “Hot Java: An Inside Look at the SCJP Exam” The current user rating is:
Page 1 of 4
10/4/01: Theodore says:
I think I agree very much with the reviewer's feeling on the exam - even later that day, I was still shaking after taking it. Probably the single-most terrifying certification test I've taken yet... but also the most rewarding, to have that certificate up on my wall. It definitely weeds out the ones who know what they're doing from the ones who don't.
10/18/01: RHYS says:
I'd go along with the reviewer's comments, too. The SCJP exam is a good test of knowledge of the Java programming language and the most recent test I did was significantly harder, I think, than mock exam questions based on the earlier versions of the test. You really do have to know your stuff to pass it with any degree of comfort.
11/6/01: ravi says:
i agree that it is difficult but is manageble. one has to get used to answering tricky questions.
11/6/01: Anonymous says:
it is difficult but manageable. one has to be careful with tricky questions.
11/6/01: ravi says:
it is difficult but manageable. one has to be careful with tricky questions.
11/6/01: ashwin says:
hi
11/12/01: Santosh says:
Some questions are tough and you might get dizzy reading long code for some of the questions. But a majority of the questions are straight forward. Sections that suck are AWT and I/O. Threading questions are a little tricky. Anyone can pass this exam with a little experience and reading the certification books.
11/13/01: John says:
it is difficult but manageable. one has to be careful with tricky questions.
11/13/01: Errrm says:
it is difficult but manageable. one has to be careful with tricky questions.
2/11/02: nnn from nnn says:
the exam is very hard i a dvice not to take a ristk and do it it is a wastage of u r money friends
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