"I think its wrong of people who do discriminate against those who don't have a degree-- engineering is about having the skills and the mind."
there are certain areas of software engineering where a real understanding of the subject takes years of focused study. for example, understanding encryption requires graduate level math courses to even read some of the standards produced or understand how the algorithms work. i have never seen this happen outside of school simply due to the time restrictions of having a job preventing the full-time study necessary to reach that level of mathematical sophistication.
there are other areas where similar training is necessary and pretty much exclusive to schools (think financial software engineering for traders, for whom they generally hire grad students with extremely specialized knowledge).
most software engineers don't need this sort of training. but there are areas like encryption where i'm 99% certain the only training left in the world that can make you a competent professional is schooling.
software engineering is an odd exception to the rule that most jobs require credentials. you can just make the product at home and that speaks for itself, where as no one will let you risk blowing millions on dumb marketing unless you have something to say you're semi-competent.
self-trained software engineers are usually incredible and some of the best employees. but there are areas of software engineering where self-training is impossible that are absolutely necessary when creating certain products.
lastly, if you looked at my degrees, you would ignore the fact i first learned basic in middle school on an apple IIc+.