My formal education isn't even close to CS, zero overlap, but I've been paid to write software for the majority of my work history. I'm an autodidact, and I wouldn't change the path I took to get where I am, but I am keenly aware of one major point of weakness: it is what Donald Rumsfeld would describe as "unknown unknowns". Yes, I initially saved a lot of time by skipping the breadth and diving right into the depth, but I'm not so sure about the time savings in the long run. I remember one conversation I had with a well lettered friend (working on his second doctorate at the time), I was bragging about a predictive algorithm I'd spent a week or two on - and its remarkable accuracy. After he listened to me describe it in detail, he asked "... so, Poisson regression?"
While I was relieved to find that my implementation still outperformed the off the shell variety, simply being aware of its existence would have saved me a lot of time.