views:

1613

answers:

8

What do you think about taking the Sun Certified Java Programmer (SCJP) exam? I think it's an essential requirement to learn the Java language properly. Without it silly programming mistakes are made as a direct result of poor understanding of the language's inner workings. Agree?

+1  A: 

I think like any certification it's not about learning, it's about demonstrating that knowledge in a recognised way.

I'm a RHCE (RedHat Certified Engineer), there's no way on earth you can pass that without experience of managing a Red Hat system. It won't help you to learn the system, and, you probably couldn't take a course in Red Hat then pass the exam, it's about benchmarking your ability.

The benefit of a standardised certification programme is that when employers see the certification they know you're of a given standard. That's why the better the certification the better value of having it, nobody wants and Andrew Taylor Certification in Java, I suppose everyone wants a Sun Certification in Java.

Andrew Taylor
A: 

@Andrew Taylor

I hear you, but I do disagree regarding the SCJP. You can pass it by learning, and coding experience won't help you a lot. To understand how Java really works, you need to sit down and study it. If you can do it on your own without the exam, great. Most people need urging.

Jonathan
If the question is "can SCJP help you learn java", I might agree, but your question was: "do you agree that SCJP is essential to learning java", which is a different question. I agree with most here that it is not essential.
Rolf Rander
+4  A: 

In a totally unregulated market like software development the value of any certification is questionable. Becoming a "Sun Certified Java Programmer" doesn't stop you from making "silly programming mistakes", it's a way of demonstrating to yourself (and potential employers) that you have a level of understanding of Java that Sun are willing to sign off on.

Just how convincing that'll be to potential employers is going to vary based on:

  • How much they trust the accreditation.
  • How much they value the accreditation.

With so many different courses available, in my experience most interviewers are more interested in your experience and will have there own questions and tests to figure out how well you understand the inner workings of a language.

That said. If you're keen to test yourself against a benchmark, finding a certification you trust and value seems like a good way to put yourself to the test.

Reto Meier
A: 

SCJP is a waste of time, I'd never written a line of Java in my life and I passed it with a weeks revision/learning. All it means is that you can memorise a whole bunch of (largely) useless syntax obscurities. I did do the test a number of years ago (5/6 maybe) so it may have changed since then.

David Hayes
+1  A: 

Does the SCJP make you a better Java programmer? In my opinion, no. I think the chances of an experienced Java developer passing the exam without specific preparation are low, whereas a novice Java developer can pass with preparation. Which would you rather hire?

Which leads the only possible reason for these certifications: the job market. I'm living and working in Switzerland and these guys are obsessed with bits of paper that say you've passed some test.

We all know that if you get through the first stage of CV/resume filtering that a manager or team that know their stuff will be able to tell the good from the bad Java guys, but sometimes getting through that stupid HR filter (must have 10 years experience and co-created Java with Gosling) can be tough.

Steven Dick
+7  A: 

Amongst the common critisicms one often hears about the SCJP certification are:

  • it teaches you how to be a compiler

There is too heavy a focus on primitive management, awkward badly written statements and almost every question has the potential answer "does not compile". Well.. there's a really easy way of knowing whether a line of code compiles or not. In most modern IDEs this means seeing if it has a squiggly red line under it. Now, don't get me wrong: I understand the value of coders being able to write compile-error-free code first time, but personally I find that these sort of tests don't really reveal any useful information about the examinee.

Many of the code samples in the questions are examples of just awful coding. The examinee is tested on knowing what some hideously crafted mess of code does. Yes this does have a value, and sadly it is something that is cheap to test. I also understand that a lot of programming jobs are about maintenance - but we'd produce far better programmers if they could be tested on why this code is bad or how it could be better. This is just not part of this test. Any half-baked programmer just would not write code that looks anything like most of the code used in the questions in this exam. This leads me on the next point:

  • it does not test any software design/engineering skills

This is not necessarily a problem with the exam; it is a problem with the perception of the meaning of the qualification. I've known many programmers who've easily passed SCJP who don't have the first clue on how to write a well subsystem, class, or damnit even a method. They still make a lot of common newbie mistakes.

To me, I think it is important that this exam is solely a bridge to being eligible to take the more meaningful exams (SJCD, SCWCD etc) that stand a better chance of saying something about you the programmer. Because this test does not.

Cheekysoft
+1  A: 

It seems I strongly disagree with the propositions of the original questioner, but most of the answers too (which also disagree with them) :-)

SCJP is not essential requirement for learning Java properly; you can be a hard-core Java expert without having anything to do with the certification. Also, with or without it silly programming mistakes may be made; SCJP does not really guarantee anything (as pointed out by Cheekysoft). It definitely reduces the chances of someone making certain kind of mistakes (ones due to misconceptions about constructors, threads, method overloading, visibility rules, and so on). But having taken the SCJP doesn't prevent someone e.g. from inserting all kinds of smells into code, some of which can be considered very silly: duplicated logic, overly complex and long methods or brain-dead object architectures.

Now, on the other hand, while I say it is not essential, I do think that the SCJP can be very useful in learning Java foundations better than you did before, and, in some ways, becoming a better developer. This surely depends on your attitude too. (If you just cram for the exam thinking constantly that "this isn't gonna help me in the real world", it probably won't.)

From Steven's example, I'd (probably, depending on the people) hire the experienced guy. But I fail to see how that proves that "SCJP does not make you a better programmer". SCJP is no substitute for real-world experience, obviously. But I'm fairly sure that if that experienced developer were to take the exam, the studying process would make him a better Java programmer.

To sum it up, depending on your industry and situation, the primary value of SCJP, for you, may indeed be the job market, and getting past some HR filter, but regardless of that, I claim that for most Java developers it can do a lot of good. Personally I took it a few years ago, and have written (more) about my experience here.

Jonik
A: 

SCJP & other Java (Sun) certifications are very usefull to programmers,students,etc.

J.SIVAKUMAR