My SCJP Journey
There are those who will tell you that certification is not even worth the paper it is written on. There are those who look at certified programmers with a certain level of uber-cool disdain, as if to say, “You paid money for that?”
On the other side of the coin, there are certified developers who look at anyone who is not certified as somehow less, incomplete.
I’m neither of these.
In 2008, I took a trip to Chicago for a Java training course. At the end of the week, we wrote the certification exam. I passed, but that was the least of it.
The developer I was didn’t understand the way Java worked. He took shots in the dark, got it right through trial by error.
The first day, they brought us in and started right at the beginning. Nothing that Tom, my instructor, said that first morning was unknown to me. But it helped to clear away the junk of what I thought I knew and understood about Java. That afternoon, he started rebuilding it.
The developer I am understands the reason why things are implemented the way they are, the pitfalls of certain techniques. When an implementation decision is made, there is a strong reason behind it.
From the way that variables are handled, primitives and objects, to understanding the way that static is handled in different scenarios, we went over it all.
The developer I was searched other people’s code to figure out which libraries to call. He made liberal use of other developers’ time when he couldn’t find exactly what he needed in existing code.
We went over all of the standard APIs, I/O, Collections, Strings, Dates, and many others.
The developer I am delves fearlessly into API documentation, not skipping a beat as I figure out, on my own, new functionality, new libraries, and unfamiliar areas that I need to tackle.
We were taught not only elements of the Java API, but also how to find what we need in there.
The developer I was understood enough to keep his head above water. He could muddle through, but not contribute beyond the small tasks he was given.
We went into the finer points, but we also covered Java 5 features like generics. It was such a thorough rebuilding of my foundation, I felt thoroughly remade. Instead of just programming Java, I knew Java.
The developer I am is a strong contributor, a mentor, a teacher. He participates in design discussions, implementation conversations, and his opinions are based in his strong Java foundation and are treated as such.
I won’t pretend that my Java course and ensuing certification makes me a better programmer than another programmer who doesn’t have the certification, but it makes me a better programmer than I was without it.