Sun Java Programmer Plus Certification exam vs Sun Certified Java Developer exam

As a followup to Sun Java Programmer Plus Certification, I have some remarks on how the new exam relates to the old SCJP and the new SCJD.

Today I pulled out my SCJP (Kathy & Bert) book and re-read the introduction as to the purpose of the exam.  Right around page xxvii I found some interesting quotes that relate to the new exam – even though the book was written years before the Programmer Plus was envisioned.

The SCJD has you work on an assignment at home at your leisure. The onsite exam is an essay to show you actually worked on the code.

No. It may prove you read your code. It may prove you understand your code. It doesn’t prove you wrote your code. A friend could have written it and had you study it. The Programmer Plus is proctored programming – which really does prove that YOU wrote your code.

On the SCJP – “But does it mean that you can actually develop software in Java? not necessarily, but it’s a good head start.”

A head start for the person learning – sure. What about the employer? I thought the point of the SCJP was to show the new hire new a certain about of Java. One would think coding in Java would be part of that. This is a big part of why I’m excited about the new exam.

The Sun Certified Developer Exams is unique to the IT certification realm, because it actually evaluates your skill as a developer rather than simply your knowledge of the language or tools.  Becoming a Certified Java Developer is, by definition, a development experience.

My first thought is Cisco has a hands on portion – but that’s networking, not development.  My second thought is great, but it’s a bit advanced.  What about an entry level developer who doesn’t yet know Swing/RMI? For that matter, many companies don’t use Swing or RMI – how is it the first certification requiring coding uses these two technologies?  The Programmer Plus addresses this.  Coding basics are important.

A comparison amongst the three exams

Old SCJP New Programmer Plus SCJD
Programming required offsite No No Yes
Programming required onsite No Yes No
Multiple choice Yes No No
Cost $300 TBD $375 +$200
Scope Core Java Core Java RMI, Swing, etc

Which should I take?

Since the new programming exam is still in beta, this is a moot point at this time.

  • Old SCJP – If you’d like to take the exam in the near future, this is the one to take.  If you aren’t sure, there’s still a shortage of information on the new exam and the old materials will make you learn a lot you are likely to know on the new exam.  Sun is promising 90 days notice of the exam being retired.
  • New Programmer Plus – If you aren’t in a hurry to get certified and like this style better, you may do well to wait.
  • SCJD – The SCJP (or programmer plus) is still a pre-requisite for the SCJD.

[edited to fix table]

Sun Java Programmer Plus Certification

Oracle/Sun is reinventing the SCJP into the Sun Java Programmer Plus Certification.  The big difference is the new exam will require hands on programming.  Good for them!

The original exam

The stated goal of the original SCJP is “demonstrating proficiency in the fundamentals of the Java programming language.”  Unfortunately, it does so completely through multiple choice exams.  Which turns it into an exercise in how well one performs on such an exam.  Whether it’s memorizing obscure details or learning how to “out-guess” the exam, that’s not what makes a proficient programmer.  Programming is!

Benefits of the Programmer Plus exam

Sun calls this a “performance based” exam because it involves performing the skill it is testing.  This is great because being able to program is what being a proficient programmer is all about.  I’ve met SCJP certified candidates who can’t write a simple program.  Presumably they cheated, but this is no longer possible with the a proctored programming exam.  I look forward to seeing Programmer Plus certified candidates in the future.

Some sticky points

There are a few areas that a hope Oracle/Sun are thinking about with respect to the new exam:

  1. Memorizing is not the end goal. I sincerely hope use of the JavaDoc is allowed during the programming exam.  Developers use JavaDoc in the real world when solving programming problems.  Some people say that knowing the API is a sign of experience.  I disagree.  I think knowing what is available and being able to find it quickly is the sign of experience.  Someone who hasn’t studied properly or practiced enough either won’t know where to look or will take too long to find it.  Now banning google I would understand.
  2. A sufficient question bank.  I hope there are enough questions and sufficiently changing questions so people can’t scam the new exam.  Whether that’s through template-able questions that change each time or introducing new questions regularly.  In the United States, the College Board themselves publish the real SAT questions.  And yet practicing them doesn’t diminish the test’s ability to test what it does.  You can say what you want about the value of the SAT, but it certainly doesn’t rely on people not knowing real questions like the current SCJP does.
  3. Not encouraging anti-practices. – Some schools encourage students to things in a way that goes against how industry practices.  As I blogged in educating software developers, my graduate school asked us to review whether a classmate’s code compiles.  (Non-compilable code is useless.)  The Programmer Plus exam says it checks for compilation and test fixtures passing which is good.  Hopefully there aren’t any other anti-practices lurking.

In summary

In summary, I think having programmers program on a programming exam is a great step forward.  Hmm.  “program” three times in a sentence – is that a tongue twister.  I look forward to seeing it play out.

klocwork – a review

Since I wrote a review of JTest, I decided to do a review of the other commercial product I tried in the Java static analysis family – Klocwork

Installation

I ran into some trouble installing the trial Eclipse plugin. I saw a zip file to use instead of the update site.  I then unzipped it rather than pointing to it as a local install.   Which appears to work – you see klockwork show up in the Eclipse preferences, but get an error when trying to actually use it.

This gave me the opportunity to deal with their tech support.  Which was very good – they identified the problem correctly and told me to re-install properly.

Trial limitations

The trial limits you to scanning 300 files at a time.  This is perfectly reasonable – I can’t think of a reason you’d need to do more than that to see if you like a product.  I wanted to scan the same files as I had with JTest to compare output.

Since our product has more than 300 files, I thought I would just pick a few packages or classes with known issues.  I then learned they mean you can’t scan a project with more than 300 files rather than that you can’t scan more than 300 files.  Okay.  I used an Eclipse refactoring to move a bunch of packages to another project.  I’m not sure what this accomplished via the limit in the trial.  I was still able to scan everything.

The actual rules
In addition to the common static analysis rules (null ahndling, return values), some more interesting rules jumped out at me.  These include:

  1. Log forging – unvalidated input going into a log allows attacker to influence what logged
  2. If statement always evaluates to true/false – I like this was in the default rule configuration.
  3. Unchecked user input used in SQL query.  – It’s not user  input in our case, but a very good check to get you to manually review the code.

Summary

I also liked the minimizing of false positives.  Aside from my installation difficulties, I was very happy with the experience.