One major area of real-world knowledge I'd add is knowledge of the problem area. My background is engineering (both my degrees are in mechanical engineering), so my perspective is a bit biased.
My experience has been that many people with degrees which are variously lumped into "CS" are poorly prepared for work in engineering and scientific computation, which is predominantly numerical computation. Much of the programming in this area also requires familiarity with the ODE and PDE in general, which are taught in classes from which many students will run screaming.
emc
" When in doubt, use brute force." — Ken Thompson