I got into the software development industry over 7 years ago, without a CS degree. But did quite a bit programming before since high school. Anyways - one mistake I made (but I am trying to correct right now) is to stay in one job for too long. I'm still working in my first job, although I started at $50k in 2007 and now I'm in mid 80s, I should be making at the very least $95k with my skill set and experience in this location (Arizona) . Frenchcorporation played it very well with moving up after only 6 months for +30%. So guys - try to change job at least every 2 years, especially now when the "engineer crunch" makes the things very good for us. 2 yrs and GTFO unless you are really killing it (getting 15-20% or more raises every year). Somewhere I read that in Bay Area wages were growing on average 10% for the last 3 years - that means that if entry level salary was 100k one year, it would be 110k the next year for the same entry level job. This industry simply doesn't reward loyalty at all, quite the contrary.
My plan right now - get a job in the Bay, work there for a few years, build up a network and name, save some money, and then it should be quite easy to work remotely from outside of USA while commanding Bay-level wages (or close to it) while living in cheap SA, EE or SEA location.
Or - alternatively striking it rich with the right startup - then the same plan, only sans the need for a job :-)
As for languages that were discussed here:
PHP - I would stay away from PHP as a noob - it is still used a lot, but importance is declining. Also - it's simply not a
well designed language.
Python is solid and with a bright future, definitely a good choice. Very well designed language.
Ruby is good as well, but I would probably prefer Python as it's a more general language, while Ruby basically equals Ruby on Rails.
Javascript - definitely quite the flawed language, HOWEVER if you are doing web stuff you simply cannot avoid it. In the past 5 years or so there has a been a massive Javascript renaissance, mostly driven by modern browsers like Chrome and Firefox, Javascript is now probably the fastest scripting language out there, Node.js (server side JS) performs extremely well due to this and it's non-blocking nature, it is getting hugely popular and I think it's peak is still far away, it's like Rails around 2007 right now. Also NoSQL DBs like Mongo use JS as their scripting language. I'm myself venturing this direction as I'm simply a fan and believe in it and it is my go-to tech for personal projects. (Currently at my job I'm doing Java backend and heavy JS frontend, previous experience was with Perl and Flash).
As for the CS stuff - good grasp of CS concepts is something that separates the average code monkeys from the truly great developers. I myself don't have almost any formal CS or SE education, however over the years that practical application of these concepts helped immensely. One "advantage" as a self-taught dev was that I learned these concepts after I already had some programming experience and it was a real eye-opener since I understood the problems they were trying to solve very well and it made a lot of sense - this might not be a case for somebody who is in a CS program without a lot of prior programming experience.