Harvard CS50

Mihai Chelaru-Centea

Online Course by David Malan

Resource last updated: Nov. 22, 2018


This was the first computer science course I ever took, although it was a few years ago and some things have changed, no doubt to keep current with the latest technologies and appeal to the demand for full stack web developers who know JavaScript and PHP. Nevertheless, I have no doubt that it's still an excellent course, with some of the highest production values for an online course like this, an excellent and charismatic instructor, and material that teaches you the fundamentals of programming.


The lectures are full-length university lectures, about an hour long, and so it's difficult to search the lectures for a particular topic being covered, and you also have to sit down and absorb it in larger doses, unlike some of the other MOOCs and online university courses out there. This could be a good thing if you enjoy that kind of format, or a bad thing if you don't have the time to sit down with a long lecture, or you have a short attention span.

On the other hand, there are a bunch of other tutorial-type videos after each lecture by TAs for the course which are a lot shorter and also have high production value and good content, so there is a good mix of both kinds of lectures in this course.


I don't know the content of the current incarnation of the course too well, but when I first took it, it talked about some really basic and fundamental computer science concepts, like searching and sorting algorithms, binary representation of numbers and integer overflow, and many others. These are all taught very well with conceptual demonstrations that required audience participation, so they really help cement the topics in your mind for years afterwards.

The course also has some hands-on demonstrations of coding, so there's a good balance between conceptual content and practical content, although I'm sure there are other courses out there that go into a lot more detail when it comes to the specifics of the languages they cover, and that teach you more of the libraries and functions that are available to you.


It's slightly higher on the difficulty scale compared to other introductory courses, and although it makes no assumptions about your previous programming background, you dive right in with C from the beginning, which can be challenging for newcomers. I found the first problem sets fairly difficult when I was starting out, so if you're not confident maybe start with an easier course first and work up to this one.

The Bottom Line

This is a free course, from one of the world's top universities, taught by an excellent and charismatic instructor, with very relevant course material, particularly for those who want to go into software engineering or become full stack web developers.

It's hard not to recommend this course, although I would say that if you want to learn to program for data science, I would give this course a pass and focus on something that teaches Python or R and delves into more of the relevant topics. An alternative would be to watch the first few lectures and then skip out on any web-related things until you're interested in those topics or have time to revisit them.