I live in Seattle, so my opportunities are better than most people. Still I'm having trouble. My friends who graduated college and were able to get jobs at Amazon, Microsoft, Facebook or Google did so by getting job offers after interning for a year or 2. I have scored two different interviews at big companies like that, one at Big Company X and the other at Big Company Y. Those were encouraging because I know that it is possible to get an entry-level programming position if you're good with math, algorithms, data structures, and basically just the fundamentals. I've realized it's very competitive, though. I posted here about my nightmare interview with Big Company Y, in which the guy ended the interview early after being extremely condescending in response to me not knowing the fanciest way to find the median of two sorted arrays. My interview process with Big Company X ended on more polite terms, but of course they didn't tell me exactly what I did wrong on their questions (due to discrimination concerns, you never get any feedback these days) and now I can't apply there for another 6 months. Boo-hoo. I looked at GlassDoor.com through the software engineer interview stories at these places and I see it can be a very long and daunting process, with a lot of people only scratching the surface like I did, or getting further and then being shot down at the final step. The other options for programming positions are either software startups or some consulting construct. These are a lot more difficult to get as they usually require mountains of experience.