Others have said it, so I am just adding my "vote."
If you haven't finished the philosophy degree, then go ahead and finish that (as you have time and money) because any degree is better than none. As someone who is "this close" to finishing my degree, sometimes I feel that hurts me more than if I had never started. (Yes, when I get some money, I will finish mine too.)
Don't waste your time or money on a CS degree. In my meager experience, for real-world programming, they don't teach much more than can be learned from some good books. Of course good books are hard to find too. Read reviews and ask friends for recommendations. A lot of programming books start strong and turn to crap about half-way through. If you start finding lots of errors and you are spending more time figuring out the errors than learning, move on to a different book. Come back to the bad book after you know more and take it as a challenge to solve those problems. But don't burn yourself out beating your head against a bad book if you just don't know enough to figure out the errors. You will kill your momentum. And momentum is key in education.
After you have a solid foundation in the programming language of your choice, start learning ancillary stuff like build systems, software testing, and how to deploy your programs to end users as a single installable file. None of this was taught at the universities I went to but they are really important in the professional world. I wish there was more information about this kind of stuff and that it was organized in some reasonable fashion. Unfortunately, it seems most of this info is buried in forums all over the internet.
After you have learned one language pretty well, start learning other languages too. The more the merrier. Then go back and pick up some advanced techniques in your earlier languages.
As you study, work on finding ways to actually show how much you know. Either in sample programs, contributions to open source projects, or certifications. Remember, "experience" does not mean that you got paid. So, if you have been diligently writing code for open source projects for a year, then you can say you have a year of experience. (Sure, plenty of people dink around for a year and call it "experience" but that shows up pretty fast in interviews.)
Look for "entry level" or "intern" jobs. They are rare but they are out there. There are some companies that almost exclusively hire junior programmers because they can pay them less and the company's business model does not require high level programming skills, just churning out a bunch of almost identical stuff. However, you may not find these companies where you live right now. Be willing to search all over and relocate. There is a company in College Station, TX that will hire you if you are willing to learn Microsoft .NET.
Good Luck.