Back to index
Other11 weeks of material, realistically 3 to 6 months at a part-time pace·Free, with an optional paid verified certificate through edX

CS50x: Introduction to Computer Science

4.8

Still the best free introduction to computer science anyone has made, and the only one that treats a beginner as capable of real difficulty. The C weeks are brutal and they are also the entire point.

What We Liked

  • Teaches genuine computer science, not just syntax, which almost no beginner course does
  • Problem sets are properly hard and graded automatically, so you cannot fake progress
  • Free in full, with no content held back behind the optional certificate
  • Production and teaching quality that no bootcamp charging thousands has matched

What Could Be Better

  • The difficulty curve in weeks two to five drives out a lot of people who would have been fine
  • Starting in C is the right call pedagogically and a hard sell if you want a job quickly
  • Web and JavaScript coverage at the end is thin compared to the earlier material
  • Almost no career support, portfolio guidance or job-hunting help of any kind

Detailed review

We already review CS50's AI with Python course, and it kept bothering me that the flagship course everyone actually means when they say CS50 was missing, because it is the one I recommend most often to people starting from nothing. CS50x is Harvard's introduction to computer science, it is free, it has been refined over more than a decade of teaching it to real undergraduates, and it remains the standard against which every other beginner course should be measured. What separates it from the enormous pile of learn-to-code material is that it teaches computer science rather than a language. You spend the early weeks in C, which sounds perverse in 2026 when nobody is hiring C developers off the back of a MOOC, and it is absolutely the right decision.

Working with manual memory, pointers and arrays teaches you what a variable actually is, and every language you touch afterwards makes sense in a way it simply does not for people who started with Python and never had to think about what the machine was doing. When the course does switch to Python around week six, the relief is enormous and the understanding underneath it is real. The problem sets are the other thing that sets it apart. They are hard, they are graded by an automated checker that does not care about your feelings, and there is no way to convince yourself you have understood something you have not.

That matters more than it sounds, because the failure mode of most online courses is the illusion of competence, where you nod along to a video, follow a tutorial, and discover months later that you cannot write ten lines unaided. CS50 makes that impossible. If your code does not work, it does not work. The final project, which is self-directed and deliberately unscoped, is also the first time many people build something nobody told them how to build, which is a genuinely different skill.

David Malan's teaching gets talked about a lot and the praise is deserved, though I would put it slightly differently to how it usually gets framed. The lectures are theatrical and the production is extravagant, but what actually makes them work is that the explanations are correct and carefully sequenced. The theatre is decoration on top of unusually good pedagogy, not a substitute for it. Now the honest warnings, because this course has a reputation for being welcoming and it is not, quite.

The difficulty spike somewhere between weeks two and five is where most people quit, and a good number of them would have been perfectly capable programmers if they had pushed through one more problem set. If you are going to attempt this, decide in advance that the C weeks are supposed to hurt and that being stuck for hours is the normal experience rather than evidence you lack some innate talent. Budget far more time than the eleven-week structure implies, because part-time learners realistically take three to six months. The other limitation is what happens at the end, which is not much.

The web development material in the final weeks is thin next to the earlier work, and there is essentially no career scaffolding, no portfolio guidance and no help turning any of this into employment. That is not a criticism of the course so much as a statement of what it is for. CS50x makes you someone who understands computing and can program. Turning that into a job is a separate project you will have to run yourself.

My advice is simple and I give it often. Before anyone spends money on a bootcamp, a nanodegree or a paid beginner course, do CS50x. It costs nothing, it will tell you honestly within six weeks whether you enjoy this work, and if you finish it you will be better prepared than most people who paid thousands for the alternative.

[ final ]

The verdict.

If you want to know whether you actually like programming, do this before you spend a penny on anything else. Finish the C problem sets before deciding you are not cut out for it, because that is where nearly everyone wobbles and where the real learning is.