Yesterday I received an A4 piece of cardboard from Sun Microsystems signed by Scott McNealy. I peered at the signature and angled it to the light to see if it was a printed signature or a real one from the pen of Mr. McNealy himself. It was hard to tell.
The piece of cardboard said that I had "Fulfilled all requirements as a Sun Certified Programmer for the Java 2 Platform." Hooray! All those nights trawling through an unbelievably thick book had paid off. Not to mention the time and money invested in a five-day Java course from Sun Educational Services. I stopped short of buying the mock exam from Sun, figuring I had already contributed enough to the coffers of their education division.
I sat for the exam just before Christmas in a small room at the top of an office block in Edinburgh on a dreary Monday morning. Along with five other candidates, who were doing various other exams such as Cisco and Microsoft, I sat in front of a slightly dated PC, clicked Start, and it was straight into question 1 of 59.
After an hour or so, it was complete and I was pleasantly surprised to see 81% pop up on the screen once I had clicked the dreaded Submit button. 81%!? Unheard of! I hadn't achieved more than 70% in any of the mock exams I had taken.
After the euphoria had died down (about two days later) I started thinking about the whole validity of certification exams and my own motivation for enduring the process. I use the word enduring on purpose because it was not an enjoyable experience. It was like going back to school, memorizing pieces of information that seem totally and completely irrelevant, such as remembering all the adapter classes in the AWT API. Now, about one month after the event, I've forgotten a lot of these facts because, frankly, they're irrelevant.
What does it really say about a programmer's skills? Does it say "He must be a good programmer because he's Sun certified?" I don't think so. In fact I'm fairly convinced that someone with no Java experience at all could, with the help of one of those big fat "get certified" books, pass the exam. It's similar to any other exam - it's a question of remembering certain facts that the examiner requires you to remember. My programming skills have not been enhanced by this process. I may be able to reel off the main methods of the java.lang.Math class without looking at the documentation, but does that make me a better programmer?
Why did I do it? I did it because I'm playing the game. I'm playing the game invented by Sun (and all other companies that offer certification exams) and played by employees and employers. I don't think employers are naïve enough to think that "Sun certified" on a résumé means "great programmer." What it does say, however, is that this person has made an effort to become better, to improve his or her knowledge, and is willing to work.
I'm glad I did it. It gives me a sense of confidence and achievement. Also, I got a wee badge that says "Sun Certified Programmer" that I can wear to annoy my colleagues and listen to their inevitable mocking.
To get some real Java programming credentials under your belt, I would suggest that the next stage of the exam process, the Sun Certified Developer for Java 2 Platform, would be a worthwhile exercise. You actually have to write some code. The prerequisite for this is the programmer's exam, so in a way, it was a necessary evil.
After further examination, it seems Scott McNealy's signature on my certificate is printed and not lovingly and personally applied. Oh well. At least my résumé looks slightly more convincing than a month ago.
Roberts, S., Heller, P., and Ernest, M. (1999). Complete Java 2 Certification Study Guide. Sybex.
Jaworski, J. (1999). Java 2 Certification Training Guide. New Riders Publishing.
(it's harder than the exam)
Keith Brown has been involved with Java for many years.
When he's not coding up client solutions for a European
Java company, he can be found lurking in the corridors
of conferences all around the world.