My experience with SensioLabs Symfony certification exam

One day I check my email and see one from Fabien "Symfony turned 9 and for being one of top 100 contributors you get a free voucher." It definitely lifted my spirits.

Voucher was valid for a year so I just created a calendar reminder "Learn for Symfony certificate." Made it due sometime in Summer and more or less forgot about it. More than enough time left for it.

After the SymfonyCon Madrid I evaluated my career possibilities. Decided it's time to stop riding a dead horse and move the majority of my time working with Symfony framework. At the same time remembered the Parkinson's Law. The task will take as long as it's given time. Time to add the deadline. No matter how much I will learn for it, on March 1st I need to book the exam.

Somehow I made January & February months for learning a lot of new things. Because of that I didn't get as much practical experience as suspected. Still made a habit of 90 minutes reading Symfony documentation for breakfast, um, tasty. This habit was mandatory!

The only preparation what I did was to take all the topics written in certification page and put them in a Trello card. Add items for cookbook topics, doctrine, etc. Not all are required for certification, but a good documentation is like a good book for me, so I didn't mind adding them. Add the links for easy access to as much of items as possible and that's it.

At first the list of about 160 items makes you take a big breath. But one check-box at a time you can see the progress.

This was also the great chance to improve the documentation (fixing typos, etc.). Changing it to the way you imagine it (changing formatting, etc.) and picking the brains of Symfony contributors (discussions in PRs, etc.).

90 minutes each day was spent making a few notes once in a while, creating pull requests, experimenting a bit. On February I did some calculations and estimated that around the middle of it I should be done. It was time to register for an exam. Really wanted to do it on February 13th the Friday (how cool does that sound). But the place I like staying at wasn't available for rent. Also it felt like trying to avoid the unavoidable (a bad habit to have). So just registered for Monday (the sooner the better).

In the remaining days finished with the remaining topics. Did a quick second round on the book and it was time to take the exam the next day. This took me about 6 weeks (~63 hours). I never believed about learning till the last second. My choice always is to put a good nights sleep between learning & applying it. So Sunday documentation breakfast was the last one I will be taking for at least a while (failure is always an option).

The next day I woke up feeling great. Slept well, had a nice meeting the day before, exercised, took a shower, ate and the day looked like it will be a great one. Or would it? Nah, it would be a good one. The worst that could happen is that I won't pass the exam and that's it. It's not the end of a world.

OK, I worried a bit about slipping on the icy bridge while walking to the exam center and breaking my neck or dropping into a cold water. But this is the problem with my imagination. Other than that, I was trying to keep a relaxed attitude by taking a long slow walk along the snowed river to the exam center. Went out early to keep my paranoia in check about arriving late, I like to stay safe.

It sounds silly, but after arriving I noticed my legs getting a bit weaker and heart pounding a little harder. Stupid body. Had about half an hour before the exam. I always try to prepare myself for the worst scenario (which never happens) just in case. And you get a pleasant surprise when the end result is better than that you were expecting. If you're prepared to lose both legs, losing only one of them is wonderful. But most of the time from my research (books, articles, etc.) the suggestion is to imagine the result you want and your mind will go towards it. I'm still skeptic about it, but if it's repeated often there must be something to it. And you can't learn without testing, so why not, let's try it.

I sat down. Closed my eyes. Started taking monotonic breaths and focusing my mind on passing the exam. At least my heart stopped pounding. A fresher head couldn't hurt either.

I'm personally a little skeptic about these exams as you could pass them with a good memory. Especially after I met a person with a Java certificate when he shouldn't be a programmer in the first place. Unfortunately for me, I don't have a good memory, and it works in strange ways. For example, trying to remember when I had my first operation (string of 10 characters) leads to the following flow: it was on my birthday, I finished school that year, it was my 19th birthday, I finished school one year after 18th birthday, on my school leaving certificate it's written 2006, so I had it on 2006-06-28. Not the best way to remember a date. Fortunately for me, my logic module pick up the pace and helps were memory starts ramble. I just have to put enough resources to be able to link them together.

By reminding myself that it wouldn't matter if I fail my head wasn't occupied by negative thoughts about that will happen if I fail. This allowed to take the exam with stone cold focus. Read the question, read the answers, pick the one which is correct or makes most sense, keep going. Flagged two questions for review, but after the second time told myself to stop doing that and simply believe in myself. I enjoyed the exam a lot. It had a good flow & presentation of questions. A few of them made my head go "What??" (unlike Zend Certificate which contained quite a few "WTF?!?" questions). Solution to them was simple - read the question & answers again, you can do this.

75 questions later was confirming that I'm finishing the exam and the moment of truth... Thinking I did good on exam. Still, took the big breath guessing if I should just wait for screen to change or close my eyes... The screen is still waiting... The screen finishes loading... And a log-in pop-up shoots to the front of the screen...

(╯°□°)╯︵ ┻━┻

After some fiddling I bring the screen back. My eyes start shooting around the screen scanning for required information. ... "Passed." Great, which level? ... "Expert." Yes *fist pump*

Unlike with PHP certificate my reaction at the end of exam was much more "professional." It still felt awesome!!!

Note: For anyone who is interested I made a Trello card public.

Note (2017-05-30): Many years have passed since the Trello card was created, and a lot has changed in that time. Some of the information in the card is outdated. You might want to check out Symfony Certification Preparation List by Thomas Berends). It's based on the Trello card, but the information should be up to date, and it's easier to contribute if anything is missing (sharing is caring).

Posted in: Personal, Symfony, Technical