This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
HI, I am preparing for sun certification(SCJP1.4). But it is heard that 1.4 will be soon replaced by 1.5 and 1.5 has numerous changes. Should i wait for the 1.5 exam? Please give me your valuable advice.
Here and the in the Jobs Discussion forum, the value of certifications and graduate degrees is often debated. Some argue that certifications have no value, because the exams don't guarantee that a person will be a good programmer or designer. Others argue that the same is true of any degree. Of course, both arguments are correct, but that doesn't mean that certifications and degrees have no value. Both have a value, but sometimes it's difficult for an employer to determine what that value actually is. Each time I read a thread that discusses a new direction for an existing certification, I start thinking that it is becoming even more difficult for employers to understand and appreciate the certification.
I think that Sun's first mistake is the attempt to sort programmers into one of two bins: one bin for guaranteed programmers and a second or undefined programmers. Those that have passed the exam populate the guaranteed group. The undefined programmers are those that tried and failed or never tried at all. I think that most employers recognize that such a simplistic categorization provides very little information.
A useful certification system would allow an employer to make some predictions concerning the level of productivity of a programmer. The current system does not even begin to approach that goal. The current system offers zero information on the programmers that have been sorted into the "undefined" bin and the level of variation among those sorted into the certified bin is far too extreme. Really, the existing system provides very little useful information. It is not surprising that many employers don't respect it.
The programmers that are certified are suppose to have six months of experience with Java programming, but the current system has no way of tracking how long a person has been working with Java. A better system would at least be able to provide an employer with some information on the number of months or years that the programmer has been working with Java.
Every employer knows that productivity as a Java programmer isn't something that a person acquires after passing just one certification exam, and this JavaRanch Saloon is a perfect example of why employers are not going to be convinced by just one exam. How many times have we read a post from a person that claims to have no previous experience in Java, but he or she managed to pass the certification exam after working through one Java certification study guide over a period of three weeks? Does any employer really want to pay a high salary to a person that read one book on the Java programming language over a period of three weeks?
Learning a programming language is a little like learning martial arts. It can't be done by passively reading one book in less than one month. Instead, the process of learning a programming language is an evolutionary process where the programmer learns new skills day by day, month by month, and year by year just as a student would in any martial arts system. Who would know what to think of students of a martial arts system that sorts all of the students into only two bin--one bin for those that have completed one exam and one bin for those that are undefined? What could you say about the black belts of that system? What could you say about everyone else? Just as learning martial arts is an evolutionary process, the process of learning Java is also evolutionary. The Java certification process should acknowledge the evolutionary nature of learning by certifying milestones along the road to becoming a more productive programmer.
A Java certification system that would provide some useful information about those that are certified would be a system such as that used for Judo, Jujitsu, Karate, Tae Kwon Do, etc. Of course, there would be no need for programmers to show up for work each day dressed in a white gee with a brightly colored belt. Instead, a piece of paper to hang on the wall would do just fine. Even so, the basic goal of the system would be to track the progress of the programmers so that some statistical analysis could be done to determine how higher levels of certification correlate to increased productivity. For example, Sun could work with cooperating employers to collect some data that would provide some information about the performance of programmers at various levels of certification. Of course, not every employer would have that kind of information; but some employers would because they would use productivity data for project planning purposes.
Is there any reason to believe that higher levels of certification would result in improved productivity? I'm sure that it would. Each level of certification would represent more tools in the programmer's toolbox and a better understanding of each tool. Programmers with fewer tools or only a minimal understanding of each tool are likely to produce less debugged code than programmers that are working with the right set of tools and are able to use each tool effectively.
Programmers at the lower levels of certification would be more likely to burn up lots of time searching through reference material for the solutions that they need for their work. Higher levels of certification would indicate that the programmer is likely to spend more time working on the project and less time searching through reference material. Furthermore, higher levels of certification would improve the productivity of the entire development team, because programmers equipped with the proper tools would spend less time bothering the more qualified team members.
To make a long story short, it appears that Sun is thinking about new ways to improve the 1.5 version of the exam by redefining the two bins into which Sun has been sorting Java programmers. Any such attempt will fail to produce acceptable results, because the problem is not the definition of the two bins. Instead, the problem is the belief that two bins provide an employer with enough information to estimate the productivity of a programmer. What is needed is to recognize that learning Java is an evolutionary process and the certification system should reflect that fact. Sun can improve an employer's appreciation for the certification by developing a certification system that provides useful statistical information that can be used by the employer to determine who has the right tools and the necessary understanding of each tool to perform a task at a given level of productivity. Of course, we are talking about statistics so the productivity of every certified program is not going to fall within the same area of the curve. Instead, the statistical information would only indicate what is likely.
Just one more thought here. An iterative certification process eliminates an employer's suspicion that the certified programmer has simply completed one iteration of Cram, Certify and Forget. If each level of certification reviews previous material, then the employer knows that the certified programmer has demonstrated competence on each topic on multiple occasions. After three or four iterations of the Cram and Certify cycle, the Forget stage of the cycle is likely to be replaced by a new state called Remember and Never Forget. At that point, the certification will become an indication of what the programmer really does know rather than an indication of what the programmer knew on the day of the exam and maybe for only two or three weeks following the exam.
Dan Chisholm<br />SCJP 1.4<br /> <br /><a href="http://www.danchisholm.net/" target="_blank" rel="nofollow">Try my mock exam.</a>