Notes on the Drupal 8 developer exam

About the exam

You may be wondering what the "Drupal 8 developer exam" is? It is a certification exam whose official title is "Acquia certified developer - Drupal 8." It tests ones knowledge of Drupal 8 theming, module development, site building, and some other CSS/jQuery/PHP skills. I recently took this exam and decided to document my experience.

Most certification exam authorities (e.g.Zend) publish study guides, sample questionnaires, and even mock exams. Acquia is an exception which caused me some uncertainty about exam preparation. This makes it documenting first hand experiences even more important.

The exam format is similar to most other certification exams - you have 90 minutes to answer 60 MCQ (Multiple choice question). Some of the questions have multiple correct answers. Luckily, the question paper clearly indicates where this is the case. Pass mark is 65%.

Why take the exam?

You don't have to really. Lots of people are against certification exams and rightly so. Certification exams usually use MCQ which are good for measuring objective knowledge (e.g. site building). But there are so much subjectivity in theming and module writing that it is absurd to measure them only using MCQ. MCQ-based exam certifications do tell us that someone knows at least something about the exam topic. So these exams really prove that the certificate holder is familiar with the fundamentals of the exam topic. If you want to be an expert in a subject matter, a certification exam may help to some extent, but it will not take you to your destination. So you may not as well take the exam.

There are some circumstances where a certification could be essential though. As Rothman says

If you're creating a professional services organisation and external customers will want to know how many and what kinds of degrees staff members have, your staff members may need a surfeit of advanced degrees.
She is really talking about college or university degrees, but I feel it applies to professional certifications too. She is otherwise quite critical of certifications.

One "feature" of any kind of exam is that it gives you a deadline to learn as much as possible about a subject matter. Deadlines are useful because of Parkinson's law which states that "work expands so as to fill the time available for its completion." I wanted to gain a working knowledge of Drupal 8 by May 2016, so thought it better to take a Drupal 8 related exam by the end of May. At that time, the only exam on offer was the Drupal 8 Foundation exam. So that was what I aimed for. But I did not book the exam immediately. Eventually I felt ready for the exam in June and attempted to book it. Interestingly, Acquia has floated a new exam in the mean time called Drupal 8 developer exam. The syllabus for both the exams are almost the same, but the Developer exam asks 60 questions as opposed to 40 for the Foundation exam. This means the Developer exam tests the candidate's knowledge more thoroughly. I liked the idea and eventually signed up for the costlier Developer exam. That is the background story. If you already know enough about Drupal 8, you probably will not gain much new Drupal 8 knowledge by taking this exam. But if you are just starting out like me, it is worth a try. In any case, every Drupal 8 developer should be well versed in all the topics mentioned in the exam syllabus.

There is one more benefit of certification exams and it is that it encourages you to learn something about everything from the exam syllabus. Depending on how studious you are, this may not always happen if you are learning on the job only. Take Drupal's multilingual support for example. This is something you must know if you are taking the Drupal 8 Foundation or Developer exam. I found at least two questions on this topic when I took the Developer exam. If I had not taken the Developer exam then I probably would never have touched this topic unless demanded by work requirements. This advantage should be kept in mind while judging the utility of certification exams.

Exam preparation

According to the exam page, you can prepare for this exam by attending Acquia run training courses or by studying drupal.org documentation. This statement gave me the impression that drupal.org documentation for Drupal 8 must be quite mature. When I looked at it, I realized that nothing can be far from the truth. It is just as messy as ever. I have always been annoyed at the poor state of documentation available at durpal.org and this time it increased even more. The only subject I found worth studying there is the theming documentation. The Twig for Template Designers chapter of the official Twig reference was invaluable as well.

For module development I eventually studied Acquia's online Building modules with Drupal 8 guide. Packt has an upcoming book on the topic and I trust the author from previous experience, but it will not be available until November 2016. Perhaps I should have tried my former co-worker Blair Wadman's Starting Drupal 8 Module Development course, but I was just lazy. Something to consider for the future.

For site building and also for some module development topics, I studied the Drupal 8 Development Cookbook by Matt Glaman. It is extremely well written, some what misnamed (more of a collection of tutorials rather than a cookbook), and perhaps by coincidence covers most of the topics from the exam syllabus. I whole heartedly recommend this book to all budding Drupal 8 developers. Its high quality coverage of some topics (e.g. Restful web services) is rare to find elsewhere.

At the very end of my preparation, I also looked at http://www.d8cards.com. I wish I had started to use it earlier. Thoroughly recommended.

When I first decided to take the exam, I tried to find out what others are saying about their exam experience. Google pointed me to two useful posts by Tanai Sai and Jeff Geerling (of Drupal VM fame). My experience later matched a lot with Jeff's. So do check both the writings. Both of them have mentioned that you should work on at least one Drupal 8 module before sitting the exam. This is a very useful advice. I ported a theme to Drupal 8 before the exam. I did not work on any real module although regularly wrote code for practice.

All in all, I have spent about a month and a half of effort to prepare for this exam. This is from someone who knew Drupal 7 but almost nothing about Drupal 8 when deciding to take the exam. To study for the exam, I worked part time for several months. My superior at work kindly permitted me to work two and half days a week. Without this, I doubt I would have succeeded at this exam. Not everyone will be so lucky, so do keep this in mind while estimating exam preparation time.

The exam

Acquia's certification exams can be taken from home using a specialized software plus a webcam OR you can go to a test centre. The cost is the same. I chose the more traditional approach and booked at a test centre.

I booked two weeks in advance of the test. Test dates were available on almost everyday in most centres. So in theory, you can book as late as the day before the exam. Not that I recommend it.

I have booked the test at 1800 hours and turned up at the centre at about 1715. This is quite early. Following identification check, the "proctor" (the exam supervisor) gave me a laminated sheet of paper containing the rules. She also asked me if I want to start the exam early. I agreed and so the exam started at 1730. After showing me the seat, she gave me a pair of foam earplugs in case I feel disturbed by the surrounding noise! I did not use the earplugs although there was some noise from other people present in the room just as she has predicted earlier. But it was not too bad. She was extremely polite and friendly. A great example of good customer service.

I finished answering all the questions after about 80 minutes. This left me 10 minutes to go through the answers that I have earlier marked as "Review later." I was quite disturbed to find that I have marked 24 questions for later review. That is 40% of all the questions and getting these wrong can easily earn me a fail. Eventually I could not review all of these before the time was up. Fortunately, I have selected answer(s) for all the questions during the first 80 minutes. So despite failing to review all 24 of the "Review later" questions, I have given a full answer. As soon as the exam finished, the result showed up on the screen showing the total mark achieved (86.66%) and a breakdown of the four parts. The proctor could not give me any print out as a proof of the pass. But soon I received an email from Acquia confirming the marks and a PDF pass certificate. About a week later, Acquia's certification registry started listing me.

As for the test software, it was a web application running inside (what looked like) Internet Explorer. You can think of it as a very long multistep form. Some of the pages took almost half a minute to load. I was worried at the beginning that I was loosing time due to the long page loads. But the on-page timer confirmed that it was not counting the page load times. That gave me the full 90 minutes to work on the exam and I was happy. This also meant that the test lasted a few minutes longer than 90 minutes due to the page load times. But I have no quibbles about that.

Just as Jeff has written, there was one question which had a code sample followed by four possible answers, but no real questions! But it was not difficult to guess the right answer from the context.

Question pattern

I can still remember some of the question topics from the exam. Some of these questions touched advanced topics, but most should be within the grasp of a Drupal 8 developer. Here are the ones I can still remember:

  • [CSS] CSS selector precedence.
  • [jQuery] Drupal specific jQuery code sample what will execute only once for each page.
  • [Library] Including the jQuery library in a page.
  • [Git] Squashing multiple git commits into one commit while rebasing.
  • [Git] Committing all changes made inside a directory.
  • [PHP] Abstract class.
  • [Theming] hook_preprocess_hook()
  • [Theming] Difference betweek hook_preprocess_html() and hook_preprocess_page()
  • [Theming] Choosing the right base theme for your subtheme.
  • [Theming] Theme template suggestion.
  • [Twig] Use of Drupal specific Twig functions, e.g. for translation.
  • [Coding standard] Empty line between "namespace" and "use" statements.
  • [API] Custom code that is going to execute after node insert.
  • [API] Custom code that is going to execute after node delete.
  • [API] Watchdog logging.
  • [API] Block annotation.
  • [API] Retrieving settings using the configuration API.
  • [Tests] Choosing the right base class.
  • [Security] SQL injection.
  • [Caching] Cache context and cache tag.
  • [Caching] Dynamic page caching.
  • [Views] Display, relationship, contextual parameters.
  • Configuration update for an existing module.
  • Entity display modes.
  • Multilingual blocks and menus.
  • Free form taxonomy term field.
  • Setting up entity specific commenting.
  • Structure of a *.info.yml file.
  • Structure of a *.routing.yml file.

Quite a lot of these questions were in the form of use case descriptions. For example, A client wants the site users to write articles. (S)he also wants each user's profile page to list all articles authored by them. How would you achieve it?

Overall impression

The developer exam does not go deep into theming or module development. All questions are limited to Drupal core only. Despite all these drawbacks, I would not recommend anyone to attempt this exam without good preparation. If you do decide to take this exam, use it to motivate you to learn more about Drupal 8 instead of decorating the CV. If you adopt this mindset, whether you pass or fail, you will realize at the end how much more you still need to learn. This feeling will drive you further towards becoming a genuine Drupal 8 expert. That is the real win.

July 2016