I've always felt that the best non-CS programmers were physicists, because they are always looking for the simplest model (eg, the same community that rejected a 27 dimension string theory as being too complex, but don't quote me on this, I'm no physicist).