whilst practically anyone could do civil engineering using nothing more than on-the-job training, a formal education embodies that person with a lot more knowledge that can be applied in many ways.
The thing is, on the job training is going to show someone what they need to know, a formal education is going to focus on some things that someone may never again use in their entire life.
1. I learnt Z at University, and whilst it was just a grounding in formal methods, I have in the last 10 years used exactly 0 formal methods exactly 0 times.
2. I learnt about the web/internet on the job (partly because it wasn't really taught at Uni when I was there), and I learnt what I needed to know to do the job which involved lots of RFCs and lots of trial and error and learning from my own mistakes.
Which of the above (both true) facts makes me more valuable to an employer?