Hacker News new | past | comments | ask | show | jobs | submit login
Great Computer Science Lectures for all levels (codeschool.org)
154 points by obilgic on Apr 4, 2013 | hide | past | web | favorite | 16 comments

These lectures are amazing. Watch "Unix terminals and shells" series for example, you will get a better understanding of what is going on behind the scenes when you run a ruby script.

He deserves the be on the front page for sure. I would also encourage you to buy him a coffe through his donation button.

More vides on his youtube, for example "Intro to Clojure" series:


Thanks for mentioning. Looking at the domain, at first I thought it was codeschool.com which also offers video courses (which are also very good) and was going to skip over this.

They just need Automata, Grammars, and Computability, one of the "classical" courses in CS theory to complete their collection. That course really makes you a better programmer in being cognizant of the shear size of problems that can't even be solved (as well as forcing you to think in terms of using tricks to bring problems into decideable space). For instance, if you ever plan to write navigation software or travel/price routing software (a la Orbitz/Hipmunk/ITA Google), computability (as well as algorithms) should be a must-know (for example, every automata course will introduce you to TSP).

I agree - the automata, computability, and complexity course I took at university was both eye-opening and fun. I'd recommend a course in discrete mathematics beforehand.

Furthermore, most CS grads I know would benefit from some statistics knowledge. I've even found physics, linear algebra, and biology (specifically genetics) very useful on the job.

I see academic subjects the same way many people see programming languages -- they're tools. If all you know is programming, everything starts to look like a programming problem. There are other kinds of problems, too, and even as a professional programmer I often stumble across problems where (basic) knowledge in another field has helped immensely.

Turing machines.

part of Computability

Automata, actually, but they're closely related.

These are amazing lectures. Clean slides with no distractions. to the point explanations by someone clearly very knowledgeable. Makes the lectures even more better. Really helpful videos.

I have similar lectures on Java, the Google App Engine, JavaScript, and Agent-Based Modeling at:


I had a quick look at your videos, especially the Javascript ones.

My first impression is that your presentations are not as well organised as the the OP ones. For example, looking at the Javascript Classes and Inheritance Tutorial, you end up correcting your typing out of "Prototype inheritance vs Classical inheritance" at least 6 times. This is very distracting and detracts from the the quality of your presentation. Why don't you have these sorts of things pre-prepared?

Additionally, the OP's entire Youtube channel is very cleanly laid out and easy to navigate. Yours is somewhat of a mess and cluttered.

I will still have a more detailed look at your presentations and appreciate the link, but feel you could do a lot better.

BTW. The OP's videos also have issues, mainly with the consistency of volume levels across different videos but his channel is generally an excellent example of this sort of online education.

I'm shocked over the choice of mercurial over git for version control.

I had to work on a small project for someone, a couple of years ago. I did not have admin access (to install applications, libraries, etc.) on their 20-odd compute servers. They all ran Ubuntu that was about a year-old at that time. They all had the same software, but not the same versions; they were not all updated at the same time.

Long story, short: Git was a bitch to compile and run across all these machines. I gave up and installed Mercurial instead. I've stuck with Mercurial ever since. As far as I can see, the only thing Git has going for it now is the "social" nature of GitHub. Otherwise, when people ask, I recommend Mercurial over Git.

Once in a while, I come across issues such as this [1] with Git, and I wonder why such people insist on sticking with Git.

[1] http://dwm.suckless.org/customisation/patch_queue

There was a nice post about Atlassian's choice of Mercurial over Git on their blog: https://blogs.atlassian.com/2012/02/mercurial-vs-git-why-mer... Their argument about a windows version doesn't seem to hold today. There seems to be a first-class Windows version of git.

Since there exists HgGit (http://mercurial.selenic.com/wiki/HgGit) and git-remote-hg (https://github.com/rfk/git-remote-hg), the two are equivalent in the sense that you can use either to contribute to any hg/git repo. Which is your prefered flavour of interface?

This is great. Thanks. Perfect time for me to find this.


It's not ``science'', afterall..

Registration is open for Startup School 2019. Classes start July 22nd.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact