Many of you may be familiar with CS50, Harvard’s Intro to Computer Science course - it is often recommended to newbie programmers (and basically shows up on every ‘how to learn to code for free’ list). However, there are other lesser-known online courses offered by Harvard’s Computer Science department. Since I wanted to brush up on my Python skills, I decided to take CS50P, their Introduction to Programming with Python course.

CS50P is a lot like the regular CS50 course in its structure. The course is broken up into 10 “Weeks” (though, it’s entirely self-paced, so you can really think of them as “Modules”) where you watch a 2ish hour lecture then complete problem sets. There are around 40 problems to complete, and you have to submit a Final Project at the end. So you get a lot of practice with Python.

This point is worth emphasizing: the teaching style is very much like a university course where you watch a lecture then complete a bunch of problems on your own afterward. It’s not like freeCodeCamp or other online learning resources that give you lots of bite-sized problems as you learn. So if the university-style of learning isn’t for you, you’ll probably want to go elsewhere.

I also want to mention that I found CS50P to have a much smoother learning curve than the regular CS50 course. In fact, the regular CS50 course has such a steep learning curve that I usually don’t recommend it to newbie programmers. But CS50P is much more manageable, and I’d definitely recommend this one to beginners.

Especially for any beginners who want to do the regular CS50 course - take CS50P first. It introduces you to a lot of programming concepts that, once you learn, will make the regular CS50 course feel a little easier.

So, overall, CS50P a good course. It doesn’t have the flashiness of the regular CS50 (no big lecture hall, no props, no funny videos), but David Malan is a really good teacher who has a knack for conveying complicated concepts.

It’s a pretty comprehensive course too, though Python has tons of features and built-in libraries. So it doesn’t cover everything. It took me about 35hrs of work to complete this course, but I was already fairly comfortable with Python. So I’d expect it to take a newbie 60-80 hours to complete.

So, in summary: I’d definitely recommend this course to anyone who wants to learn Python or improve their Python skills - or any newbie who wants an easier onramp to coding before taking the regular CS50 course.

Just don’t pay for the $200 EdX certificate. This is a free course, and you will get a free certificate once you complete this course. You will get pushed to purchase an EdX certificate, but I don’t know any good reason to do this.