I run a website that specializes in helping Java developers prepare for interviews (check it out over here). One of the most common questions I get emailed is about the value of the Oracle Certified Java Programming (OCJP) qualifications, formally SCJP. “Will they help me to get a new job?” and “will it help me to become a more experienced Java developer?.
The answer of OCJP is certainly an overwhelming "no." It’s a terrible learn-by-rote qualification that proves you’re really good at studying a textbook. It doesn’t help you become a better developer, in fact it has absolutely no bearing on your ability as a Java dev. I know people who actually mark a candidates resume down for having it listed.
OCJP is just a money churner for Oracle and an excuse for companies to spend their training budget to effuse about how they’re “developing key talent”. Alas, the pain doesn’t end there. The worse culprit of all time has to go to the Scrum Master training course. For a large sum of money you can be taken through a multiday course where you learn the theory behind how to do Scrum and go home with a great certificate you hang on your wall!
I’ve yet to meet a single person who found the Scrum Master training useful, or who actually managed to make use of it. It’s purely an irrelevant cash cow. It won’t surprise me if there’s already some equivalent available for Lean development and #NoEstimates.
So I’m cynical about all of these qualifications you have to pay a wad of cash to go on. Programming is hard and difficult, as is running agile teams. You cannot become an expert in something from a 2 day course or from cramming a textbook for a multiple choice test. I think this is for 2 reasons.
The only way to learn and prove your ability in something is to do it and learn from more experienced people. Want to become good at Scrum? You need to be on a scrum team with a good scrum master to see what good looks like. You then need to incorporate this into how you work and be given the experience to try it yourself.
Our industry changes too fast. The moment you’ve become a qualified Spring or Hibernate developer a new versions going to come out and you’re qualification is out of date.
Both of these are exemplified by the pointlessness of the Computer Science degree. Most lecturers are people who have little or no experience in the industry, resulting in a workforce that isn’t up to scratch for the real world. I consider myself very lucky to have done an industrial placement year; those 12 months working as a junior developer taught me infinitely more than the 3 years of study surrounding it.
As developers we must constantly be learning. For me this is one of the most enjoyable parts of our job. The answer isn’t to study for qualifications but to practice self learning for work and personal projects. We are blessed with great publishers like O’Reilly who are regularly releasing new and up to date text books to devour. We have an unending set of articles on any language or framework on the internet to devour, not to mention the plethora of open source projects that are available for us to look through the code. Finally, and most importantly, as we are moving to microservices we can easily try new technologies in the work place to get practical experience with them- microservices allow us to make mistakes cheaply. With Udemy, Coursera, Stackskills, EdX we have cheap, easy to access online courses in almost anything we want to learn.
Don’t waste your time or money on programming qualifications. Pick up a book on a subject that interests you and start reading. Build projects at home for fun or try out a technology at work. When you do, write about your experience — writing is a great way to learn.