i'm a certified hadoop developer (so, what does that mean?)

Hooray for me; I earned my CCDH (Cloudera Certified Developer for Apache Hadoop on CDH4) credential today!!  You're probably asking, "so what?" and are wondering what that really means.  I guess before I answer that, I have to give you my personal opinions (hey, it is MY blog) on certification as a whole.

Certification in the technology field is a tricky one.  I'll overly generalize work types into two broad buckets; engineers and artists.  The American Heritage Dictionary defines engineering as "the application of scientific and mathematical principles to practical ends such as the design, manufacture, and operation of efficient and economical structures, machines, processes, and systems".  I personally take that to mean that for a given problem there may not be one perfect solution that all engineers in that domain agree to, but there are 2-5 that most will agree are rock-solid.

I'll (again, being overly general) put folks whose job title ends with "administrator" into this bucket.  These are our systems administrators, database administrators, application server administrators, network administrators, infrastructure architects, storage engineers, and so on.  For those roles and skills that lend themselves to consensus on a finite number of appropriate answers to specific questions, certification starts to make a lot of sense to me.

Then… there are the "artists"…  Yep, I'm talking about those of use who label ourselves developers.  On a side note; if you program and call yourself a "software engineer", let's have a discussion.  I'm not making fun of us, I'm calling out that if you give 10 competent developers a problem, they'll produce 10 different solutions; possibly with 10 different programming languages!  Again, that's not bad -- that's just where we are as an industry.  I know why and I'm positive that 99% of developers wouldn't like my answer of how to fix this (again, let's have a discussion).

I'm betting you think you know where I'm going, but let me see if I can surprise you.  No, I don't believe that certification for developers can be used to say, "yes, this person will do an awesome job for you with XYZ language/framework/tool" (I'm guessing you thought I'd say that).  On the other hand (and foreshadowing a bit of my solution of how to migrate us from artists to engineers), we CONSTANTLY introduce new ways to solve problems;  yes, often solving the same problem for the 153rd time.  Sometimes, this is an opportunity to declare a low-water mark that someone is well-versed in the basic concepts and underlying technology or architecture for a given language/framework/tool.  This becomes an appropriate strategy when something hits the buzz-cycle and everyone wants to declare themselves an expert (hey, I can't blame them for trying to earn a buck).

I'm betting that sounds somewhat lame, but it can be useful way to know if a person has put a decent level of research into something new and has taken the time to publicly declare it.  What's a good example of this?  Well, when Java was spinning up in the late 90s Sun created a certification for Java programming and those of us who earned it can tell you it did make sure you had a solid, but basic, grasp of the fundamentals of the Java language.  Did it declare that a certified Java programmer was going to be able to accurately tackle the very complex tasks associated with taking a project from idea to production?  Of course it didn't, but again it was a declaration of a base set of skills.

On that note, and truly going away from my real thought here, Sun did try to solve this with some advanced certifications for developers and architects.  As someone who holds the original J2EE architect and the most recent Java EE 5 architect certifications, I can say that even that really doesn't declare that a person will be perfect answer to your project.  However, it does show that person is very well versed across the entire Java landscape and understands a variety of common integration problems.  Yes, the whole paragraph was just a shameless self-promotion; again, it's MY blog!

In summary, certification can be an accurate measurement of how well a person in an "engineering" role will do if it tests the vast majority of the activities they will do.  For "artists", since we can't agree on how to build something (and the best of us even look harshly on the work we did five years ago), then we simply can't use certifications to truly measure how we'll do on the job.  However, we can use them as a litmus test to verify that significant efforts have been made by the certified "artist" in their new language/framework/tool of interest.  Wow… it took me SEVEN paragraphs to say that… I really need to work on being more concise.  Do you think there is a certification for that?  ;-)

Now, back to my certification on Hadoop.  No, being a Cloudera Certified Developer for Apache Hadoop does NOT mean someone is your Big Data expert, much less a master MapReduce programmer or even a fancy "Data Scientist(what was so wrong with the term statistician?).  As I said before, it does mean they've put some efforts into learning something new and publicly declared it.  For bleeding edge stuff, what more can we ask?

As for me, I'm still early in my Hadoop journey, but I'm excited about what I've learned so far and am thrilled about obtaining the CCDH certification as it helps me declare to others I'm on my way.  I'm also blessed that this is one of my focus areas in my paid gig.  

2013 -- Lester's "Big Data" year!!  For those who care to hear more (or just for me to hear myself type)… more to come!!