skormos
If you're a competent problem solver, learn something very practical and immediately in demand; mobile development comes to mind. Expect to be paid entry-level salary, and work your butt off to prove yourself, and move up.
I have an engineering degree, but had only a few comp sci classes. My friends are in the same boat, but we're all good problem solvers, dedicated, and willing to learn. My friend was a hardware engineer, was worried about transitioning to development. He's smart, dedicated, and made the most of the opportunities given him.
I can't say that any of us will be making millions off our ideas, but we're all successful in our careers, and that proves that it's possible. Just set your expectations, make most of your opportunities, work hard, and you'll do great.
Ask HN: How difficult is it to setup a tech co-op based on a private cloud?
Based on a number of concerns (privacy, longevity and abrupt cancellation of service), a few tech-savvy friends and I have thought about forming a tech co-op. Initially it would be focused on email services, but could branch out into other hosting. What might be some of the difficulties attempting this on widely-distributed commodity hardware? How big should a co-op get before privacy again...
BINGO! This is the anti-pattern part. Not that the data is globally required, but that your units are mutually dependable. This is why Interfaces and Dependency Injection are so popular now, because they facilitate the ability to make easily testable, singular units that allow for mocks / stubs etc.
To illustrate, what happens if your global requirement happens to also be external? Would you want to have to test your component with a live version of your global and external resource? No, you would want the ability to test (either as a single unit, or even the whole app), without requiring the database, messaging, web service, etc, to be up.