I know, I know...certification is a dirty word in the open source world. There are a lot of opinions out there on why you should or shouldn't try to get a certification if you primarily work with open source projects. Unlike other IT fields, open source web development is notorious for lacking decent certification programs a nascent developer can work towards getting to show employers they are worth something. In this post, I'll walk you down my reasoning for trying to obtain two PHP-based certifications and how I plan to accomplish my goals.
A Little History...
I'm always a big fan of finding out how a predominant opinion came to be. Searching for these answers can be great fun and provide insights into topics you never thought were related. History has a habit of repeating itself, and often times, current trends in the workplace, fashion, music, etc. are just repeats going through their cycles.
So to narrow our search down a bit, let's ask the question, "where does the idea of IT certifications come from?" Usually Google will provide me a good list of sources to sift through after I ask it such a question, but the history of IT certifications seems to not be a well documented phenomenon. If you can point me to a good resource here, please do so in the comments section.
What I was able to find was articles talking about how the impact of certifications has changed over the course of the last 10 - 15 years and some specifically about the history of certain IT certifications. It looks to me like certification programs started popping up in the mid 1990's, which makes sense since that's when offices started needing IT administrators to deal with word processing, email, and other business-related pieces of software.
When I think of the 90's IT world, the names Sun, Oracle, and Microsoft come to mind. I'm sure all three of these companies had certification programs up and running by 1995. The only date I could find in my quick internet search was for the CompTIA A+ certification, which is apparently famous according to this article. The A+ certification began in 1993 and wasn't updated until 2003. Since 2003, that A+ certification has been updated three more times.
My Initial Thoughts Toward Certification Programs
My initial thoughts on certification programs come from the fact that large corporate entities usually control them, and also the inherent churn that currently is the web. Large corporations and the open source world usually don't play nice together, and the constant flux of the web makes it hard to maintain certification programs.
I've mainly come to hear about IT certifications through the Microsoft MSCE program and Cisco CC* certifications. Both companies left a bad taste in my mouth. What can I say? I love the underdog and root for them in almost every sporting match I see so my feelings towards corporations follow suit.
I think the bad reputation certifications get in the open source world is mainly due to who is issuing them out. Since Microsoft was generally a closed source company, it's no wonder people in open source don't want to have anything to do with them. It's heresy to like something Microsoft does, even if it's a good idea.
With developing certification programs comes maintaining them, and for that you need a company with deep pockets, like Microsoft. Small open source based foundations might barely have enough money to sponsor developing their platform, let alone keeping the documentation up to date. So, how could they ever develop a certification program in the first place?
I was tickled to see the A+ certification I previously mentioned wasn't updated for ten years and then was updated three times in the next ten years. The rate of innovation in the web field seems to have followed the trend of that A+ certification exam. I can barely keep up with all of the new changes in technologies I'm supposed to know, and there are whole specialties you can work in now that didn't even exist five years ago.
No company with a focus on Return on Investment (ROI) would try to develop a certification exam in such an environment. If the certification is outdated in a year's time, what's the point?
It's Experience You Should Value Above All Else
The retort to certifications and exams is the value of experience. I've actually met a lot of people who don't have Computer Science degrees who are web developers, and it makes sense that they might want to revolt against the same trappings that seemed to fail them in college as they finished up their liberal arts degrees. How can an exam teach you more than hard earned experience?
Coming to the defense of experience is the point, once again, that the web moves so fast a whole framework can become outdated in a year's time. Working on improving the framework in question and having employers look at your code commits seems like a better alternative than looking for potential employees that are all trained up and certified on last year's already outdated hotness.
How Certain Opinions Turned My...Opinion Around
For those two reasons mentioned above, I too thought that experience should trump any sort of certification I could get in the PHP realm. When I started trying to become a web developer, there weren't even any good certifications I knew of that could help me.
I knew of the Zend Framework and exams for that, but I didn't ever use it and didn't know if I would ever work on a project that used the Zend Framework. Plus, Zend is like the Microsoft of the PHP world, and so I didn't feel like working over money to them since Zend seemed to have a bad rap in the PHP community.
My thoughts started to change when Acquia introduced their certification program in March 2014. Finally, there was actually a certificate for something I worked on everyday. I now could at least consider trying to obtain this one.
Dries explained in his post that the certification program was meant to be a compliment in the overall search for talent and not a box that could be checked off to get a good Drupal-based job. This seemed reasonable to me, but I cringed when I began reading the comments section preparing myself for an onslaught of nasty retorts...
And then...it didn't happen. The comments were overwhelmingly positive. A couple of jaded developers seemed to rant about their fear of certifications, but overall, people seemed to like it. Over the course of the next year, I also saw blog posts from people who had tried the exam.
Sam Becker, from Code Drop, wrote about his experience and preparation for the exam. He recommended any Drupal developer to take it, and once again, no nasty comments in the comment section. The main focus was on evaluating yourself to see where you stand and how the results would look in an employer's eyes wasn't even really mentioned. That focus totally resonated with me.
What's the worst thing that could happen to you if you take the exam? You'd pass with flying colors? You'd know where you need to learn more about Drupal? I can't think of a negative reason not to take the exam. If you're too cheap to part with $250 for a certification exam, then I'd reconsider professions.
So, in short, my mind has changed, and I think yours should too. I think the holdouts to certifications are jaded, immature developers who are afraid that certifications will reveal their outdated and inefficient coding styles. If you're still not convinced on certifications, take this example...
There's A Function for That?!?!
I was in a session at a Drupalcamp when the presenter mentioned some function in the D7 core system module. So, I naturally went to the Drupal API site to look for it...and then my mind exploded.
There were so many hooks in the system.api.php file that I never knew about. So many led to other functions and even systems I didn't know about. I thought, "wow, I bet I wasted a lot of time by not studying this API previously", and I'm sure I'm right.
Experience, you see, doesn't make you read the docs. It doesn't make you know all the functions you have at your disposal so you can more efficiently work with a framework. Experience, as they say, is what you make of it.
I have Googled outside-in how to fix a bug far too often rather than approaching the problem inside-out from what I know about Drupal's core APIs. I think a lot of Drupal developers work this way, and so by not investing in certification programs, you only help to continue this knee-jerk "found it!" way of developing. This way is sloppy, and it sucks.
Two Certifications I Plan To Obtain
To correct my gaps in D7 knowledge, I plan to take the basic Acquia Certified Developer Exam. The best part for me will undoubtedly be learning more about the Batch, Cache, Queue, and File APIs, which I've rarely used and don't know much about.
To further my Drupal 8 street cred and get better as a developer in general, I plan to take the Symfony certification offered by Sensio Labs. Seeing how Symfony components handle things like raw HTTP requests is very refreshing coming from the Golden Handcuffs of Drupal. Strict object orientation and getting off the Drupal Island are also plusses.
I'm going to take the Drupal exam first, since I've worked with D7 for a few years and hope the exam isn't too tricky for me. As I go along the way, I'm taking notes and plan to try and write about my progress as well as contribute study questions back to the community.
To train for the Acquia exam, they provide a good study guide and I know there are others out there. I think I will even try to contribute to an open source project aimed at helping people study for certifications called Certificationy.
For Symfony training, a great guide comes from Jesus Manuel Olivas' Github. The main Symfony docs are also great, and I plan to try and build a Symfony or Silex app alongside my studying.
The key to preparing for any exam is breaking down your studying into chunks and using these guides to track progress. Hopefully, I'll be Acquia certified by the end of April 2015 and Symfony certified by the end of June 2015.