Taking the Zend Certified PHP Engineer Exam: My Story

Thinking about taking the Zend Certified PHP Engineer Exam? Before you do, see what David Fells experienced when he recently took the test and see what you should be ready for and what not to waste your time (or money) on.

Several months ago, Zend launched its Zend PHP Certification exam much to the interest of the PHP community. The objective of this exam is to certify individuals with broad, advanced knowledge of PHP and set them apart in the marketplace. As with any vendor-specific certification, one could expect the certificate to hold significant value when applying for a position that requires use of the technology in question. The exam is priced at $200, the same price as each of the MySQL exams, but still a bit more than the typical Microsoft or CompTIA exams, which cost $125 on average.

The exam curriculum was developed by the PHP Education Advisory Board, formed by Zend to specifically to oversee the PHP Certification program. The board consists of an impressive lineup of PHP developers, contributors, trainers, and authors, all of whom have made significant contributions to the PHP community and who without a question represent the best available group of individuals to determine exam coverage and curriculum. Several of these individuals contributed directly to the official Zend PHP Certification Study Guide. The guide follows the list of exam objectives from the Zend website thoroughly.

On Saturday, October 23, 2004, I took the Zend PHP Certification exam. After missing the special offer from Zend to take the exam for $100 in September, I took the initiative in October to drop Zend an email to ask if I could receive the $100 discount, telling them that I was prepared to take the exam the following weekend. The individual cordially agreed and created a saved shopping cart on my zend.com account, where I proceeded to pay the remaining $100 for my exam voucher. From this point it was simply a matter of registering with Pearson VUE through their website, a painless and quick process. My voucher was ready and waiting when I logged in and I scheduled my exam for 1:00 PM the following Saturday.

{mospagebreak title=Studying for the Exam}

By this point I had already purchased both the MySQL Certification Study Guide and the PHP Certification Study Guide from booksamillion.com where, with my discount card and exceptional online pricing, I got both books for about $50, including shipping. If you are planning on taking these exams, this is the place to get the books.

Unfortunately, when going through the Zend study guide, I found numerous errors, several of which are inexcusable mistakes. The guide is mapped closely to the exam objectives published on the Zend website, but the guide lacks breadth in actual content. The chapters tend to focus in on a function or two and beat them to death, presenting the information in a way that encourages either rote memorization (as is the case with the date() and strftime() functions) or skipping the chapter entirely. In addition to this, a lot of the guide went off into the deep end on subjects that were hardly covered at all on the exam. (At least the exam I saw. Maybe Zend’s hiding another version that is mapped out like this book.)

An example of this is the chapter on sending email, which goes into a fair amount of detail on MIME encoding and properly sending email through PHP. While these are valuable topics and warrant discussion, they seem to have no place in the guide. The exam coverage on mail is cursory and is limited to basic configuration of php.ini in order to send email, and basic usage of the mail() function.

The guide covered a few topics really nicely, including arrays, OOP, and security. As it turns out, questions on these three subjects comprised the bulk of the exam. The exam contains quite a few questions with painfully academic array situations where you have to resolve the end value that is outputted. (Think high school UIL computer science tests). But the book is littered with errors in the sample questions, some of which have erroneous syntax, but for which the answer choices assume syntax to be correct. Several questions do not provide the right number of correct answers (based on the number you are told to choose in the question).

The most irritating error to me was the swapping of definitions regarding passing by value and passing by reference in the glossary. This is a fundamental exam concept and coverage in the book is diluted with bad examples regarding references; glossary errors do nothing whatsoever to add clarity to the situation. I have already submitted my list of errors to Zend and hopefully they will be addressed in the next publishing. (This will occur next month, according to the representative I spoke with.) All in all, the book is worth reading but be on your toes, it’s fairly buggy and not entirely accurate on some things.

{mospagebreak title=Grading the Exam}

Luckily I found no real problems with the exam except the silly questions that do nothing to test your ability to solve a problem and instead test your ability to resolve unrealistic syntactical mazes. There were a lot of questions on object oriented programming with PHP (the exam only covers PHP < 4.3.6, so no PHP 5 features were covered), mostly focusing on references and function return values, as well as object cloning. Security was covered quite a bit, focusing of course in XSS (Cross-Site Scripting), Injections, Sessions, and Cookies.

Beyond these things, coverage was somewhat random. A small number of simple questions related to regular expressions, file management, and streams showed up as well as a couple of questions about configuration and debugging. The exam had a few questions about design patterns, much to my surprise, though the context of the question and the multiple choice format of those questions made the answers quite obvious.

I would have liked to see more scenario based questions, fewer “name that function” questions, and even fewer “pick the right parameter order for this function” questions. Don’t get me wrong. I think fundamental syntax and function questions are crucial to testing a developer, but what about problem solving? Programming exists for one reason: to solve problems. This test does not dig into that.

Microsoft exams for C# and VB.NET require syntactical knowledge as well as analytical ability. It makes little sense to me to bog an exam down with questions that, for a real developer, are part of day to day reference material. I frequently forget which string function I want to use for some random task or what format identifier to use for some date representation, but it does not matter–PHP.net is always available. What is not available in an instant is an appropriate solution for the problem in front of you. This exam fails to test problem solving completely, but I will concede that problem solving was not listed in the exam objectives.

{mospagebreak title=So, What’s the Pass Rate?}

I can’t help but wonder what the pass rate will be for this exam for two reasons:

  1. I do not think the material presents a challenge. The exam can easily be prepared for by memorization and a few cram sessions.

  2. I do not think the exam requires any real analytical ability.

Despite that, I think the exam does a good job of validating a semi-advanced skill level with the language and it validates syntactical knowledge (ad nauseam). I also believe that in a world where most technology job hiring is done by individuals who do not understand the technology, certifications are good regardless of the actual knowledge tested. I for one got my first job in IT solely on CompTIA A+ and about fifty BrainBench Certifications on everything from Windows 98/Me administration to Word Processing. Were those BrainBench exams worth taking? Absolutely! Did they mean I knew anything about the material in the exams? Not at all!

I am not attempting to compare this exam to a BrainBench test, but it certainly pales in comparison to the difficulty of modern Microsoft exams. Many would argue that Microsoft exams are still easy, but I have to disagree and point out that unless you dedicate excessive study time (80+ hours) or take school courses that amount to a full semester of exam prep, you are in fact required to know the material – and even if you do cram and memorize facts, you still are required to combine them in a meaningful way to solve a problem.

In all fairness, the Zend PHP exam lacks the maturity of Microsoft exams. For years MCSE exams were an absolute joke and required even less analytical thought than a UIL computer science exam, much less the Zend PHP exam. Given time, this test will become much more challenging and the benefits of being certified will become greater. A PHP 5 certification track needs to be established as soon as possible and should focus heavily on use of design patterns, UML and use-case analysis. This exam should be not simply a test of a developer’s knowledge of PHP syntax and functions, but a test of a developer’s ability to solve a problem with PHP. In a perfect world the exam would be a single scenario stating a few requirements and objectives for which the user is given two or three hours and the proper tools to develop a solution to the problem, with the exam graded by hand by a member of a pool of judges selected by the advisory board. Sure the test would cost four times as much, but it would be worth four hundred times as much.

While hand graded coding exams may be a logistical nightmare (or simply a pipe dream), quality scenario based exams are not. Let us hope that future iterations of the PHP exam will be better, and let us all be glad that the exam is as good as it is, because we have all seen much worse. If you are interested in taking this exam, I suggest you do so if for no other reason than to improve your market value or force your boss to give you that long overdue raise.

Google+ Comments

Google+ Comments