I’ve been taking free business courses online at Coursera, despite some annoying limitations. I love it, especially since I don’t have a few years and a few hundred thousand bucks to blow attending our local business school — which I’m sure is very good, but hey, I have a business to run.

That said, I don’t think any of this gives you the help you may need to learn enough Java/C++/whatever to understand the materials. For this you may want to head over to Udemy, which has a lot more basic language instruction.

Skipping the theory and learning the language will never allow you to be great, nor will a bunch of theoretical knowledge be any replacement for — drumroll, please — knowing a programming language. Also, you’ll notice that since there is no operating system course, I included a course from MIT instead. I couldn’t find anything on the subject from Coursera.

MIT has more or less the whole shebang online, although the quality of the offerings is hit and miss. I’m a bit disappointed because I’m not a big fan of the West Coast slant.

My syllabus isn’t by any means perfect, but if you did the appropriate exercises and reading (not just watched the videos), you’d get a good amount of knowledge on the basic theory — the kind of background common among great software developers. There are a few selections like “Pattern Oriented Software Architectures” that you might not need in its entirety. However, I found a good general run of design patterns, and there isn’t a lot of depth on another favorite topic of mine: concurrency. If you drank from the water fountain, you’d probably get some of both.

Also please note that I haven’t taken all of these courses. I merely went around looking for the basic outline of the important nonfluff stuff that makes up a computer science background, then did a cursory review of the materials. I’d love to hear from a guinea pig if anyone is interested. Assuming adequate communication skills and such, I’d of course hire you upon successful completion.