CIW Javascript Specialist Certification

Last year I got my MCTS EXAM 70-433: Microsoft SQL Server 2008 Database Development certification and wrote about my experience.    To recap, while I doubt that there is much intrinsic value in the certificate itself, the extrinsic value of setting a goal (improving my TSQL skills) and having a test with which I could objectively measure progress was valuable.    It also happened to be one of my annual SMART objectives, which is one of those corporate self development programs.   You know, the kind of stuff that HR comes up with in order to justify their continued existence:   It’s got a clever acronym (what exactly it stands for escapes me at the moment) and tied to your annual performance review too.

This year, for lack of a better imagination, my SMART objective this year was to get a Javascript certification:  In addition to having done a lot of front end development this year, I had also just finished reading all 800+ pages of Professional Javascript for Web Developers.   I searched around online for certifications and was surprised to see that there really weren’t any.     W3C schools has a Javascript certification, but its a self proctored online exam, which means that it’d be of dubious validity at best.   I finally found a CIW Javascript Specialist certification that was administered by Prometric.

I immediately encountered some red flags.    The CIW website has a maximum password length on its account creation page, which I found to be hilarious.     The study guide for the exam assumed that the user had little to no prior programming experience, and seemed to hold your hand every step of the way.    I skimmed a few chapters and decided it wasn’t worth my time.    Much to my disappointment, the actual test proved to be almost comically easy.     I had done all the practice exams the night before, and that had proven to be more than sufficient.    Most of the exam questions were taken almost verbatim from the questions on the practice tests, which weren’t very difficult in the first place.

The questions that tested knowledge of general programming constructs such as if statements and for loops were predictably straightforward.       I rolled my eyes at the multiple choice syntax questions.   These were freebies.  “Spot the valid function declaration” and “which one of these is a valid variable name?” were my favorites.    There weren’t really any questions that dealt with advanced Javascript language features:  I encountered one question about prototypical inheritance.    Probably the most “difficult” part of the exam were the Javascript API questions.   These required a lot of rote memorization.    For example, normally I wouldn’t know the difference between the substr and substring functions and would need to rely on google to find out.      However, after spending a few hours going over the practice problems, they became a non issue on exam day.

The FAQ on the CIW website indicates that the exam was recently updated to reflect major third party APIs such as JQuery.     Well turns out there aren’t actually any questions about JQuery on the exam.   Rather, they threw in some generic questions about how to include JQuery in your web application, as well as some questions about the pros and cons of using third party Javascript libraries.

If the my MCTS EXAM 70-433: Microsoft SQL Server 2008 Database Development  is geared toward those with intermediate to advanced expertise with SQL Server, then the CIW Javascript Specialist certification is geared toward absolute beginners.  Anyone with a rudimentary knowledge of Javascript will be able to pass it.      Even those without Javascript knowledge but who have done nay programming would probably be able to go through the practice exams the night before and pass.   I wouldn’t recommend getting this certification if you have to pay for it out of your own pocket, but if you can convince your company to foot the bill, then go for it.   It’s a “low hanging fruit”, won’t take long, and can’t hurt.

MCTS EXAM 70-433: Microsoft SQL Server 2008 Database Development

This year I decided to get a Microsoft SQL Server 2008 Database Developer Certification (MCTS EXAM 70-433). While I was doing consulting work at Avanade, getting at least one new certification was an annual requirement. I ended up changing jobs before I could do so, but decided to go ahead and get one anyway. I felt like my computer studies were in a rut; I did a lot of reading, but not enough coding. I figured that studying for a certification would be one good way of motivating myself to take a more hands on approach to my ongoing education. Writing articles for this website would be another. Combining the two resulted in this article about my experience with the exam.

I have never gotten a certification in anything before, so I was going into this with no idea what to expect. I ended up being really surprised. My overall take on this is that certifications are not a very good way to assess a candidate’s knowledge. It does seem like a good business to be in, for the software companies that offer the certifications, the testing companies that administer the tests, and the educational companies that offer preparation courses/guides. Despite business being good, there are definitely lots of improvements that can be made to make it a better experience for the test taker. Unfortunately, I have a sneaking suspicion that all parties involved feel that things are “good enough”, and feel that ironing out some of the kinks will yield diminishing returns in terms of profit. All this may come off sounding cynical, so I do want to state that I am happy to have gotten my database certification, as there is nothing more rewarding than setting a goal and achieving it. The process of studying for the exam has drastically improved my knowledge of SQL Server, and for that I am grateful.

The sign up process on the other hand, could use some streamlining. There are too many clicks involved and information about the test is hard to come by What I had expected was to see a prominently displayed sign up link on the Microsoft Learning homepage, where I could type in the name of the test I wanted to take (which would populate an AJAX autocomplete dropdown), enter in some registration information, and sign up for the test. Instead, I had to do an old fashioned search on the home page. I eventually ended up here: http://www.microsoft.com/learning/en/us/Exam.aspx?ID=70-433. Surprisingly, the sign up link is located off to the side, as though it were an afterthought. I’m not sure why they didn’t put this front and center. After all, isn’t the whole point of these exams to charge users cold hard cash to take them? Hiding the sign up link kind of defeats the purpose. Of course, one of the things that threw me off was that the testing is handled by a third party company, Prometric, so the hyperlink is actually an image of their company logo. As a first time test taker, I would not have known to look for this.

After clicking the link, I was redirected to the Prometric website. Once there, I ended up having to re-select which exam I wanted to take. Technically, it would not have been difficult for the hyperlink on the Microsoft website to contain a test id in the query string, and then have the Prometric website do some parsing and prepopulating of the test information on their end. This is one of those examples of the experience being “good enough” and not worth the effort to fix. The sign up process was pretty straightforward but did involve a lot of clicking and tedious filling in of webforms. After a few minutes of selecting a time and test location and filling out my credit card information, I finally managed to complete the registration process. The test costs about two hundred dollars. Its roughly what I expected, but it would have been nice to see the pricing information available earlier on in the process instead of all the way at the end. One good thing to note is that Prometric has the infrastructure in place to offer multiple testing centers at a variety of locations and business hours, and as a result, provides convenient and flexible scheduling.

I chose Bellevue Community College as my test center, but was confused because my registration confirmation did not tell me where exactly on campus the test would be. I tried to contact Prometric, but there was no oddly no phone numbers or email listed on their website. There was a Contact Us link where I managed to fill out a webform with my inquiry about the test location. Of course I never got a response. Perhaps this is their way of keeping costs low by not having to devote resources to respond to pesky customers. Luckily, my confirmation email did provide information about the test center, which included a phone number. I had first thought that this was the number for the college itself and was worried that the front desk would have no clue what I was talking about when I asked them where my Microsoft Certification exam would be located. It turns out the number provided was actually the number for the Bellevue College Testing Center itself, which is its own separate entity inside the school. The woman on the phone was able to provide me with all the relevant information I needed.

Try as I might however, I could not find any official information about the format of the exam. This was conspicuously missing on the Microsoft Learning website, the Prometric website, and even the official MCTS 70-433 Training Kit. Granted, the training kit came with a CD ROM that contained practice exams, but it was not altogether clear to me that these practice exams would be in the same format as the real test. I had expected there to be at least some “free response” type questions where I’d be given some sort of real world problem and would need to come up with a good database schema, write some queries against it, and perhaps come up with some intelligent choices for indexes. In other words, I expected the exam to contain questions similar to the ones I’d be asked in a real interview. Nope! It wasn’t until I took the test itself that I found out it would be done via testing software on a computer, consisted of roughly 55 multiple choice questions1, with a little over two and half hours to complete. Belongings would be stowed away in a locker, and an erasable mat with markers would be provided. 700 points would be considered a passing score. I found it funny that they’d mention this, yet give no indication how many points each question was worth.

I have mixed feelings about the official Microsoft Training Kit. It consists of a 422 page preparation guide, a CD ROM that contains practice tests, and a discount code for the exam. The book was not too helpful. It sacrifices depth for breadth, giving each topic only cursory coverage. This became quite apparent after taking a few tests on the CD; many of the questions are not covered by the book at all. This is not so much the fault of the authors, as the book would need to be thousands of pages long in order to be sufficient. As a result, this is also not the book you want to read to learn Microsoft SQL Server. It does however, serve as a good jumping off point: Numerous other publications do deep dives on the topics discussed. For example, Inside Microsoft® SQL Server® 2008: T-SQL Querying by Itzik Ben-Gan does a great job teaching TSQL querying fundamentals, query tuning, and execution plans (it also happens to be one of my favorite books that I found myself referencing constantly during my studies).

My advice to any remotely competent database developer would be to focus on the practice exams, using the preparation guide as a reference, and supplementing it with other books on SQL Server as necessary. The testing software provides a Certification Mode that simulates an actual exam, a Study Mode that lets you answer questions at your own leisure, and a Custom Mode that lets you control various settings such as what categories of questions to ask, and whether or not to include questions answered from previous test attempts. The software is written by Measure Up, which is apparently a company that provides practice tests for Oracle, Cisco, Microsoft, Comp TIA and other such certifications. It is surprisingly solid, fast, easy on the eyes, comprehensive, and (most importantly) does not crash or cause blue screens of death. The UI is intuitive, which is what I’d expect from a straightforward multiple choice test. Unfortunately, when it came time to take the actual test at Bellevue Community College, the, the software was written by Prometric. It was a lot slower, the graphics were dated and ugly, but at least it didn’t crash. I’m not sure why Prometric didn’t just contract out the test software to Measure Up, because Measure Up had the far more polished product.

The test questions fall under a few general categories which are outlined in the preparation guide. I won’t rehash them all here, but the bulk of it consists of things an intermediate level database developer would have done throughout their career: creating and managing objects in a database schema and writing queries. The former involves knowing how to create tables, views, partitions, indexes, triggers, stored procs, functions, CLRs and managing the permissions associated with these objects. The latter involves understanding CTEs, recursive CTEs, pivoting, unpivoting, subqueries, joins, merges, groups, ranking functions (ROWNUMBER, DENSE RANK, NTILE etc), cubes, and rollups. You are also expected to know how to manipulate the XML data type, so be sure to brush up on your XPath and XQuery.

One of the test categories, SQL Server Components, assesses your knowledge of miscellaneous SQL Server components, including the Power Shell, full text indexes, Dbmail, and the Service Broker. Unfortunately, I felt that this category of questions was written in such a way that they ended up feeling more like trivia questions than an actual test of my understanding. For example, one question asks you how to enable message forwarding in the Service Broker. In the real world, you’d just use google to look up the command and its parameters; MSDN provides incredibly detailed documentation on SQL Server. In the testing center however, you are not allowed to use google, and this artificial constraint turns it into a test of how well you can do rote memorization instead.

Of course, the problem stems from the multiple choice format. It lends itself to forced cramming of knowledge with little understanding or retention. I remember how my computer science finals were typically all open book, and involved writing proofs. There was just no way to bs your way through like you can with multiple choice. Any good test taker can make educated guesses, eliminate incorrect answers, and even utilize information derived from previous questions. With all these drawbacks, why don’t they make these tests better? Well, as I said before, testing-for-profit is a lucrative business, and multiple choice exams make sense from a business perspective. You don’t need a person who understands the test material to grade the test, you just need a computer that can run some software. This makes the tests easy to grade and administer: Write once, get paid multiple times. This scales well, keeps costs low, and profits high.

All this means that a certification does not really mean much in and of itself. So is it even worth doing? Sure, you get a nice and shiny certification that’s signed by Steve Ballmer2, but so what? Well for one thing, many consulting/contracting companies such as Avanade and Accenture do put a heavy emphasis on certifications, as it typically allows them to bill more for their headcount. Thus, lots of certs listed on your resume will make you look good when applying to these companies. Also, if you’re going to put in the effort to keep up to date on your tech education, paying a few hundred dollars for some sort of proof is better than nothing. It certainly won’t hurt. The certification is really for one’s personal edification; you only get what you put into your studies. If you focus on cramming to pass the test rather than learning the material, then its not going to do much good. When it comes time for the actual job interview, it will immediately be obvious which approach you took.

1 Some questions aren’t multiple choice and involve slightly more user interaction. These types of questions are the closest thing resembling a free response question that I could find. For example, one question might ask you for the correct TSQL statement needed to create a DML trigger that inserts into a history table. It provides you with a list of randomly ordered words (not all of which are needed), which you then need to assemble into the correct statement.

2 You have to fork out an additional 20 bucks for a hard copy of the certification.