I've been considering taking the Java Certification (Programmer & Developer) exams. If the company pays, it seems to be a no brainer, but if I have to pay for this myself, I am not sure. Has anyone found the certification programs to be worthwhile in their career, or even self-development? -- ChadThompson ---- I took the programmer certification in April 2002 and it hasn't really had that big an impact on my career. On the other hand the impact on my knowledge of the JavaLanguage was immense. If you take the time to study deeply for the exam, aim to get 100 % and write lots of little programs to test your understanding of the concepts, then certification will make you a better programmer. I think this is because people are ProgrammingByCoincidence far more often than they realise and going through the JavaLanguageSpecification and the Complete Java 2 Certification Study Guide (the big one) will force you to ''really'' think about how and why Java works. Having said that I haven't found the time to take the later exams. Take a look at my website for exam tips: http://www.oshineye.com/javacert.html. And be careful of the Java 2 Exam Notes book (the little one) as it has lots of truly evil mistakes like code that is valid C but not Java. -- AdewaleOshineye ''Sounds like a good idea. OTOH, if you don't really need the sheepskin, you could get the same benefit without sitting for the test. Then you're only out the price of the study guide.'' ---- I took the programmer exam and found it a worthwhile exercise, because it covers all aspects of the language, even those that you usually avoid / code around / get right but don't know why / use seldomly. E.g.: Exact operator precedence, implicit casting rules, all variants of inner classes etc. The exam forces you to think through and learn these deeply, so later on you don't get distracted by such issues so much. -- FalkBruegmann (working on the developer exam these days) ---- If your Java experience is weak, certification is likely to be a significant help in getting a Java job. ---- ''Moved from SoftwareCertificationDiscussion:'' In the case of Sun's Java Certification (which appears to be quite different from most of the Microsoft and other types discussed here), I found it a very positive experience. I've taught myself most of the programming languages I've ever used, including Java. But when I had to study for the certification exam, I dug into the language details far more deeply and comprehensively than I ever would have on my own. And yet, the exam didn't feel like it was trying to nail you on little nit-picking details, so much as making sure you had a solid understanding of the ''spirit'' of Java, and of key concepts across ''all'' aspects of the language, not just what you happen to use on one project or another. On the other hand, having my Java Certification has been of '''no''' use in getting a job developing in Java. Job interviewers couldn't care less. One argument for certification would be that filters out dilettantes and lazy people. In general, I support efforts to help software engineering evolve into more of a profession. -- AndyMoore ---- I've seen otherwise capable teams flounder because they didn't have a comprehensive understanding of Java. I'm not talking about green newbies either. After you've learned four or five programming languages you might not think learning Java would be much effort. But it is the subtle little things. Things you might not bother paying attention to unless you knew you were going to take a test. My advice to managers is to have at least half of your development team Java certified. Pay for the test. Buy the books. Allow time in the day to study. Make it a group activity, not a discriminator. Forgive those who don't pass. -- WardCunningham Let me add to that perfection. -- Forgive those who have not passed, yet. Try, try again. -- MichaelFinney Excuse my disbelief. But what exactly is so subtle about Java that studying towards certification reveals? Can you provide some examples? -- CostinCozianu ''Could people add examples to JavaSubtleties.'' It's not so much that it is particularly subtle (although studying for the exam does reveal some subtleties such as type casting, operator precedence, constructor chaining, wait/notify, etc.), it is more that the exam requires knowledge of several different areas of Java which you can get by without knowing, but which are really handy when you do know them. Java's pretty big (core libraries, extensions, and dozens of APIs) and it isn't uncommon for someone to reinvent the wheel. A good example is the collections framework. Despite its clunkiness, it is a fact of life if you're programming in Java. I've seen many times code which loops over an array to add its items to an ArrayList, when a simple Arrays.asList(anArray) would do the job. Failing to use a HashMap or Hash''''''Set when it would be appropriate is another common example. That said, you get more out of studying for the exam than you get out of actually completing the exam. Currently, the minimum grade for the programmer exam is 52%, which is a breeze if you've studied to cover your weak spots. The programmer exam doesn't prove you can program, it proves you know the fundamentals of Java syntax and semantics (which is better than not proving anything at all, I guess). If you want to get the most out of the experience, shoot for 100% as someone above mentioned. The developer certification may be more challenging, I don't know. ---- Forgiveness is all well and good but what do you do when the people who pass aren't those the organization regards as its best programmers? I've seen organizations that mounted a big push to get their entire team certified and then had to deal with a situation where all their so-called architects failed miserably. Once this happens, the tendency is for those who failed to try to denigrate the exams whilst those who passed tend to get disillusioned. If the people who you're meant to be learning from aren't up to scratch and get exposed but refuse to accept that they might have something to learn from you, what can you do? Leaving doesn't really solve the problem of AntiExperience, as you're just rolling the dice once more. ---- I have never once needed any certs to get a job; references from respected peers always made the difference. If you want a more in depth knowledge of Java, start with http://www.javaranch.com, play the rules round-up game. Then maybe buy a book. Don't waste your money taking a test that no one cares about. In fact I wouldn't waste my time taking it, even if someone else was paying. There are far more useful ways to spend your time. True: 1. certifications may help, but it depends on the person and the recruiter, 2. reading, programming, and discussing will improve your skills (actually, you will probably need to do those 3 things in order to get your certification), and 3. that's right: not everybody cares about the certification. On the other hand, are there more useful ways of spending your time? Like everything, it depends on your current knowledge and the value of your time. Getting certified increases your knowledge of Java, and broaden your horizons, because it helps you to understand and modify what others have done, and will provide you the tools to develop better programs. At US$150, the test will probably cost you the equivalent of a few work hours, but it may save you a lot of hours trying to understand somebody else's code, or to create better solutions. If you do Java for a living, and you are not sure if it's worthy, do any of the mock tests on the Internet, and, if you don't pass it, go for the certification. -- LuisColorado