By Peter Bell

Finding and Educating ColdFusion Developers

One of the common questions asked at Scotch was "what is Adobe doing to help to build a deeper pool of CF developers" . . .

I certainly get the impression that there is currently more work available than there are good CF developers to do the work. That is a good news/bad news kind of situation. As a developer it is (at least in the short term) good news as it'll increase the hourly rates available. However, in the longer run if a skills shortage pushes managers to choose other technologies it isn't good for anyone. So, what should Adobe be doing?

I know that they are looking at providing certified training materials to Universities, but I think that it is important to think carefully about the role that ColdFusion plays. In a recent discussion with a (non-CF) developer, I asked if they might be interested in doing a piece on CF. The response: "CF isn't a language - it is a tool". They weren't denigrating CF at all (or at least that wasn't their intent), they were just making the point that technically ColdFusion really isn't all that interesting. It is a dynamic scripting language running on the Java VM with a great templating engine and an extremely well designed tag library allowing developers to build glue-apps extremely quickly, but it's not like Lisp or Smalltalk or Haskell from an educational perspective.

I certainly think there is a place for Adobe to be working with educational institutions to promote ColdFusion as a development language, but I think that if they do so, they should be focusing on courses where the ability to create web applications could be a useful adjunct but not on traditional Comp Sci courses. If I was designing a computer science course I'd be looking at Smalltalk for teaching OO, Lisp for the "enlightenment experience it provides" (:->), Haskell to introduce functional programming concepts and Java (possibly C#) to teach "real world OO programming" and to introduce modern IDEs. However there are many groups of non-CompSci students who might need to hack together a departmental web app for whom an elective CF course would be really useful.

All that said, while it'd be nice to see CF promoted in education, I'm not sure how big a problem it is. If I was having trouble hiring a CF developer, I'd do one of two things. If I really just needed some pages hacked together (with all of the OO talk it is worth remembering that sometimes a simple "cfif form.returning . . ." at the top of a form display page is all you need) I'd take a PHP programmer. Anyone who can do PHP will be more productive in CF in a couple of weeks. If I needed a larger app with a rich business model, I'd hire a Java programmer (yes they'll cost more than the PHP hacker - they're doing a harder job and for the right use case will be worth every extra penny). They should have some experience in a dynamically typed language and should get the potential benefits of mixins and dynamic typing, but a Java programmer who "gets" the benefits of dynamic typing (say some Python or Ruby experience) will be writing great CF apps in no time and will be able to drop down to Java if you want to use Hibernate for the ORM or need access to a java library directly. And you still get the benefits of the RAD nature of a dynamically typed scripting language with a great tag lib.

Thoughts?

Comments
This situation reminds mine of when I was looking for a new job in 1999, where I had the choice of doing more development or more support type work. The choices where to become a junior cisco engineer at comdisco or work as a developer at BSkyB.

Talking to the recruiter for comdisco they had been looking for senior cisco engineers for a long time and they took the choice to split the salary and hire two juniors and train them up. I guess at least one of them would be a good as they where after.

As you can guess I took the BSkyB developer job ;) But I think that taking on a College Grad that has the aptitude can make a great developer.

The issue I also heard is that you can find CF Developers that have been doing CF for years but still use the bad practices that are shown in the example applications and documentation I think they need to be addressed.
# Posted By Big Kev | 6/2/07 5:12 PM
Hi Kev,

Good points. If you really need a rich app built with good separation of concerns, nice MVC architecture, and a well implemented model I think you'd be much quicker teaching a Java developer a few tags than trying to teach an Old Skool CF programmer OO. Luckily you don't need OO skills for many projects, but I think there is a real disconnect between the types of projects that can be built in CF and the number of CF developers with the skills to write such project.
# Posted By Peter Bell | 6/2/07 6:22 PM
Peter, will you _please_ stop drilling into raw nerves?

Brickbats:
http://www.mail-archive.com/cfaussie@googlegroups....**
http://www.mail-archive.com/cfaussie@googlegroups....**


Bouquets:
http://www.adobe.com/education/hed/
http://www.adobe.com/aboutadobe/philanthropy/softw...
http://www.adobe.com/aboutadobe/philanthropy/teach...

some points:
- apart from some teaching materials and presentations, there is very little support targeted for ColdFusion.
- most of this is not applicable in other regions.
- Marcromedia didn't even have this much.

in our region of the world, we're really feeling the effects of an insufficient investment in growing the ColdFusion developers of tomorrow. Yes, there *are* private training courses, some competitively priced and well delivered. But that's attended by the converted. Where do the raw recruits come from?

last point: I've been looking at giving up on Higher Ed and instead adapting successes in CF training delivery to fit High Schools. I think it's do-able. But it needs support and commitment.

(** the educational institution mentioned is a Multimedia College - think "FullSail.com" but smaller. The fit with other multimedia technologies was good then, even better now)
# Posted By barry.b | 6/3/07 11:05 PM
Kev, to support your comments....

a large CF enterprise I know have just started down that path.
A friend of mine - one of the champions of this internally - is also a fellow local CF-community leader so he's practicing what he preaches.

it comes from a couple of levels. One is tied directly to off-shoring:

What the enterprise he works for has found was that tomorrow's technical leaders and managers are todays (CF) programmers. And not just technical managers either.

Sure off-shoring provides gains but the company has condemned the practice internally as being short sighted - you loose the chance of having talented people coming up through the ranks. You loose corporate culture and history. You effectively rob the future of talent.

So, they've started a graduate ColdFusion developer program where they train, guide and empower the "raw putty" into loyal employees. It's early days but it's showing promise. He's aiming at increasing it to two graduates for every department soon. More power to his arm, I reckon.

I've been involved with Higher-Ed Teaching-and-Learning institutions for nearly 10 years. Knowing it the way I do, IMHO, Universities and IT Faculties within them are a lost cause. There is much better traction for CF from technical colleges (here called "TAFE").

But there are even better opportunities for CF in the Education sector to create tomorrows developers ... if it can just get the right support...

... and that, I'm afraid, is the *hardest* part.
# Posted By barry.b | 6/4/07 1:57 AM
BlogCFC was created by Raymond Camden. This blog is running version 5.005.