Free Online College Classes: Technical and Computer Science Edition
There are few industries as self-education friendly as the computer industry. The rapid pace of change and emergence of new technologies means that computer science degrees are not necessarily as important as a portfolio of current skills — leaving the door open for talented non-degreed people who want to work in the field and are willing to teach themselves what they need to know. Even if you already have a computer science degree or have been working in the field for a number of years, you still need to update your skills as often as possible.
Fortunately, there are a lot of great books and online resources you can use to teach yourself not only basic computer science principles (things like object orientation, information theory, etc), but individual programming languages and even advanced things like machine learning and natural language processing. Once you get the basic concepts down (which can be either quite easy or an absolute slog, depending on how abstract your thinking generally is), you’re pretty much ready to learn anything.
Here are a few links to help you get started. Enjoy!
Computer Science 101
Introduction to Computer Science and Programming from MIT — This class uses Python, which is currently a super popular language.
CS 101 from Stanford University — Online class starts February 2012.
Information Theory from Stanford University — Online class starts March 2012.
Programming Languages and Methodologies
Building Programming Experience from MIT — Intro to basic programming principles.
Structure and Interpretation of Computer Programs from MIT – Builds on the previous course. One of the basic comp sci classes for MIT students.
Design and Analysis of Algorithms from Stanford University — Online class starts January 2012.
Java Programming from Orange Coast College — Java is one of the most basic and well-known languages. Learning Java gives you a pretty good overview of what to expect in more modern languages.
Introduction to C++ from MIT — C++ is one of the oldest and most basic (pun not intended) of the currently-used programming languages. Most everyone learns it in school.
Practical Programming in C from MIT – C is a precursor to C++, and the progenitor of newer languages like Objective C, which is used for iOS programming. Sometimes people learn C instead of C++ in school.
Webpage Authoring from Gavilan College — This class covers HTML.
Developing Apps for iOS from Stanford — Build programs for iPad, iPod Touch, and iPhone!
Lean Launchpad from Stanford University — Online class starts February 2012.
Technology Entrepreneurship from Stanford University — Online class starts January 2012.
Media Programming from Georgia Tech — Covers principles of user interface (UI) design.
Machine Learning from Stanford University — Online class starts January 2012.
Game Theory from Stanford University — Online class starts February 2012.
Computer Security from Stanford University — Online class starts February 2012.
Stanford Engineering Everywhere — Lots of different classes, both computer and engineering-related.
Free Math, Physics, Science, and Comp Sci Textbooks — NYU has a ton of interesting material here.