I got an interesting email a week or so ago (sorry folks, behind on my email again - blame CFUNITED, my cold, and a dog that required a 4 hour drive yesterday for a special vet) concerning certification. As folks know I shared my opinions on this back on June 3rd. I still haven’t heard an official response from Adobe, which is a bit disappointing (hint hint, Ben, Jason, anyone? :) but hopefully that will come soon. Anyway, the reader had this to say (note I’ve hidden a few company names in here):
I am a regular reader of your blog and really admire your projects and contribution towards the CF community. I started learning CF while I was still in school and continue to work on XXXXX projects as a consultant. Today, I was interviewed by someone from YYYY and only thing I realized that for some people it is very important to memorize CFML. I was so extremly excited that my resume has been short-listed at YYYY until this interview happened. Your article that "an open letter to adobe on certification" (you can't memorize cfml) was still fresh in my mind and I said my interviewer that I am not good in memorizing. On which, he replies me with an example that if "you can do Maths 1+1=2, by regular usage of a cfml tag/function you would remember it." Do you agree that if I could not recall cfimport or attributes of cfsetting during an interview, but only remember its uses, my years of CF experience count for null? My Flash certification and CF certifications count for nothing? Sir, I want understand what is the best way to conduct a CF interview? Why do interviewers play mind games? Tough I am waiting for a response from YYYY, my chances are so dim. I am so annoyed with all these development taking place.
Well first off - let me address your “mind games” point. Many interviewers feel like they need to impress or even intimidate their interviewees. This is done for a variety of reasons, normally ego, but it doesn’t usually help. Personally I don’t want to attack someone I interview - or make them feel dumb. (I’ve found that every time I feel particularly smug - life tends to knock me down a few pegs.) I think you need to expect to run into people like this though. What I’d recommend is - try to talk to more people at the organization. If you find this attitude in the other people there, then it probably isn’t a good place to work. At the end, it really depends on your personality. If strong willed folks tend to ‘push you down’, then you may not feel comfortable working there.
Let me go though to the other question you brought up about memorization. I think this is a particular point that is hard to qualify. On one hand - I think it’s important that a developer know the feature set of ColdFusion. They should know that functions exist for string parsing, date, image manipulation, etc. They should know how to properly abstract code, and the various ways of doing that (one of which is CFIMPORT). I’d ask you - how do you disable debugging on a per request basis. If you said “With cfsetting”, I’d be happy, and if you couldn’t remember SHOWDEBUGOUTPUT=FALSE, I’d forgive you. Or if you confused SHOWDEBUGOUTPUT and ENABLECFOUTPUTONLY (specifically show/enable) I’d unsderstand as well.
Memorizing the argument names though is less important to me. That’s what a good IDE is for or a reference manual. Now - the flip side of that is that I’d expect you to know most of the language. If you are looking stuff up for every line of code I’d be worried. I have the memory of a bored cat, but even so I only hit up the reference guide about 10 times a day or so.