Just to counterbalance this, I recently switched from doing academic physics research to a programming career. Now I'm a senior software developer with a wide variety of experiences (currently Android internals). I've taken exactly one comp sci course: data structures. That course was helpful but habitually writing, reading, and debugging code has taught me most everything I've needed. Reading code is very important, as is starting programming at an early age and applying it to whatever you're doing. Learning a variety of languages is also important as each one brings its own paradigms. I read a patterns textbook once but didn't see anything that I wasn't already familiar with. I just learned terminology from that.
Still, if one is new to programming I'd have to think that getting a degree one way or another would teach a lot in a short period of time. I had never really thought of programming as a profession but rather as a tool that was necessary to whatever else I wanted to do. Economic pressures turned my hobby into a profession. I'm still just a bit grumpy about that even though I'm having fun.