Agree. If the author agree with the idea of getting degree then we can figure out what subjects are required. By the short answer I just wanted to let you know my opinion, that it's very hard to get into programming without spending some time learning these subjects.
I don't mean to gang up on you, but if it helps in breaking your self-imposed constraints on yourself -
to become an expert in something, or even understand something, one doesn't HAVE to go to a university.
There are lots of university grads who are experts in nothing.
There are lots of experts in this world who became experts in different areas even when they never put a step in college.
Agreed.. university education, is definitely one of the many ways to accumulate knowledge. Its just that, its not the only way.
I think the importance of a degree is very dependant on what your goal of getting into programming is. If your ambition is to one day be a senior engineer at a cutting edge software firm, then yes, a CS degree is probably time well spent. If on the other hand your ambition is simply to learn how to hack together handy utilities to make your current (non-programming) job easier then a CS degree is probably a complete waste of time.
If, for example, you gave a list of what you considered the most important CS basics for an iPhone developer it would be far more helpful than simply saying "get a degree". Then the person who was asking the original question could build a curriculum around just those parts.