When I started my Sabbatical, now two and a half months ago, I started it off like most events in my life. I had planned to do great things, learn two new programming languages, and master three new frameworks...oh yeah, and there was the travel to both Central America and Europe. I was supposed to do all of this in four months and then get a brand new spanking job where I worked with multiple programming languages as a senior-level developer. It was a nice dream to have and something great to look forward to.
My Current State of Affairs
Two and a half months later, I find myself winding down what I can accomplish in my Sabbatical, and my outlook looks quite different than when I started. I have pursued everything I set out to do, but I now can be more realistic when I look in my crystal ball and try to predict what kind of job I will wind up with come this summer.
Initially, I had wanted to get out of working with Drupal. I love the people, community, and going to Meetups and camps, but it was the technology stack that bothered me. I was tired of saying I was a "Drupal developer" and having that not even mean I was a competent PHP developer. There was just something disappointing about meeting other developers who worked with different technology stacks and languages.
I thought if I expanded to Rails and frontend JS frameworks I would graduate from this disappointing feeling and be able to feel more secure. If Drupal bottomed up, I'd have two other areas of expertise to fall back on. If I got bored with Drupal work, I could switch out to work on other projects.
Plus, with learning new frameworks and languages you learn new ideas and best practices that you can employ across all your work. Learning Ruby/Rails and Node/Backbone.js has certainly expanded my mind there, but so has learning more about Symfony. I love noticing how different frameworks are similar in design and ideas, because it makes you feel like you are understanding some universal truth.
Be Realistic About What You Can Finish and What Awaits You
But two and a half months ago, I wasn't really being realistic about what I could finish in my time of exploration. Sure, you can get junior-level positions in a Ruby shop with a piddly app you make, but that doesn't mean you'll set yourself up to excel at that job.
I can remember my first legit web development job and how much I struggled at first, mainly because I didn't really have an senior-level people to look over code I was pushing to production. The stress and worry that being a noob causes just isn't worth it to go through if you can become an expert at something you are already decent at.
If I'm being realistic with myself, there aren't many Drupal shops that I come across that also do Rails apps and Node/Angular/Ember.js apps. If you get anything other than building Drupal websites or integrations, you'll get some iOS work. Yes, there might be some unicorn companies out there, but they are sure hard to spot.
So, I knew I needed to re-align myself with Drupal and now Symfony, and my thinking turned entirely away from Ruby and Rails. Since I had seen Acquia's certification program before and now was looking at Symfony's, I thought why not get two certifications to bolster my profile as a Drupal and PHP developer.
Why You Should Get Certified
Certifications in the open source world are notoriously controversial. On the one hand, you have the fact that frameworks, languages, and the web keep changing at a rapid pace, and on the other side, you have developers who say you should just contribute to projects and not let commercial interests corrupt things.
I can understand the logic behind the rapid churning of the web. Let's say you get an Angular certification (if that even exists anywhere) and then they rewrite everything in version 2.0. What does that mean for you? What does that mean for employers trying to sort through stacks of applicants for jobs?
Since some entity has to write the test and keep that updated, the framework in question needs to be somewhat stable for at least a little while. Otherwise, it's not commercially viable for a company to develop a certification program.
I would even go as far to say that if a framework is unstable enough to not be a candidate for a certification program, you shouldn't be messing with it. There are way too many things to learn as a web developer these days, and frameworks that are too new or have unstable APIs are just a hassle to you and your boss.
Here's where the jaded, old, wise dev will tell me that corporate interests are clouding my views. "By not contributing to new frameworks and libraries, how can the web innovate and stay relevant?", he'll puzzle to you. "Well, I think the web should chill out for a sec" is what my answer would be.
Plus, there's no reason for me to be creating my own CMS when I feel like I don't know much. Nor do I think I should be making major contributions to projects when I don't fully understand the underlying design patterns the project is built off of. By gaining certifications, you can at least be assured that someone has rubber-stamped you as being knowledgeable about something.
Both the Acquia Drupal certification program (for Drupal 7) and the Symfony certification program ( for Symfony2) are based on frameworks that are completely stable at this point. Even if you are an uber developer, the worst that could happen is for you to pass with flying colors or to learn some tidbit you didn't already know.
I can't really understand the people who think these certifications are a bad thing. If a framework gains enough popularity, then yes, it's going to start getting commercial and enterprise-y. Companies are going to have to know you actually know the framework and can develop using best practices.
Just because you made some commits or already maintain a few Drupal modules doesn't actually mean you know Drupal that well. I've seen many a Drupal module that seems to have a decently questionable codebase or doesn't use core APIs in places when it should.
And it's not like Acquia or Sensio Labs are conducting some evil plot where they indoctrinate developers with evil best practices. Better Drupal and Symfony developers make them more money, and more developers with certifications will make everyone more money in the long run.
The one objection to certifications I can understand is being lazy. Rooted deep down in the corporate interest takeover fear is the desire to not want to change.
I see this fear in the Drupal community with the switch from Drupal 7 to Drupal 8 all the time. Old-school procedural coding people don't want to learn OOP so they've made up all of these counter arguments to not change how Drupal operates at the core.
Putting Ruby to Bed
To conclude my rant on why I'm changing my focus to getting certified, I just want to say that the idea of this project is not over. I plan to refocus the idea of helping to plan a sabbatical and still try to use some prototype for my Europe trip.
The prototype will be a Symfony app, or maybe even Silex, but the Rails repo I started will remain as-is until I have some spare time to learn Rails again.
Look for updates on my certification journey in a new blog series coming soon!