Premise (worst case): You've an undergraduate degree in the social-sciences; your mathematical comfort level is something around that of (US) high-school (or, UK, leaving exams); your work experience has been entirely limited to the not-for-profit sector; you've had no managerial experience; you've above average intelligence; you're capable of and comfortable with abstract, analytical thought. This could be reasonably termed a worst case scenario for what's covered "below." Significantly, the latter two intellectual presumptions are FAR above societal norms. (See: Jean Piaget.) That said, if you can "decode" what follows, you've pretty well passed the implicit, requisite intellect admissions test. Finally, though you're just starting to program, it's understood that you wish to, eventually, start your own business; here, a software firm.
Logic: Given circumstances (particularly global economic), you need to avoid overly rash adventures. You should try to stay employed for the time being. Deem it a rather tedious but good paying "fellowship." Your employer will, effectively, be paying you to learn. Your learning will initially be directed toward making you a better business analyst and manager.
N.B. In the present context, "business analyst" is, indeed, a high calling. It's not to be confused with a workaday business person doing some form of low-level, detail oriented review; there's no useful future down that path. Here, we're talking about an individual who is/becomes the "go-to" for senior executives in critical need of getting matters sorted ... as in, "now."
In brief, I'd suggest that you prepare yourself to be / become (short-term) an internal consultant, if not in name, at least in scope of function and (longer-term) to become an external consultant/"consultant." To do so, you'll need to become well versed in a variety of areas. In so doing, you'll become capable of far better administering any business whether as employee, manager, or owner (Hint!). Whatever the outcome, you'll find truly capable consultants (as distinct from the merely unemployed) are always very much in demand.
As a business owner, you merely have, typically and at best, a product. Stated baldly, the names of failed businesses which had GREAT products would fill a tome. To succeed, you'll need a VIABLE product and excellent business skills. Failing the latter, you'll need to hire someone who is capable of running your business for you. Being able to afford said manager, again typically, would demand a disproportionately superior product to throw-off sufficient additional marginal profit. Simply, it's far better to know what you're doing as a business owner/manager.
Should your business ever fail, you'll have a vastly enhanced skill-set and supporting resume. If you can "posthumously" articulate a plausible business plan merely frustrated by unforeseeable (etc.) events, your "failure" becomes a major career asset. Should you follow what I'm proposing, you will, most assuredly, be able to lucidly articulate such — whether to the end of acquiring funding or gaining employment.
Specfics: You have a grounding within the (broadly defined) not-for-profit sector. You have an interest in programming ... potentially as a vocation. I have attempted to provide for both below. Should your programming desire get the better of you, you might consider starting with websites using LAMP. (All free and available anywhere.) I, however, would strongly urge that you stick with the plan and forego a programming career for awhile.
Below, I've listed several app's and textbooks. Clever lad that I'm sure you are, you'll keep the acquisition costs down. Should you incur acquisition problems, let me know. I've mainly suggested "for Dummies" type texts. Initially, that's all that you'll need. You'll want to quickly gain an integrated perspective; that dictates that your ride be both wide and fast. Backfilling and "browsing" can (and should) come later.
Anticipatorily, don't approach this as a monumental labor to be accomplished overnight. Instead, start with the "gentle" introductions suggested below. In time, you may well find that you're truly interested in some particular area. Pursue it. More properly, pursue them, as it'll prove rare that you'll get too far in any area without finding a (often, considerable) need elsewhere. Your undertaking is far more marathon than sprint.
Lest the reading list morph into welter, here's an oxymoronic prefatory "recap." There are five principal learning threads: finance, Excel, quant, general business, and programming. While each constitutes an independent discipline, their real value lies in their integration. To achieve integration, I'd suggest that you resolve (resign?) yourself to going through each reading twice, at least. The first should be for broad comprehension and application to your current circumstance. The second should be for more detailed understanding. If not combined within the second, a third reading should take the form of a high-level outline in which you connect the "islands" of knowledge within the immediate subject area AND those external readings. (For this latter purpose, any form of sketch / mindmap will suffice. Eventually, you will use a "slicked-up" variant of this to explain issues and problems to clients.)