Honestly? I think your assumption that you can learn everything on the job is incorrect - you learn how to do the job (the procedures, what software to use and how), on the job. The purpose of the degree is to teach you what you may need for a number of different jobs, the theory behind whatever you move on to in later life (and, as has been said before, to train you to think like a ___). How would a doctor know what to prescribe (for example) in someone who has different conditions which would render the first choice of drug unusable? How would an engineer that the simulation they've run is correct without knowing any of the necessary calculations or formulae or theory that underpins it?