If getting a job as a dev is your goal here, I feel like now would be a good opportunity to tell you about my personal experience.
My romance with computer science dates back to my high school in controversial Israel, where kids are somewhat overachievers and already get to choose "majors." I never knew much about the underlying architecture of the magnificent machine, but I was always intrigued by computers. My mom was an electrical engineering teacher at a high school at the time, so maybe I didn't have a hacker dad, but I was definitely exposed at an early age to the wonders of the machines.
When I started high school I decided to go after a "luxurious" tech route that was offered at my school -- the nerd route. One teacher taught us Algorithms which was basically learning to solve problems in pseudo code. I loved doing that because the teacher had a no bullshit attitude which is the only way I can comprehend new information. The rest of the classes included Physics (boring), Assembly (where I had my friend do the homework for me), and C taught by a teacher I could barely stand nor understand and who most of us punks were way too busy ridiculing anyway.
Long story short, coding was still very new to me. The web was still running at 56K (Israel...), and I couldn't see any real-world applications for my very recently acquired skill. So I basically dropped out. Well I just stopped going and failed all my classes.
Fast forward a few years, now I live in the US, and being the pragmatic Jew that I am, when deciding to go to college, if not to be a lawyer or a doctor, I went to study finance. Sure I had zero knowledge of finance, but it was about money and numbers so I figured why not.
Like most kids college ages, I couldn't really commit and quickly got bored of finance. So I began looking for other stuff to do. While bored me normally ends up at a random bar trying to hook up with cute guys, this time around, entrepreneurship (which I've never spelled correctly on the first try) was the new rage and it caught my attention. All the articles I read on Inc. Magazine promised me I have all the personality traits to start my own venture, even if I had no experience, no money, and absolutely no idea of what it is I wanted to do.
The Internet seemed like a good place to start for someone with zero knowledge, and the ideas kept coming. Eventually, at one dinner while watching Desperate Housewives, I thought of the "original" idea of creating a social network for students on my campus. Now, if you have any common sense, you'd probably tell me this is a horrible idea, but I was stupid enough to think of it as the next big thing.
So I decided I'd need a programmer to do the work for me. But if you know the first thing about programmers, it's that they are in huge demand in our economy. So fuck my idea. No one was going to buy my stupid pitch.
After almost giving up, I decided to pick up a programming book and just do it myself. I looked for help on the web on where I should start, and somehow it seemed like everybody was recommending PHP. This may have been due to Facebook coding, back then, mostly in PHP and becoming so popular at the time, or it could be that I just didn't know how to search. Either way, I got a PHP book from the library on my campus and read it from start to finish. I still had my knowledge of algorithms from high school in Israel, and so the actual programming part was not so hard for me to grasp. The web and how it all comes together were completely new and exciting.
I ended up building the site. It was built so badly that I kid you not, I often would just lose users who signed up. Students of my campus would email me complaining about not being able to log in and I wouldn't even be able to track 'em down. That's how bad it was built.
So that venture failed. Miserably. But it didn't matter because now I knew how to build an entire (crappy) web app by myself. I knew how to look up what I didn't know, and most importantly I had proven myself I can do it w/out the help of a professional. Well at least not in person.
So the vision of my "app" carried me through the hurdles of building a computer application. It was shitty, but it worked. I got a fair amount of students from my college to join the cult and it was the best feeling I could ask for. I was there, by myself, having an impact on other people (whether it was positive was beyond me...). The fact that I did all of that with just a computer, a book, and unlimited access to knowledge via the web blew my mind and got me hooked.
Graduation was near and finding a job was what most of my classmates were focusing on. I should have too, but I didn't really want to work in finance anymore, now I wanted the newer, shiny toy, and I wanted to be a hacker (this term is now used to describe any programmer, not just those who stole your mom's credit card).
At first, no one would get back to my emails, but one tiny startup I really wanted to work for, agreed to talk about an unpaid internship. All I had to do was prove to their CTO I was capable of building anything, and teach myself something quick. Their stack (the tech they use) was Rails and so I was directed to the infamous Rails Tutorial which was a long-ass read. By the time I finished reading it, I already had an idea of what I wanted to build and a week later I sent the startup's CTO a link to a simple app that compiles playlists with their music videos (a la Pandora and MTV combined).
The CTO of said startup was impressed by my abilities (or so he told me) and invited me to a coffee meeting. Mind you, at the time I lived in a small hick town in Colorado, and taking a trip to NY was not an affordable option.
Luckily around the same time my school decided to send me, along with some other hooligans from my school, to a finance conference in the city. I, of course, jumped on the first opportunity I had to skip some talk about some financial collapse that I was too poor to notice, and instead went and met the CTO for a quick coffee meeting.
The morning after, I got into their office (skipping another talk about finance), and sat in with the CTO for a quick technical interview. At the time I still typed like a primitive monkey, but answering the coding question wasn't too hard for me (it was an unpaid internship, okay?) Mostly I think it was because I had solved such problems in the past at my high school.
A couple of hours later I got an email saying I got the internship and was invited to start working two weeks later. I came back to Colorado, graduated, got drunk and partied, and got on a flight to NY the same weekend. Peace.
My internship turned into a full time employment. After you have that for a while, most companies can't care less what you had done before. Now I'm at my second company. Even after sucking at the first batch of interviews I did, I ended up getting better and better at them (or maybe just memorizing the answers), and eventually I got good enough at interviewing that I had four outstanding offers on the table. All of which were extremely attractive.
But really now, if you wanna get a job in the field, especially in one of the big cities, and you don't have the "right" background, you will have to put yourself out there. For some of you, true nerds, this is the most terrifying thing you can think of, but let's be honest about it for a minute -- in most industries candidates don't have this amazing opportunity to show off their work w/ a relatively minimal investment.
Wanna show someone how good you are at programming? Wanna prove to some big shot at company X that you're exactly what they need? Well figure out what they need. At least in your opinion. And just build it! Start working for company X before they even hired you. You don't need any more knowledge than what's already out there to do so!
If none of this makes sense yet, let me come up with an example: Say you wanna work for Amazon, and you didn't even go to college. Well in most cases Amazon won't even look your way given how they normally hire graduates of top-tier (jack-off gesture goes here) schools. So you need to be good. You need to show them how you'd provide them with value. See, the reason they hire from fancy schools is that they just wanna filter their pool of candidates to the best they can. They can afford doing so, they're fucking Amazon. And they don't wanna put their money on some kid from Idaho who's almost flunked high school. So really the burden of proof is on you here. And that's actually great.
So what would I do about it? Well go figure out what problems Amazon has, read some news articles about the company (they are publicly traded, meaning you will find more info on them than you would on tiny startups). Go on their site and see for yourself what you think can be done better (but be humble about it,) and then go nuts. Go on their careers page, try to see what stack they use and then build it!
A word of advice on when you choose a company to target: Some companies (I think Yahoo used to be one) have policies enforced by their top execs to only hire people with an education background in Computer Science. So do your research before you waste your time. If you have the degree, go for it, but if you don't, fuck 'em. You probably wanna focus your efforts on smaller companies and even startups where in my opinion you'd learn much more programming than at a big company.