And it sounds like you're defensive because you don't have a CS degree (i.e. you have something to prove).
Not at all. I have zero regrets in this area, mostly due to the fact that I recognized very early on that a CS degree was largely useless for most roles that entail full-time software development responsibilities. Please don't misunderstand me here: I grew up with a bunch of smart people (including CS majors) who wound up attended schools like Georgia Tech, Emory, MIT, and CalTech. Their ability to contribute in properly aligned positions isn't under dispute here.
Here's what I'm really trying to say: of all the programmers I've worked with, the ones producing the best code in terms of functionality, efficiency, and security have almost universally lacked CS degrees. Interestingly enough, I've worked with some very gifted developers who held bachelor's (and in some cases master's) degrees in fields such as psychology, electrical engineering, physics, pure mathematics, and even English literature. The "odd factor" here has been the pronounced absence of CS degrees among that pool of truly able developers.
I have some very simple advice for young people interesting in pursuing software development as a career. Get any job that pays the bills for now, spend every free waking moment actually writing software in a variety of languages and learning about software written by others, become intimately acquainted with a variety of operating systems and toolchains, and start putting information security first in everything you touch. In less time and at considerably lower expense than you would suffered chasing down a CS degree, and armed instead with a portfolio of practical demonstration of skills, you'll have little difficulty obtaining a decent software development position.