In August 2002, Sun Microsystems introduced a new version of the Sun Certified Java Programmer (SCJP) exam, updated to reflect the changes to the Java platform over the past couple of years. As a result, the SCJP is now available in two versions: SCJP 1.2 and SCJP 1.4. The SCJP exam is the first in a series of Java certification exams offered by Sun Microsystems, and for many it is the first step to becoming established as a competent Java developer.
This article serves as a primer to SCJP certification. To help you prepare for the exam, we'll start with a point-by-point comparison of SCJP 1.2 and SCJP 1.4, outlining the most significant changes to the exam content. In addition, we'll talk about the broader issues of SCJP certification, such as how to prepare for the exam and whether the time and cost of certification are worthwhile to your career as a Java programmer.
Table 1 compares the functional differences between the 1.2 and 1.4 versions of the SCJP exams, in terms of cost, number of questions, and time allotted for completion, among other things.
Table 1. SCJP 1.2 vs. SCJP 1.4
|SCJP 1.2||SCJP 1.4|
|Exam type||Multiple choice, short answer, drag and drop||Multiple choice, short answer, drag and drop|
|Number of questions||59||61|
|Time limit||120 minutes||120 minutes|
|Total cost||USD $150 (or locally priced)||USD $150 (or locally priced)|
The syllabus for the SCJP exam is organized in terms of objectives. Each objective tests your skill in an area of Java programming. The most important changes to the new version of the exam are as follows:
- The AWT (Abstract Windowing Toolkit) objective has been removed. SCJP 1.4 contains no questions about GUI programming.
- The I/O objective has been removed.
- An objective on the Assertions API has been added.
- Some objectives have been strengthened. You can expect more in-depth questions in the following subject areas:
- Wrapper classes
If you've already completed all the training for the original exam, you might be tempted to just go for SCJP 1.2 certification. After all, who wants to study up for a whole new exam? If you compare the two exams, however, you'll find that there isn't a significant difference between them. You'll need to brush up on the Assertions API (if you haven't already done so) and pay more attention to the objectives that have been strengthened in the new version, but the overall exam content hasn't changed much. The point of IT certification is to reflect competency in the most current version of the technology, and the Java platform has changed quite a bit over the past couple of years. You're advised to take the SCJP 1.4 exam.
Preparing for any kind of IT certification is about both studying and practicing. You'll likely want to start with the
former and migrate to the latter. At present, several books are available for the SCJP 1.2 exam, but none have yet turned up for SCJP 1.4. Your best bet is to get started with one or two of the well-recommended guides to SCJP 1.2, but use the above list of changes to SCJP 1.4 to tailor your course of study. (In other words, don't waste much time learning about Java I/O or the AWT, but do read up on wrapper classes, Collections, and the methods
In addition to books, you should check out the numerous resources on the Web. Start with the essential Java technology specifications from Sun Microsystems, then scout around to find tutorials that address important topics such as the Assertions API or the Collections API. One nice thing about Web resources is that they're generally more up-to-date than books, so you can use online reading to supplement your less current reading.
See Resources for a complete listing of recommended books, articles, tutorials, and specifications.
After you've prepared with the appropriate books, browsed through the specifications, read the tutorials, articles, and notes, all that's left to do is practice. Start by getting yourself a good IDE and writing code. Choose programming exercises that help you focus on the exam objectives, and don't avoid the stuff you're afraid of. Better to make mistakes on your own time than in the exam itself.
In addition to toiling away under your own direction, there are two ways to simulate the test experience before you get to the real thing. Mock exams offer a good sampling of the kinds of questions you'll encounter and give you the opportunity to resolve them on your own time. Certification test simulators take the mock-exam experience to the next level, by actually simulating the test environment.
Another option is to hire a personal coach. Organizations that specialize in Java training provide a structured, disciplined learning environment, and most have a well-established record of success. While personal training costs more than many of the other training resources mentioned here, it can also be a more efficient path to certification, allowing you to quickly gain the skills necessary to passing the SCJP exam.
See Resources for a listing of IDEs, free mock exams, commercial certification test simulators, and companies that specialize in Java training.
If you're looking for the study-group feeling, try participating in an online discussion forum. Several broad-based Java forums maintain threads about certification issues, and some are devoted solely to certification. In a forum, you can quiz your peers about their study techniques, learn about some of the lesser-known certification resources, get support when you're stressed about the upcoming exam, and find out how others have fared in the effort to get certified.
See Resources for links to several active online discussion forums.
No short list of observations about the SCJP exam is sufficient as a complete study guide. To be fully prepared, you'll need to spend some time with at least one book on SCJP certification, as well as some of the other resources mentioned in previous sections. The tips that follow are, however, essential to your success in passing the SCJP exam:
- Many of the questions in the SCJP 1.4 exam will require code-based answers, so practice coding as much as possible in
preparation for the exam.
- As mentioned, some objectives have been strengthened in SCJP 1.4. Be sure that you're well-versed in the topics of wrapper classes, collections, and the methods
- Some aspects of the Java programming language do not come up as often in real life as they do in the exam, which can trip you up if you're not prepared. Be sure you understand how operators work in Java code -- particularly the
- Multithreading is a difficult topic, and it will come up in the SCJP 1.4. You should know the different ways to construct a thread in a Java program, have a good understanding of synchronization, and be familiar with the functionality of the different methods used in creating a multithreaded application. In all instances, you should be prepared to deliver code-based answers.
- Be sure you've memorized the inheritance hierarchy of the
Collectionsclasses. It will come in handy.
- If you're taking the SCJP 1.2 exam the I/O objective deserves special attention. It is recommended that you be aware of the applicability of various I/O classes, especially those related to the File I/O streams.
- The objective on Garbage collection will have questions asking how many objects are eligible for garbage collection at a particular point in the program. The answers to such questions cannot be verified with the help of examples because you cannot force the garbage collector to run. So attempt as many questions as possible on this topic from various mock exams; compare your answers to test your knowledge.
Java certification will cost you in terms of both time and money, and it is natural to wonder if the expenditure is worthwhile. The answer has more to do with your expectations than with the inherent value of certification. If you're expecting to get a job just because you're certified, you could be disappointed. A high exam score isn't all that impressive without real programming experience. The combination of experience and certification, however, could help your resume stand out in a competitive job market. Certification might not get you a job, but it could get you a better job. It can also be a big help when it comes to negotiating for a higher salary, lobbying for a promotion, or increasing your overall job security.
One of the less-appreciated values of IT certification is the experience itself. Studying for the SCJP exam is a very structured way to learn about the Java language, which is quite different from the day-to-day experience of programming for a living. Coming out of the exam, you could find that you have a more detailed understanding of how the Java language works and that, as a result, your overall Java programming skills are much improved.
Regardless of your reasons for going after certification -- whether you want the professional advantage or the personal challenge (or whether getting certified is a job requirement) -- your approach to the task will determine the success of its outcome. Good preparation, attention to detail, and a positive attitude are essential if you want to pass the SCJP exam.
For a free preview of the kinds of questions you might encounter in taking the SCJP certification exam, see the sidebar "Sample questions from the Whizlabs Java Certification (SCJP 1.4) Exam Simulator." To follow up on the many study aids recommended in this article, see the Resources section. Regardless of how you choose to prepare for your first Java certification exam, I sincerely hope the suggestions in this article will be helpful to you, and I wish you the best of luck in your exam.
- Khalid Mughal and Rolf Rasmussen's A Programmer's Guide to Java Certification (Addison Wesley, 1999) is a great reference if you're seeking a structured learning format.
- William Brogden's Java 2 Exam Prep and Java 2 Exam Cram are both excellent books. Previously published by Coriolis Group, the series is being relaunched by Que Publishing. Exam Cram is a quick review, whereas the older Exam Prep is a fairly comprehensive introduction to Java language fundamentals.
- Sun Microsystems's J2SE 1.4 API specs are essential reading for the SCJP exam.
- The Collections Tutorial from Sun Microsystems is helpful if you need to brush up on the Java Collections API.
- The Assertions Study Guide, also from Sun, is recommended reading before you take the new SCJP 1.4 exam.
- In his monthly developerWorks column Magic with Merlin, John Zukowski covers new features of JDK 1.4 including one installment on working with assertions (February 2001).
- "Understand the mechanics of Java's new assertion facility " (JavaWorld, November 2001) is a two-part introduction to how assertions work and how to use them in your Java development practice.
- You can learn quite a lot about the
equals()methods by reading Chapter 3 of Effective Java (PDF), available online courtesy of Sun Microsystems.
- See the developerWorks Java technology tutorials index for a complete listing of free tutorials.
- You can also find hundreds of articles about every aspect of Java programming in the
developerWorks Java technology zone.
- While it doesn't have all the features of some commercial offerings, jEdit is a good free and open source Java IDE.
- Whizlabs Software specializes in IT certification simulators, including the Whizlabs Java Certification (SCJP 1.4) Exam Simulator for J2SE 1.4.
- Whizlabs Software also offers instructor-led, online training for Java Certification (SCJP 1.4).
- Test yourself with the free sample exam in Chapter 6 of The Complete Java 2 Certification Study Guide, excerpted on java.sun.com.
- Marcus Green is a well-regarded Java certification guru. His Java certification site is home to an SCJP tutorial, free mock examinations, a certification discussion forum, and information about his Java certification training courses.
- JavaRanch ("a friendly place for Java greenhorns") hosts a community discussion forum and the SCJP rules roundup, a free certification mock exam.
- William Brogden's home page is a nice repository of Java certification information and resources.
- The IBM professional certifications site lists the available certification programs, categorized by brand.
Pradeep Chopra is the cofounder of Whizlabs Software, an e-learning company focusing on the development of IT certification test simulators and enterprise skill assessment system. A graduate of the Indian Institute of Technology, Delhi, Pradeep has been working in Java and related technologies since their inception. You can reach him at firstname.lastname@example.org.