As a soon-to-be college graduate (as of this June), I am especially curious about this. I majored in Psychology, and did a lot of stuff with abstract math, but have limited formal CS training - yet it seems that's exactly what companies want. I don't get it. I've been coding for fun for over 12 years (e.g., BASIC, C++, perl, PHP), one of my projects even successfully scaled and got acquired, but it's hard to find employment. And besides doing my own start-up, I really would love to code for a living!<p>Should I go get a Master's in CS? Spend time this summer working through SICP, and then an algorithms book (I took Discrete for fun, as an elective), and then something else?<p>Any advice would be much, much appreciated.