To cut right to the chase: I want to pursue a career as a software developer. Spare me the lecture about how it's a competitive industry, hard to get started, just knowing how to write code is far from enough, etc. I know all of this. I understand that it will be hard work and even if I take all the right steps, there's no guarantee of landing a cushy developer job.
That said... What would y'all recommend someone interested in getting started do? Should I self-learn some current languages and do some independent work, maybe just some simple freeware/shareware or a personal website if I go the web dev route? Should I pursue some sort of formal degree or certification?
I have a BA in an unrelated field (Political Science). My only work history in the industry was working for my school's IT dept. for most of my undergrad years. I did PHP/MySQL development and random low-level sys admin duties (mostly dealing with permissions issues and running our log analyzer software manually via SSH when a one-time report on some subsection of logs was needed, or installing software packages via SSH, that sort of thing). I've coded in various languages as a hobby since I learned BASIC when I was 8. My skills are pretty obsolete, though - we mostly used PHP4 and JS and did hackish solutions with our tiny underfunded staff just to keep things working; with the mountains of bad, undocumented legacy code and nowhere near enough time or developers to rewrite old terribly designed projects to modern best practices. Basically, I know how to code, but I'll need to learn the specific skills and languages for whatever job I pursue.
Right now I'm considering 3 options language-wise: update my PHP knowledge to 5 and learn jQuery to become a web dev; learn Objective-C and the various related Apple APIs to do Cocoa/iPhone development; or learn C++/.NET and beecome a .NET developer.
I know web design better than compiled coding, but from what I understand, web devs are a dime a dozen and it helps a lot if you're also good at design work (Photoshop, etc.), which I have no talent for. On the plus side, I have a much clearer idea how to get started: I can just start a website, first to learn some modern languages and APIs, and later try to monetize it or at least polish it up to be a portfolio to find a full time gig.
Working for Apple would be awesome, but Objective-C would limit my opportunities outside working for them directly or some iPhone/iPad development studio. On the upside, before finding a permanent position, I could try to write my own apps and get 'em on the App Store for some potential profit as I hone my skills and develop a portfolio.
.NET and C++ seem to be the most obvious route for a less specialized compiled language and API to learn. On the minus side, I know very little about Windows APIs and generally find the idea of writing Windows programs less exciting than web development or iPhone/OSX development.
I know a four year degree in CS helps a ton when trying to land a developer position, but going further into debt for a second undergrad degree isn't much of an option. I could see trying to get some shorter degree or accreditation and I know it'll take time to go from "I want to be a developer and I've coded a bunch before" to actually being hired by anyone for a full time dev job, but I'm more interested in what I can *start* doing now, either on my own or in a few months through some class/accreditation program. How would you guys recommend I spend my time working toward this goal? And any suggestions for a language/development environment to start out in given my situation and the market today?