I read a recent post on Radical Bender that got me thinking about "professional" ColdFusion developers and their skill sets... or lack thereof.
In it, Ben was complaining about taking a ColdFusion competency test. To quote, "...the bulk of the test has to do with only the most OBSCURE parts of ColdFusion, the ones that very few people use, let alone use often. There were some things in there that in my seven years of ColdFusion experience, I’ve never used. EVER. I’ve never done JRun integration or used the Flash Remoting software or COM objects or WDDX or the Verity engine. I know OF all these things, but I’ve never had to use any of them in my life."
Continuing, he says, "That ended up being about 90% of the test. Almost nothing on, oh, I don’t know, MAYBE THE ACTUAL FREAKING CODE THAT YOU USE EVERY DAY!"
My first reaction was that even a beginner would know most of the "ACTUAL FREAKING CODE THAT YOU USE EVERY DAY". I mean, do you expect soft ball questions on CFPARAM and CFQUERY and CFOUTPUT?
My second thought was, "Why have you never used 'em?"
Because in my roughly ten years of web development I've talked to COM objects for credit card processing gateways, used WDDX to transmit data from application servers and to serialize information going in and out of a database. Quite a few clients have had Verity search setups on their sites. And a few have even put CF on enterprise-based J2EE systems and needed integration.
My third thought was, "What are you doing instead?"
Because I can't believe someone has never needed to do ANY of those things. So either he hasn't... or, more likely, he's ignored the tags and functionality built into ColdFusion and rolled his own solutions. Welcome to Wheel Reinvention 101.
In many ways ColdFusion is like the Java SDK or C++'s STL. There's a ton of functionality built in to the system. Even more is available in third-party libraries like Reactor and in frameworks like MACH-II and Model-Glue. But you have to know it's there, and you have to be able to use it. Otherwise you're limiting your applications, and yourself, to that small subset of those tools you know how to use.
Or as they say, "If the only tool you have is a hammer, everything looks like a nail."
Which lead me to musing on what it means to be a ColdFusion professional. More on that later.
But in the meantime, I have a question: What's your comfort zone? What parts of ColdFusion are still a mystery to you? Can you do COM and use WDDX and Verity? Use CFCs?
Are you framework agnostic, or are you wedded to a single design methodology?
What's your comfort zone? And when's the last time you tried to expand it?
Next: Are you a ColdFusion Professional?
Have done:
* Custom Framework/Methodology
* WDDX
* Integrated with JAR files (Apache POI).
* XML / RSS
* Webservices
* Verity
* CFCs (as well as Application.cfc)
* Very low level OOP.
Haven't done:
* COM (zomg!)
I needed com objects for something, I doubt it'd take me that long to get it up and running, but I haven't needed it for anything thus far. o_O
I have taken a CF7 brainbench test recently, I missed 4 total. :( I think everyone should take the test for personal gauge of where you stand.
I still haven't felt the need to get certified yet.
Posted by: Todd Rafferty | July 11, 2007 at 04:25 PM
"I needed com objects for something" = I haven't needed com objects for anything. Duh, english language FTL. Can't type today apparently.
Posted by: Todd Rafferty | July 11, 2007 at 04:28 PM
I think you make an excellent point and pose some questions that all coders should ask of themselves from time to time.
I also can relate to the original author a little bit because I've taken a similar test before and I remember feeling like 75% of the test focused on techs that I only use 5-10% of the time.
Posted by: Joe Zack | July 11, 2007 at 04:39 PM