| Related Links:
Java
Certification
Is the Java certification program offered by Sun really the route to a higher
salary and better quality of code for businesses? I have my doubts.
In my fifth year of Java programming, after being involved in several
distributed developments for large companies, a prospective employer tested my
ability. "Don't worry," he said, "you'll have no trouble; this is for
beginners."
Unfortunately I failed and was embarrassed - it was a dismal score. He asked
me why I had scored so low and with my career and self-belief crushed and broken
and in ruins on the grey carpet-tiles, I mumbled something about IDEs, esoteric
details of thread control, and tricky default behavior. I dashed from the
building and imagined him later berating the agent for sending somebody so
obviously lying about his experience.
But I wasn't lying. For 10 years I hadn't created a source file or method
name from scratch - the IDE had done it for me. I never had cause to use Java
threads, and I avoided the use of default behavior on principle. When I first
began programming in Java, integrated development environments already existed
that created the files and provided all the correct packages and imports.
Never once was I concerned with the correct syntax for the main() method or
the Java source file. What mattered to me was creating an understandable design
and hitting the business goals. As a team leader, if one of my coders had
written examples like the ones I'd been tested on, I'd have sent him or her on a
training course to learn the language.
I later discovered that the interview questions had come from the Sun Java
certification. While finding out more about certification I came across the
following quotes on the Web:
"I am a Java Certified Programmer and the only thing I've gotten out of it is
the ability to say that it's been exactly useless to me."
"I had hoped that certification might carry some clout, but it isn't turning
out that they have as much clout as the certification vendors would have you
believe."
"I'm an SCJP and SCJD. They're absolutely useless in your career."
This attitude of irrelevance is confirmed by the statistics on JobServe (the
largest job database for IT personnel in the UK: www.Jobserve.co.uk). A search
for Java returned 1,498 current jobs, while a search for Java and Certified
returned just 10 current jobs. About 0.7% of positions ask for certification.
I decided to take the test despite the evidence and discovered that learning
Java for the real world and learning it for the exam are not the same. The exam
curriculum is well intended but seems to encourage dubious practices that only
an experienced programmer would know about. After passing with 80%, I was left
wondering why Sun had created such devious questions. My rule of thumb is that
if you can't comprehend it immediately, it's wrong. Many of the questions in the
exam require careful study - the exact opposite of what we, as programmers,
should be trying to achieve.
Instead I would like to see the exam concentrate on the process of
programming rather than the code itself; to me you can be a first-class
developer, without knowing all the grammatical details, by concentrating on
clarity. Businesses require the production of quality, maintainable code in a
timely manner, and this can be tested. For example, the following subjects
should be covered:
- Comment this section of code.
- Rewrite this code to be self-documenting.
- How to avoid threading. The proliferation of unnecessary threading is a
personal irritation. I went through 10 years of development on huge systems
without needing to create threads, and now they appear everywhere.
- What is wrong with this dry run?
- Write the code this flow chart represents.
- Provide suitable names for these classes.
When considering the
testing of ability, it is important to remember that programming does not exist
in isolation but side by side with business goals: deadlines, quality controls,
and maintenance. It's not enough for a programmer to know the language - indeed
I argue that in some heads, knowing the language too well can even be a
hindrance to readable code. Yet the business aspects of development are entirely
missing from the programming exam. It does not test language so much as it tests
grammar, but the two are very different.
You can learn more about the Java certification program at http://training.sun.com/US/certification/java/index.html.
Related Links:
Java
Certification
|