Should these sorts of things be part of a college undergraduate education? i.e. "This is SQL, this is when you want to use SQL. This is CORBA, this is when you want to use CORBA." I've heard it both ways. One side which asserts that schools of higher learning in computer science should be teaching theory - algorithms, good program practice, discrete math, etc - things which are timeless, and things which are forward looking. Teaching specific contemporary implementations reduces your higher education to a vocational school.
On the other hand, the result of this, as far as I've seen, is many BS graduates who can do big-O analysis in their sleep but can't write SQL. Unless they took the Advanced Database course, in which case they didn't take the Operating Systems course and so they don't know what a page fault is.
Maybe there's just too much to possibly cover it all in a single undergraduate education.