I have some things I'd like to vent about taking the Adobe ColdFusion certification exam. Its more of frustration I guess.
First of all, what were the test writers thinking when they wrote the test? I had four (yes 4) questions on the <cfinsert> tag (I cannot discuss the contents of the questions due to a signed NDA). Oh my goodness. I very likely got all 4 questions wrong because in my 7+ years of writing in CF I have never once used the tag. Frankly, I think it should have been deprecated years ago.
So I polled a few people at the conference (Ray Camden, Michael Dinowitz, Simeon Bateman, etc.). Not only do they not use it, but all of them agreed that they would have likely failed the questions as well.
So, what if I had failed the exam? Does that mean I'm not an expert because I don't use tags like <cfinsert> and <cfupdate>? I seriously would have thought that best practices would be higher on the chain of questions making it into the exam.
Why have I never used <cfinsert> or <cfupdate>? Because Alaire (the original creators of ColdFusion) told me not to in training tutorials they wrote and sold. That (to me) is documentaiotn right from the developers saying not to use the tags. Yet here I'm taking a test that says I need to know it. (sigh...)
---
In case anyone is interested, the tutorials I'm talking about were a package you could have bought with CF4 (when I first got into CF heavily back in 1999).
There were other questions that I wasn't too happy about which consisted of bad grammar and a few poorly written questions. I asked a few people about their experiences during the CF exam and they all had comments about poorly written questions.
My suggestion to Adobe: Maybe reconsider new ways to have reviewers check ot the tests. Like ask the Adobe ACE team to volunteer to be beta testers of these tests (since they consist of mostly CF experts) or other current Advanced ColdFusion Certified Developers.
Anyway, a few months ago I was in contact with one of the developers of the site and he said that getting a CFBlackBelt site wouldn't be that difficult (he had proposed a PHPBlackBelt, but no one bit). Unfortunately my daughter was just about to be born and it's something that just fell through the cracks.
Any thoughts?
Thats an interesting idea (the CFBlackBelt idea).
However, with regards to knowing specific frameworks I don't exactly agree (hear me out first :)). Still I think you might be on the right track. Perhaps at least concepts of beans (just using simple CRUD and maybe suggesting the use of an init() method) would be a good area. But beyond that each framework handles their OO approach a little differently (DAOs, Gateways, etc). Requiring developers to know each popular framework (or even picking one from a list) in order to become an expert would not be fair.
For example, I've written a framework a year and a half ago that uses many of the concepts seen in many of the popular frameworks (uses DAOs, Gateways, Beans, and allows my developers to add modules without having to touch the core files). Like many CF developers I did this to solve a specific need that other frameworks (at the time) didn't solve (or I hadn't tried the framework yet). ColdFusion is great for allowing developer teams to "roll their own" framework to help focus on their needs better (lets face it, to date there is not a single framework that fits every scenario).
So yes, if the test required knowledge of basic Bean concepts (or something similar that most CF frameworks seem to have similarities) in order to become an advanced developer then I would agree with you.
Becoming certified in a language isn't about testing your knowledge on only the things you personally use from day to day, but the entire language including tags/functions you've never used no matter what the reason may be.
Most people I talk to believe that the use of client variables are bad practice. Adobe even says so in their own technotes. Does that mean that a cf exam should have no questions on client variables?
I do remember taking the cf5 certification exam and was asked about 4 questions dealing with the java API when writing java cfx tags. I was very frustrated thinking that I should only be asked CF questions, not the java questions. Getting four of those, I'm sure was my bad luck in question randomization
I gotta say I disagree. The CF certification test should test only knowledge of CF.
CFC knowledge is an okay subject, but OO knowledge should be not be included. Framework knowledge should be off limits. I'd even say Beans (and any design pattern) should not be included.
The test is nothing else than to test CF knowledge, and with 40-50 questions, there isn't room to cover other topics adequately.
If you want to prove skill in these other topics, check out Brainbench or some other independent certification body. I'm sure they have OO tests and database design tests, etc..
I'm not arguing that any of these topics should be covered in a CF test, I would certainly hope they wouldn't be in the "official" certification exam...the black belt exams are aimed more at recognizing some of the areas that aren't tested in the basic testing arenas that make developers more productive.
The way the Java tests are structured, you first show that you know the basics about Java (object instantiation, loops, conditional statements, etc.), then are offered exams on more advanced topics. Each exam is worth a given number of points and each belt requires n points. They have exams on OO, Struts, Tapestry, EJB, Spring (in several levels), Hibernate, ANT, JUnit, Eclipse, Maven, Ruby, Swing...you get the idea. Not every shop uses OO, unit testing, frameworks, etc., but for those who do, there isn't a whole lot of "official" recognition of those skill sets.
The certification certificate is just one more 'tool' in your toolbox that will help you get past the "HR Gatekeeper" on your way to the interview.
If you don't have it on your resume, it will probably end up in the trash.
I only just passed the test (granted I had a hangover and did not swat at all), and back then I was more advanced than just about everyone else I knew.
Since then I know other people that have since the test and got 95%+ and are advanced certified developers, yet I personally know these people really are bad developers, one of them used to work for me so I know how bad his code was.
I don't think the certification is worth the paper it is printed on as anyone can pass at an advanced level simply by using the study guide.
All it shows is your knowledge of the tags/functions and their attributes really, not your ability to solve prolems and write good code.
I just stumbled upon your blog and added it to my CF bookmarks (nice job).
I have a tendency to agree with most everything that the all commenters have said.
<CFINSERT>? Agreed, who uses that? Same for <CFUPDATE>.
But, they are on there, part of the language, and according to Allaire/Macromedia/Adobe, they are fair game for the exam. Fair? Probably not.
This type of obscurity on the questions/material is one of the reasons why I recommend my product CFMX Exam Buster (http://centrasoft.com) to potential testers. Sure you may be a great developer, but it could be those few tags that you've never had the chance to use, or simply don't use (cfinsert, cfupdate, etc...) for other reasons, which cause you to fail or miss the Advanced status.
So, I thought I'd let your blog readers know that there is a product which can help them prepare.
Best of luck to future readers on their exam,
Brian Simmons