Online curriculum for self-taught developers
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.
But thereโs more to Coursera. I was recently interviewed by a reporter from the BBC aboutmy post questioning the value of the modern computer science degree. At the time, Coursera didnโt have a great background in theory. This has now changed.
Coursera offers what could be considered a basic grounding in computer science theory from some of the most prestigious universities. Hereโs what Iโd want a prospective employee to sign up for:
- Computer Science 101ย from Stanford University
- Introduction to Logicย from Stanford University
- Learn to Program: The Fundamentalsย from the University of Toronto
- Algorithms, Part Iย from Princeton University
- Algorithms, Part IIย from Princeton University
- Introduction to Systematic Program Design,ย Part 1 from the University of British Columbia (no Part 2 yet but you canย read the book onlineย for free)
- Programming Languagesย from the University of Washington
- Pattern-Oriented Software Architectures for Concurrent and Networked Softwarefrom Vanderbilt University
- Algorithms: Design and Analysis, Part 1ย from Stanford University
- Algorithms: Design and Analysis, Part 2ย from Stanford University
- Operating System Engineeringย from MIT (Coursera has nothing)
- Introduction to Databasesย from Stanford University
- Introduction to Compilersย from Stanford University
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.
This article, โ$200K for a computer science degree? Or these free online classes?,โ was originally published atย InfoWorld.com. Keep up on the latest developments inย application developmentย and read more ofย Andrew Oliverโs Strategic Developer blogย at InfoWorld.com. For the latest business technology news, followย InfoWorld.com on Twitter.


